Нужна помощь в отладке сервера apache, который блокируется

Я новичок в Apache, и я ищу кого-то, чтобы указать мне в правильном направлении.

В настоящее время мы запускаем сервер apache для обработки внутреннего веб-интерфейса с низким объемом для openstack (horizon), а также для сервера api.

Недавно мы столкнулись с проблемами, когда apache будет "зависать" (то есть на время он перестанет отвечать на любые запросы), когда в короткий промежуток времени он столкнется с относительно большим количеством запросов api.

Ничего не отображается в журналах ошибок apache, но я вижу, что некоторые процессы apache работают с гораздо более высокими резидентными наборами памяти, чем обычно:

https://faultserver.ru/images/1bf4bf642a9b4bd0f326c92949517581bf8ca247.png

Как только резидентная память процессов возвращается к нормальному уровню, apache снова начинает правильно отвечать.

Вот аппаратное использование во время "блокировки":

https://faultserver.ru/images/a6a550138b25b93177b8bcd1c2c4435fabbd318a.png

и вот файл конфигурации, который использует 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). Это вряд ли должно быть причиной того, что ваша память съест, пока не начнется обмен, но, возможно, стоит попробовать.

Другие вопросы по тегам