Через несколько дней я понимаю, что мой apache2 работает очень медленно, если у него около 90 текущих запросов.
Если я провожу тест loader.io, например, таймауты после 13 успешных запросов:
loader.io результаты http://d.pr/i/S6D1+
Что меня действительно интересует, так это то, что мой процессор загружается нормально (снимок экрана во время теста загрузчика):
дисплей htop http://d.pr/i/kNZ4+
Также в моей памяти достаточно свободного места.
бесплатные -m выходы:
total used free shared buffers cached
Mem: 24158 6494 17663 0 259 2492
-/+ buffers/cache: 3742 20416
Swap: 24574 0 24574
Мои текущие настройки apache2:
Timeout 20
KeepAlive On
MaxKeepAliveRequests 75
KeepAliveTimeout 2
<IfModule mpm_prefork_module>
StartServers 10
MinSpareServers 10
MaxSpareServers 30
ServerLimit 200
MaxClients 200
MaxRequestsPerChild 4000
</IfModule>
РЕДАКТИРОВАТЬ:
Дополнительные характеристики по запросу:
OS: Debian 6.0.7 (2.6.32-5-amd64)
mySQL-Server: 5.5.30-1~dotdeb.0-log (Debian)
PHP: 5.3.22-1~dotdeb.0 with Suhosin-Patch (cli)
Настройки APC:
; configuration for php apc module
extension=apc.so
apc.enabled=1
apc.shm_size=512M
В mySQL Tuning Primer также говорится, что все в порядке.
Сайт, который я тестировал, был сайтом TYPO3 с некоторым количеством AJAX на стартовой странице.
Просто протестировали Сайт на простом Wordpress на том же сервере (никаких проблем)
Success responses: 3097
Avg response time: 1503
Sent from app: 20.86 MB
Rcvd from loader: 369.10 KB
Тестирование на этом TYPO3 рано завершается
Есть идеи, почему это происходит? Даже статус apache2ctl становится очень медленным! Но остальное в системе действует нормально.
Не знаю, почему это происходит по прошествии этого времени.
Если с процессором и памятью все в порядке, вы можете попробовать изменить значение ServerLimit и MaxClients на большее число и повторить тест. В записи htop я вижу «446 задач», поэтому кажется, что количество процессов httpd достигает этих пределов.
Но это всего лишь обходной путь, таймауты появятся снова после большего количества запросов в тесте. Что вам нужно искать, так это почему запрос httpd занимает около 6 секунд, возможно, что-то в коде не работает нормально.
Как вы говорите на простом сайте wordpress, тесты проходят нормально, поэтому вам нужно проверить приложение (¿php?, ¿Python?), Которое вы тестируете. В базе данных проверьте, есть ли медленные запросы (mytop или mtop - хорошие инструменты) при выполнении тестов.