apache2 响应缓慢(debian)

apache2 响应缓慢(debian)

我正在运行带有 modpython 和 mpm_worker_module 的 apache2 2.2.9 网络服务器。

mpm 的当前配置是

ServerLimit 32
StartServers         10
MaxClients          800
MinSpareThreads      25
MaxSpareThreads      75
ThreadsPerChild      25
MaxRequestsPerChild   0

该服务器有 1G 内存和 100Mbit 连接。

检查netstat -na | grep ESTABLISHED | wc -l给我一个 50 - 60 之间的数字。负载大约为 1.0 每个页面加载也由 memcached 缓存。

我不明白为什么服务器对新连接的响应如此缓慢,有时会完全丢弃它们?

还尝试禁用 iptables 以确保不是由于状态表已满或类似原因造成的。

dmesg 中唯一的内容是大量关于“TCP:叛国罪被揭露!”的垃圾邮件。

即使使用 apache2ctl 状态连接到 localhost 也会失败,因此它不应该与 modpython 有关。当状态确实有效时,它显示正在处理大约 110-128 个请求。大约一半是状态 C(正在关闭连接),大量 _(正在等待连接),其余的是 R 和 W

答案1

error_log 报告了什么?它是开始调试此类问题的最佳位置。

top 也是调试此问题的一种好方法。运行 top 并检查 Apache 进程是否占用过多 CPU。然后键入 M 按内存使用情况对进程进行排序,并检查它们是否消耗过多 RAM。

还请检查是否正在交换:

free

memcached 在同一台服务器上运行吗?如果是这样,它分配了多少内存?

另外,您是否遇到了 i/o 等待问题?运行 top 时检查 %wa 值。

关于网络,您遇到错误或 CRC 吗?使用 netstat 检查:

netstat -i

查看 RX-ERR、RX-DRP、TX-ERR 和 TX-DRP 列。理想情况下,这些值应为 0。

希望这可以帮助。

相关内容