Процессы Apache становятся устаревшими, но не испытают таймаут

У меня есть проблема с apache2 httpd. Апач использует mpm_prefork, и веб-приложение использует php.

Я заметил, что машина, где апачские выполнения внезапно спадает до 0%-го использования CPU в течение ночи. Когда я пошел для исследования проблемы, я видел, 75 апачских процессов (75 MaxClients), и они все ничего не сделали.

Когда я straced, апач обрабатывает каждые из них, дал следующий вывод

Process 18845 attached - interrupt to quit
restart_syscall(<... resuming interrupted call ...>) = 0
poll([{fd=22, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 0 (Timeout)
poll([{fd=22, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 1000) = 0 (Timeout)
poll([{fd=22, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 0 (Timeout)
poll([{fd=22, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 1000) = 0 (Timeout)
poll([{fd=22, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 0 (Timeout)
poll([{fd=22, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 1000) = 0 (Timeout)
poll([{fd=22, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 0 (Timeout)
poll([{fd=22, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 1000) = 0 (Timeout)
poll([{fd=22, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 0 (Timeout)
poll([{fd=22, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 1000) = 0 (Timeout)
poll([{fd=22, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 0 (Timeout)
poll([{fd=22, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 1000) = 0 (Timeout)
poll([{fd=22, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 0 (Timeout)
poll([{fd=22, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 1000) = 0 (Timeout)
poll([{fd=22, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 0 (Timeout)
poll([{fd=22, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 1000) = 0 (Timeout)
poll([{fd=22, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 0 (Timeout)
poll([{fd=22, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 1000) = 0 (Timeout)
poll([{fd=22, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 0 (Timeout)

хорошо, что такое fd22?

COMMAND     PID     USER   FD   TYPE    DEVICE SIZE/OFF   NODE NAME
/usr/sbin 18839 www-data   22u  IPv4 129846157      0t0    TCP myhost:44697 -> otherhost:http-alt (ESTABLISHED)
/usr/sbin 18844 www-data   22u  IPv4 129860789      0t0    TCP myhost:44906 -> otherhost:http-alt (ESTABLISHED)
/usr/sbin 18845 www-data   22u  IPv4 129846238      0t0    TCP myhost:44791 -> otherhost:http-alt (ESTABLISHED)
/usr/sbin 18848 www-data   22u  IPv4 129858987      0t0    TCP myhost:44967 -> otherhost:http-alt (ESTABLISHED)
/usr/sbin 18852 www-data   22u  IPv4 129861780      0t0    TCP myhost:44915 -> otherhost:http-alt (ESTABLISHED)
/usr/sbin 18864 www-data   22u  IPv4 129856031      0t0    TCP myhost:44795 -> otherhost:http-alt (ESTABLISHED)
/usr/sbin 18873 www-data   22u  IPv4 129856418      0t0    TCP myhost:44908 -> otherhost:http-alt (ESTABLISHED)
/usr/sbin 19225 www-data   22u  IPv4 129858977      0t0    TCP myhost:44936 -> otherhost:http-alt (ESTABLISHED)
/usr/sbin 19230 www-data   22u  IPv4 129857945      0t0    TCP myhost:44955 -> otherhost:http-alt (ESTABLISHED)

это - соединение с другим хостом. по-видимому, эта другая машина (также в нашей сети) неправильно функционирует во время cronjob в середине ночи и не отвечает вообще на запросы на ~2hours. Хорошо, я в настоящее время не могу решать проблему с другой машиной, и также я не забочусь о благополучии других машин.

Все я, который - wan't, чтобы процессы умерли, если они не могут закончить вовремя. По-видимому, процессы в опросе syscall не рассчитывают с точки зрения php max_execution_time.

Я могу так или иначе сказать апачу избавляться от этих устаревших процессов?

Debian GNU/Linux 7.8

apache2:
2.2.22-13+deb7u4

apache2-mpm-prefork:
2.2.22-13+deb7u4

apache2.2-bin:
2.2.22-13+deb7u4

apache2.2-common:
2.2.22-13+deb7u4

libapache2-mod-php5:
5.3.29-1~dotdeb.0
1
задан 20 April 2015 в 19:06
1 ответ

Вы можете попробовать, поможет ли директива TimeOut http://httpd.apache.org/docs/2.2/mod/core.html#timeout

1
ответ дан 4 December 2019 в 00:09

Теги

Похожие вопросы