[bcn-pm] timeout que no em mata el procés

Carles Fenoy minibit a gmail.com
dic mar 14 09:22:18 PDT 2012


Hola,

primer de tot em presentaré ja que aquest él primer missatge que
escric a la llista.
Soc informàtic i treballo al BSC-CNS mantenint el sistema de cues i el
sistema de monitorització.
Vaig conèixer aquest grup gràcies al magnífic curs de perl avançat
d'aquest cap de setmana passat.

Bé, nem per feina,

Jo he fet servir el mòdul Devel::Gladiator per veure el consum de
memòria, però no et diu exactament que està consumint tant, però va bé
per fer-se'n una idea.

Salutacions,
Carles Fenoy

2012/3/14 Arnau Bria <listsarnau a gmail.com>:
> Hola que tal,
>
> amb el meu famós dimoni estic veient un parell de coses que
> m'intriguen.
>
> La primera és que tinc un timeout que em crida un procés (que acostuma
> donar timeouts), però no el mata. Es queda en defunct fins
> que reinicio el meu dimoni:
>
>
> El codi és
>       my $command="diagnose \-f \-\-host=$conf->{maui_server}";
>       my @diagnose;
>       eval {
>                local $SIG{ALRM} = sub { `killall -9 diagnose`; die
> "Timeout\n" }; alarm 5;
>                @diagnose=`$command`;
>                alarm 0;
>        };
>        if ($@) {
>                die unless $@ eq "Timeout\n"; #unexpected error
>                warn "$command timed out.\n";
>                $log->error("diagnose timed out... ");
>                $log->error("Monpetitami could not connect to maui
> server. Skiping MAUI data gathering"); }else{
>                my $index;
>                [...]
>        }
>
>
> Els processos:
>
> [...]
> 204      16333  4.1  1.2 199808 103880 ?       S    16:00
> 0:09 /usr/bin/perl -w /bin/monpetitami 204      16840  0.0  0.0
> 0     0 ?        Z    16:02   0:00  \_ [diagnose] <defunct>
>
> # /etc/init.d/monpetitami restart
> Restarting monpetitami: Shutting down monpetitami:         [  OK  ]
> Starting monpetitami:                                  [  OK  ]
>
> [...]
> 204      17253  3.5  0.1 107768 11612 ?        S    16:04
> 0:00 /usr/bin/perl -w /bin/monpetitami 204      17256  0.0  0.0 139604
> 1208 ?        S    16:04   0:00  \_ diagnose ?f ?-host=pbs03.pic.es
>
> Com puc fer per matar el procés que m'obre el meu script?
>
>
> *** Podria utilitzar el propi timeout de la comanda (30 segons, per
> tant alarm 35), però com que acostuma a donar timeouts (si contesta, ho
> fa immediatament, sinó, se que és un timeout) preferixo matar-lo
> i continuar.
>
>
>
> El segon dubte és referent a la memòria consumida.
> Com puc veure la memòria consumida per les meves variables ? Em dona la
> sensació que no estic buidant bé algun hash / array i que va aganat
> dades i dades fins que el meu procés consumeix 600MB... He vist
> http://search.cpan.org/~nwclark/Devel-Size-0.77/lib/Devel/Size.pm però,
> abans de liar-me a estudiar-m'ho volia  preguntar-vos.
>
> Moltes gràcies per endavant!
> Arnau
> _______________________________________________
> llista dels Barcelona-pm
> Barcelona-pm a pm.org
> http://mail.pm.org/mailman/listinfo/barcelona-pm
> BCN Perl Mongers: http://barcelona.pm.org



-- 
--
Carles Fenoy


Més informació sobre la llista de correu Barcelona-pm