我有一个 Apache 进程占用了 98% 的 CPU。我如何才能找到它运行的 Apache 调用?

我有一个 Apache 进程占用了 98% 的 CPU。我如何才能找到它运行的 Apache 调用?

如下所示,单个 Apache 进程挂起并占用大量 CPU 资源。如何找到此 Apache 进程运行的 http 调用?

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
12554 www-data  20   0  776m 285m 199m R   97  3.7  67:15.84 apache2
14580 www-data  20   0  748m 372m 314m S    4  4.8   0:13.60 apache2
12561 www-data  20   0  784m 416m 322m S    3  5.4   0:58.10 apache2
12592 www-data  20   0  785m 427m 332m S    2  5.6   0:57.06 apache2

答案1

使用strace使用特定的 PID。鉴于您的示例,语法将是sudo strace -p 12554。您还可以使用-o选项输出到文件,因为它可能太快而无法在屏幕上跟踪。

以下指南/教程可能会有所帮助,因为strace使用和输出对于初学者来说可能不是直观的:

相关内容