[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