У меня есть сервер под управлением CentOS 5, MySQL 5.1 и PHP 5.2. У меня проблема, и я не знаю, с чего начать. Похоже, что в периоды высокого трафика у Apache иногда будет задержка (или тайм-аут) при получении запрошенной веб-страницы. Обычно я посещаю страницу, и она просто зависает при ее загрузке.
Проблема в том, что после этого я могу без проблем посетить 100 страниц, поэтому повторить это очень сложно. Я думаю, что причина в неправильной конфигурации, которая не позволяет обеспечить достаточное количество одновременных подключений к Apache или MySQL.
Не могли бы вы дать мне несколько советов о том, что я могу проверить, чтобы попытаться исключить некоторые из возможных причин?
взгляните на этот блок в своем httpd.conf
<IfModule prefork.c>
StartServers 2
MinSpareServers 4
MaxSpareServers 8
ServerLimit 75
MaxClients 75
MaxRequestsPerChild 1000
</IfModule>
затем во время одного из этих пиковых периодов выполните:
ps ax | grep httpd | wc -l
должен дать вам количество запущенных процессов apache - если оно близко к директиве вашего сервера - увеличьте его в своем httpd.conf. ваше «отставание» звучит как время, необходимое apache, чтобы дождаться тайм-аута / смерти другого процесса и запуска нового.
-шон
Вы можете посмотреть на несколько вещей:
top
как при низкой, так и при высокой нагрузке. Просмотрите его при низкой нагрузке, чтобы понять, когда все работает нормально, и сравнить их со статистикой высокой нагрузки. Посмотрите на такие вещи, как: потребление памяти, использование ЦП, использование ввода-вывода, какие процессы используют память / ЦП, есть ли какие-либо процессы в «непрерывном сне» («D» в столбце статистики).netstat
чтобы узнать, получает ли вы большое количество входящих запросов во время высокой загрузки. Ищите большое количество подключений с одним и тем же IP.free
, vmstat
и iostat
может дать вам больше информации о памяти и вводе-выводе. В частности, убедитесь, что вы не используете виртуальную память./var/log/
включая Apache, MySQL, системные журналы и т. д. для любых очевидных сообщений об ошибках или предупреждениях.