如何调试 leeching 的 apache 进程?

如何调试 leeching 的 apache 进程?

我正在使用 mod-fcgid、suexec 和 SysCP 运行 apache2。有时,apache 进程会卡住,在我的服务器上的一个核心上使用 100% 的 CPU。在这种状态下,apache 也无法处理任何其他请求。在这种情况下,我需要手动 kill -9 进程。由于崩溃的是其全局用户下的 apache2 进程,而不是具有项目特定用户 ID 的 fcgid,我甚至看不到哪个代码导致了崩溃。有什么好的策略可以确定这种行为的原因?

答案1

如果你有权访问 apache httpd.conf,你可以启用并配置mod_status使用您的 IP,当进程开始占用 CPU 时,加载页面并搜索 processID

答案2

它运行在什么操作系统上?如果是 Linux/BSD...

使用 gdb(或 gcore)找出卡住的位置。(在抓取核心文件之前,记下占用 CPU 的 pid)

相关内容