我正在测试一个新服务器。这实际上不是我的服务器的高峰时间(下午 2 点),但它仍然运行得有点慢,我使用以下命令检查已建立的连接:
# netstat -ntu | grep :80 | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
https://i.stack.imgur.com/cZuvP.jpg
我的 MaxClients 设置为 50。因此,正如您在图片上看到的,只有 10 个人占用了我的大部分内存。我的服务器有 4GB 内存(2.7GB 可供 Apache 使用),但每个 Apache 进程都占用了 53MB,这意味着我只能接受 50 个进程。
KeepAlive = Off,但我注意到这些连接关闭得不够快,这是正常的吗?
答案1
如果你正在运行 Apache prefork,那么你可以这样做
ps aux |grep http| wc -l
其次这个命令
netstat -ntu | grep :80 | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
包括 ESTABLISHED、CLOSE_WAIT、FIN_WAIT 等状态的连接。
如果您的 Apache 很慢,那么也可能是 Web 应用程序的问题,您可以记录 Apache 处理请求所花费的时间并进行进一步分析。