Иногда mod_perl процесс apache помечен как «несуществующий» в «верхней» утилите, то есть становится зомби-процессом. Правильное ли поведение? Должен ли я беспокоиться об этом?Почему процесс apache mod_perl стал зомби?
Наш скрипт Perl очень прост, он не порождает дочерние процессы. Процесс зомби исчезает довольно быстро. Apache2, Ubuntu.
Наш Апач конфиг здесь: apache_config.txt
Вот оснастки выстрел сверху.
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
19525 www-data 20 0 55972 25m 4684 S 10.3 2.4 0:00.32 apache2
19486 www-data 20 0 52792 21m 4120 S 1.7 2.1 0:00.05 apache2
19538 www-data 20 0 52792 21m 4120 S 1.3 2.1 0:00.04 apache2
19539 www-data 20 0 0 0 0 Z 0.7 0.0 0:00.03 apache2 <defunct>
19481 www-data 20 0 52860 21m 4016 S 0.3 2.1 0:00.05 apache2
19521 www-data 20 0 52804 21m 3824 S 0.3 2.1 0:00.08 apache2
Этих модули CPAN я использую
CGI();
XML::LibXML();
DateTime;
DateTime::TimeZone;
Benchmark();
Data::Dump();
Devel::StackTrace();
DBD::mysql();
DBI();
LWP();
LWP::UserAgent();
HTTP::Request();
HTTP::Response();
URI::Heuristic();
MD5();
IO::String();
DateTime::Format::HTTP();
Math::BigInt();
Digest::SHA1();
top:
26252 www-data 20 0 0 0 0 Z 0.3 0.0 0:00.22 apache2 <defunct>
access.log with pid logged as the first parameter:
26252 85.124.207.173 - - [26/Dec/2009:22:16:42 +0300] "GET /cgi-bin/wimo/server/index.pl?location=gn:2761369&request=forecast&client_part=app&ver=2_0b191&client=desktop&license_type=free&auto_id=125CC6B6DAA HTTP/1.1" 200 826 0 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; GTB6.3; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"
3 различных процессы зомби регистрируемых серверов статус
Srv PID Acc M CPU SS Req ConnChild Slot Client VHost Request
32-0 1300 0/0/45 _ 0.00 0 0 0.0 0.00 2.29 127.0.0.1 weather_server OPTIONS * HTTP/1.0
100-0 1254 1/7/41 C 0.22 0 0 0.0 0.00 1.51 127.0.0.1 weather_server OPTIONS * HTTP/1.0
29-0 1299 0/12/78 _ 0.31 0 2 0.0 0.78 2.37 [my ip was here] weather_server GET /server-status HTTP/1.1
Спасибо, Роб. Я могу отправить вам весь исходный код. Вы хотите посмотреть на него? Тем не менее, есть что прочитать, около 30 файлов. Я добавил список модулей CPAN, используемых нашей системой, на столбе, см. Выше. – Pavel
Я уверен, что в моем коде нет прямых системных вызовов. – Pavel
Кроме того, pid процесса зомби соответствует Apache2 pid. Как мне кажется, процесс зомби - это процесс Apache mod_perl, а не другой, порожденный кодом mod_perl. – Pavel