Apache 进程 CPU 使用率突然瞬时飙升。如何追踪?

Apache 进程 CPU 使用率突然瞬时飙升。如何追踪?

我正在运行 Apache,每隔一段时间 [似乎每隔一天一次] Apache 进程的数量就会大幅增加,每个进程都会占用大约 75% 的 CPU 使用率。

我很想追踪这些进程,找到接收请求的实际虚拟主机。有什么建议吗?

答案1

Apache 的日志记录功能很多漂亮的选择,为了弄清到底发生了什么,有几个不错的选择可以尝试。我会从记录 Apache 完成请求所用时间的%D或开始%T,假设占用所有 CPU 时间的事情也需要更多的“实际”时间来完成。

如果您使用的是 Prefork MPM,则可以将日志格式化为包含%P。这将记录实际处理请求的 apache 进程的进程 ID,以便您可以将请求与输出相匹配top。进程 ID 将很快被重复使用(由于每个子进程有多个请求),因此您仍然需要检查日志上的时间戳,但您应该能够找到 apache 进程当时正在处理的特定请求。

如果您正在使用 Worker,那么您可以尝试将其与在 PID 列中打印线程 ID%{tid}P进行匹配。top -H

相关内容