为什么 apache2 进程消耗这么多 CPU?

为什么 apache2 进程消耗这么多 CPU?

这是我的最上面的输出打印件。 在此处输入图片描述

基本上我的网站挂了,服务器需要在 4-5 小时后重新启动一次...我猜想问题出在 mysql 上,所以我禁用了一些硬查询,但我仍然看到 apache 上存在问题...

有没有什么办法可以找出为什么我的 Apache 进程占用了这么多 CPU?

答案1

尝试使用http://httpd.apache.org/docs/2.0/mod/mod_status.html和/或查看服务器日志并查看正在执行的脚本。我假设它是一个不知何故进入无限循环的脚本

答案2

您没有说明这是预分叉运行还是线程运行。也没有说明正在运行的进程是什么 - 例如 php。

您可以尝试抓取核心文件并查看 gdb 中的堆栈跟踪,或者记录 %D 并查找需要很长时间才能完成的操作,这可能会提供一些线索 - 但如果您提供有关您已设置的更多信息,它可能会有所帮助。

事实上,Apache 实例占用了所有的 CPU,并且占用了大量的内存,这表明代码编写得不好。大胆猜测一下 - 这可能是一个编写得不好的查询,其中进程内语言读取了太多数据。

相关内容