Brendan Asked: 2009-06-15 15:39:15 +0800 CST2009-06-15 15:39:15 +0800 CST 2009-06-15 15:39:15 +0800 CST 在 MaxClients 时从 apache2 中找出服务器状态 772 我试图调试为什么我们的应用服务器所有的 apache 孩子都锁定并停止服务请求。这些是 mod_perl 应用服务器。 问题是要找出当前请求是什么,您需要发出一个 http 请求来找出服务器状态(使用 mod_status)。 apache-2.2 mod-perl 3 个回答 Voted David Pashley 2009-06-16T01:15:16+08:002009-06-16T01:15:16+08:00 您可以挂钩到 mod_perl 生命周期的早期阶段之一,并在此时转储请求。在末尾添加一个钩子以将特定请求标记为已完成(可能添加响应标头),现在您知道当前正在运行什么。 crb 2009-06-15T18:00:06+08:002009-06-15T18:00:06+08:00 不是您正在寻找的确切内容,但是您可以重新启动 Apache,脚本每(N 秒/分钟)获取状态,直到它崩溃,然后查看最新的? Brendan 2009-06-15T19:12:15+08:002009-06-15T19:12:15+08:00 从那以后,我发现一种可能的方法是阻止传入该网站的流量(本地框上的 iptables 规则很容易),然后获取 apache 孩子的 pid 列表并将 HUP 发送给几个孩子,然后做一个 localhost server-status (因为你现在有一些空闲的孩子来服务请求)。
您可以挂钩到 mod_perl 生命周期的早期阶段之一,并在此时转储请求。在末尾添加一个钩子以将特定请求标记为已完成(可能添加响应标头),现在您知道当前正在运行什么。
不是您正在寻找的确切内容,但是您可以重新启动 Apache,脚本每(N 秒/分钟)获取状态,直到它崩溃,然后查看最新的?
从那以后,我发现一种可能的方法是阻止传入该网站的流量(本地框上的 iptables 规则很容易),然后获取 apache 孩子的 pid 列表并将 HUP 发送给几个孩子,然后做一个 localhost server-status (因为你现在有一些空闲的孩子来服务请求)。