我试图找出我的服务器上的一些问题,我的 CPU 每隔一天就达到 100% 的利用率。这会导致我所有的网站和 http 服务都失败。
当我的 cpu 在 10 个周期内达到 100% 时,如何配置 monit 以重新启动 httpd 服务?
我还是 linux 和 centos 的新手。学习我的方法,我已经尝试研究了一段时间,但我找不到正确的答案。
感谢您的关注
更新
感谢您的答复。当 CPU 以 100% 运行时,我运行了 top 命令,我可以看到用户没有人在 httpd 服务上使用所有这些。我有一些使用 php 脚本的应用程序,但它们的错误日志看起来都很好。
我怀疑某个特定的 wordpress 主题由于更新网站时出现循环而导致此错误。这个特定的网站还向我显示了一个环回测试失败错误,而同一台服务器上的所有其他 wordpress 网站都运行良好。
因此,在找出罪魁祸首之前,我只想在 CPU 利用率达到 95% 并持续 10 个周期时重新启动服务 httpd。
我希望这足以让有人给我一个解决方案。
大概使用
当然, M/Monit wiki上会有更多信息。
您提供的有关堆栈和问题的信息很少。你甚至没有提供什么服务/应用程序正在消耗 100% CPU 的信息。如果您甚至考虑在 cpu 达到 100% 时重新启动 httpd 都不是解决方案,那就太愚蠢了。
使用htop、iotop和sar等实用程序来确定哪些资源正在使用。但是根据我看到的水晶球猜测是httpd中的mod_php。
我会在 Monit 中使用这条线来获得你想要的东西:
总而言之,它可能看起来像这样:
Though this should do as you requested, I'm not sure this will give you the results you are looking for as Apache may have several processes running at any one time.
For your Wordpress woes, Wordpress Query Monitor might help you to track down the culprit.