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

Процессы Apache httpd в состоянии lockf

Мы запускаем Apache в системе FreeBSD, в нем есть несколько веб-приложений (Wordpress, Magento, собственный PHP). По мере увеличения трафика мы видим все больше и больше процессов httpd в статусе «lockf» (с использованием «top»). Нагрузка на сервер увеличивается, пока нам не придется перезапускать Apache.

Насколько я понимаю, в этом состоянии Apache ждет блокировки файла. Но как узнать, какой файл (ы) нужно заблокировать / вызвать узкое место? Без этой информации решить проблему будет очень сложно.

Это старый вопрос, но я попробую;)

Эта ситуация звучит как «у вас медленная поездка» - но это просто ощущение, когда вы ничего не знаете.

Чтобы ответить на прямой вопрос (поиск используемых файлов), сделайте следующее: Проверьте, установлен ли у вас lsof. which lsof, если не установлен, установите его с помощью pkg (_install) (не знаю, какая у вас версия FreeBSD).

Затем найдите свои http-процессы по top или ps и используйте lsof, чтобы увидеть, какие файлы используются с lsof -p PROCNUMBER Это дает вам таблицу ВСЕХ файлов / каталогов / каналов и т.д., используемых в этом процессе.

Теперь это можно проверить. Посмотри на man lsof, он очень длинный и имеет большую мощность.

Не зная результата того, что вы обнаружите, попробуйте уменьшить или даже отключить ведение журнала и посмотрите, поможет ли это. Использование неправильной настройки ведения журнала и большого трафика может убить даже большие машины. И последнее замечание: если у вас есть хорошая машина, на которой выполняется описанная вами установка, САМАЯ БОЛЬШАЯ проблема - это во многих случаях ввод-вывод диска. Dual Xeon Superbig-CPU не имеет смысла, если у вас все еще есть диск IDE;)

И последний ресурс, который может быть интересен: http://httpd.apache.org/docs/2.2/caching.html