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

время ожидания apache истекает при низком использовании процессора и памяти

Через несколько дней я понимаю, что мой 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 - хорошие инструменты) при выполнении тестов.