巨大的CPU使用率秒杀,我怎么找出是什么原因呢?

我有一台运行CentOS Linux的服务器,很less发生(也许每三个月发生一次),导致它有一个exception高的CPU负载(400%),导致服务器基本冻结。

我遇到的问题是,当我重新启动服务器,我无法弄清楚是什么造成了穗。 我尝试设置一个cron作业,偶尔会将日志文件转储到前10个CPU进程,但是当CPU负载很高时,cron作业显然不会运行。

我对运行一个服务器有点新奇,所以我希望你们可以提供一些build议,告诉我如何能够更好地logging进程,并找出下一次发生突然激增的原因。 我相信这只是一个脚本或过程失控,但直到我能弄清楚哪一个是我有点亏本…

感谢您的任何帮助,您可以提供!

你多久运行一次logging cronjob? 也许你应该更频繁地运行它,因为CPU使用率不会立即达到顶峰,你必须在某个地方看到增长。 或者,您可以使用atop来监视资源负载(包括CPU负载)超时。

这可能与CPU不相关。 如果您查看像sar(sysstat)这样的实用程序,您可能能够获得有关系统挂起(CPU /磁盘IO /内存/交换/等)时发生了什么的更多信息。

我有几个问题:

重新启动后,您是否看到系统被冻结的日志条目?

你如何确定系统被冻结?

你能够login吗?

不是严格地说你的问题的答案,但检查出monit 。 你可以configuration它来监视各种东西,包括全局系统状态。 例如,如果3分钟CPU使用率超过97%,我的服务器将重新启动。 如果apache在5分钟内使用大于80%的cpu,则会重启,等等。 这是一个非常有用的软件,让我晚上睡得更轻松。 🙂