有时 apache 会发疯并占用我所有的内存和交换空间,但我不知道如何找出导致这种情况的 Web 应用程序。
ps 为我提供了该进程的输出;“不间断睡眠(通常是 IO)”
www-data 1526 0.1 78.9 14928852 3191628 ? D Oct17 6:45 /usr/sbin/apache2 -k start
我怀疑是 Ruby+Redmine,但我想确定一下
答案1
确保您已mod_status.so
加载 apache 模块,然后查找/将上述内容添加到您的 httpd.conf:
# Uncomment the following lines to enable mod_status support:
#
ExtendedStatus On
<Location /server-status>
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from YOUR_IP_HERE
</Location>
这将允许您查看 http 服务器中正在使用的加载域的所有页面。
要访问它,请使用http://your_ip/服务器状态并且只有在定义的ipAllow from YOUR_IP_HERE
才可以查看它。
答案2
lsof -p 将显示它正在等待的文件句柄。此外,strace -p 和 ltrace -p 可能很方便尝试调试它。