Нужна помощь в отладке сервера apache, который блокируется
Я новичок в Apache, и я ищу кого-то, чтобы указать мне в правильном направлении.
В настоящее время мы запускаем сервер apache для обработки внутреннего веб-интерфейса с низким объемом для openstack (horizon), а также для сервера api.
Недавно мы столкнулись с проблемами, когда apache будет "зависать" (то есть на время он перестанет отвечать на любые запросы), когда в короткий промежуток времени он столкнется с относительно большим количеством запросов api.
Ничего не отображается в журналах ошибок apache, но я вижу, что некоторые процессы apache работают с гораздо более высокими резидентными наборами памяти, чем обычно:
Как только резидентная память процессов возвращается к нормальному уровню, apache снова начинает правильно отвечать.
Вот аппаратное использование во время "блокировки":
и вот файл конфигурации, который использует Apache:
LockFile ${APACHE_LOCK_DIR}/accept.lock
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
<IfModule mpm_worker_module>
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
<IfModule mpm_event_module>
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
AccessFileName .htaccess
<Files ~ "^\.ht">
Order allow,deny
Deny from all
Satisfy all
</Files>
DefaultType None
HoetnameLookups Off
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
Include mods-enabled/*.load
Include mods-enabled/*.conf
Include httpd.conf
Include ports.conf
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
Include conf.d/
Include sites-enabled/
Есть ли что-то еще, что я должен изучить, чтобы добраться до корня проблемы? По сути, я ищу, чтобы выяснить, что нужно изменить, будь то серверное оборудование или конфигурация apache, чтобы веб-сервер работал бесперебойно под его текущей нагрузкой. Любая помощь будет принята с благодарностью!
1 ответ
Если вы скопировали свой конфиг здесь, у вас есть опечатка (HoetnameLookups
должно быть HostnameLookups
). Это вряд ли должно быть причиной того, что ваша память съест, пока не начнется обмен, но, возможно, стоит попробовать.