Несколько процессов Apache с более чем 33% процессора и 1,3 г памяти каждый? - PullRequest
1 голос
/ 24 января 2012

у нас есть несколько сайтов, размещенных на сервере Amazon x-large AWS. Когда я перезапускаю Apache, я запускаю top и вижу количество процессов Apache (6-8), которые быстро увеличивают процент процессора и памяти до 33% процессора, иногда до 50% процессора и выше. до 1,3 г памяти каждый! они будут оставаться в top в течение 10 - 20 минут, затем другой будет запускаться с тем же поведением.

если я сделаю strace на одном из этих процессов, я получу список без редактирования, подобный приведенному ниже:

access("/etc/localtime", R_OK)          = 0

access("/etc/localtime", R_OK)          = 0

access("/etc/localtime", R_OK)          = 0

access("/etc/localtime", R_OK)          = 0

access("/etc/localtime", R_OK)          = 0
...

список не остановится. если я оставлю эти процессы запущенными, они в конечном итоге остановят сервер, и мне потребуется перезагрузить всю виртуальную машину.

у кого-нибудь есть идеи о том, почему процесс продолжает получать доступ к этому файлу, или другой подход к тому, как я могу узнать, почему это происходит?

1 Ответ

2 голосов
/ 24 января 2012

Если вы включите mod_status и установите ExtendedStatus on, то вы можете посетить http://server/server-status (или другое место, которое вы установили для использования обработчика server-status), и вы получите таблицу того, что каждый процесс / поток Apacheделает:

Srv  PID   Acc        M  CPU   SS  Req   Conn  Child  Slot  Client  VHost            Request
⋮
3-0  2129  0/167/167  _  1.13  495 0     0.0   0.33   0.33  ::1     Zia.metrics.net  GET /mrtg/mrtg-l.png HTTP/1.1
4-0  2130  1/150/150  W  1.11  0   0     1.4   0.30   0.30  ::1     Zia.metrics.net  GET /server-status HTTP/1.1
⋮

Страница состояния включает полное описание ключа и поля, а также некоторые другие сводные данные.Вы, вероятно, должны защищать его, чтобы его могли видеть только вы, а не Интернет:

<Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1 ::1
</Location>
ExtendedStatus On

Вы можете использовать любой метод контроля доступа, доступный в Apache (например, обычная или дайджест-аутентификация).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...