需要帮助调试锁定的 Apache 服务器

需要帮助调试锁定的 Apache 服务器

我是 Apache 的新手,正在寻找可以给我指明正确方向的人。

我们目前运行一个 apache 服务器来处理 openstack(horizo​​n)的内部、低容量 web 接口以及 api 服务器。

最近我们遇到了一个问题,当 apache 在短时间内受到大量 api 请求的影响时,它会“锁定”(即,它会在一段时间内停止响应任何请求)。

apache 错误日志中没有显示任何内容,但我确实看到一些 apache 进程运行时的驻留内存集比正常情况下高得多:

https://i.stack.imgur.com/skrUz.png

一旦进程的驻留内存恢复到正常水平,apache 就会再次开始正常响应。

以下是“锁定”期间的硬件使用情况:

https://i.stack.imgur.com/AEisB.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 配置,以便让 Web 服务器在当前负载下顺利运行。任何帮助都将不胜感激!

答案1

如果您在此处复制粘贴了配置,则其中存在拼写错误(HoetnameLookups应该是HostnameLookups)。在交换开始之前,这几乎不会成为导致内存耗尽的原因,但可能值得一试。

相关内容