Назад | Перейти на главную страницу

Почему процессы httpd все больше времени проводят в состоянии регистрации?

Я использую веб-сервер Apache 2.2.

При стресс-тестировании я замечаю, что не могу увеличить нагрузку сверх определенного количества одновременных подключений. Странно то, что я, похоже, не достиг предела использования ЦП или памяти и почти не вижу увеличения времени обслуживания страницы.

Однако я заметил, что все большая часть процессов httpd находится в том, что mod_status называет состоянием «ведение журнала»:

MaxClients равно 500, но, как вы можете видеть, фактическое количество процессов, доступных для обработки соединения, уменьшается, поскольку все больше и больше процессов тратят свое время на ведение журнала.

Как это может быть?

Моим первым предположением было бы узкое место дискового ввода-вывода, но несколько вещей говорят против этого:

  1. В других частях приложения нет узких мест, хотя еще больше операций ввода-вывода диска должно происходить в другом месте.
  2. Каждый процесс должен записывать только одну строку в журнал доступа в конце запроса. Если здесь есть узкое место, запись на диск происходит необычно медленно по сегодняшним меркам.

Что я могу сделать, чтобы продолжить расследование?

Спасибо, Якоб