我试图debugging为什么我们所有的Apache儿童locking应用程序服务器,并停止服务请求。 这些是mod_perl应用服务器。
问题是要找出当前的请求,你需要做一个http请求来找出服务器状态(使用mod_status)。
你可以挂钩到mod_perl生命周期的早期阶段,然后转储请求。 在最后添加一个钩子来标记一个特定的请求(可能是添加响应头),现在你知道当前正在运行的是什么。
不是你正在寻找什么,但你可以重新启动Apache,脚本每隔(N秒/分钟)获取状态,直到它崩溃,然后看最新的?
后来我发现有一个可能的途径是停止传入这个网站的stream量(本地盒子上的iptables规则很容易)然后得到一个apache儿童的pid列表,并发送一个HUP给几个孩子,然后做一个localhost的服务器状态(因为你现在有一些空闲的孩子来服务请求)。