在顶部,我一直看到僵尸进程(一次不超过一个),它们很快消失(在10秒内),但几秒钟之后会弹出一个新的僵尸。我的服务器运行3个站点,2个用PHP编写,一个用Perl编写,全部由Apache提供。对于PHP站点,我使用mod_rewrite来创建漂亮的URL。我一直试图找出哪个页面或脚本导致这些僵尸,但找不到它。有没有办法将进程的PID连接到它正在执行的请求? 为了找出导致僵尸的原因,我停止了Perl站点和其中一个PHP站点,没有任何改变,僵尸不断前进,所以我最好的猜测是我把它缩小到一个站点,但是又一次,也许它什么都没有与特定网站有关我(我不能让其余网站离线检查,因为人们正在使用它)。 我在该服务器上运行Debian,这是配置:
Apache / 2.2.9(Debian)DAV / 2 SVN / 1.5.1 PHP / 5.2.6-1 + lenny8与Suhosin-Patch mod_ssl / 2.2.9 OpenSSL / 0.9.8g mod_perl / 2.0.4 Perl / v5.10.0
非常感谢任何帮助或指出我正确的方向,我已经谷歌搜索和尝试了几天(我从中学到了很多东西;-))。
在安静的圣诞节假期期间,我有机会让第3个网站离线几分钟。令我惊讶的是,我一直看到僵尸弹出,所以它似乎与一个站点无关,而是在Apache中有一些设置。任何人的想法?
答案 0 :(得分:1)
通过启用mod_status,您可以在服务器的/ status url中获取更多详细信息,如果将ExtendedStatus指令设置为“On”,甚至可以获取最后一页的详细信息。但是,您不应该在生产服务器中长时间使用该设置。
然后我想知道你怎么知道这是一个僵尸进程?你确定它不是apache的“正常”子进程,为客户端请求提供服务吗?你的apache有多少子进程?
答案 1 :(得分:1)