CPU 使用率大幅飙升,如何找出原因?

CPU 使用率大幅飙升,如何找出原因?

我有一台运行 CentOS Linux 的服务器,很少(大概每 3 个月一次)会发生一些事情导致其 CPU 负载异常高(400%),从而导致服务器基本上冻结。

我遇到的问题是,当我重新启动服务器时,我无法找出导致峰值的原因。我尝试设置一个 cron 作业,偶尔将前 10 个 CPU 进程转储到日志文件中,但当 CPU 负载很高时,cron 作业显然也不会运行。

我对运行服务器还比较陌生,所以我希望你们能给我一些建议,告诉我如何更好地记录进程,并找出下次发生突然激增的原因。我确信这只是一个失控的脚本或进程,但在我弄清楚是哪一个之前,我有点不知所措……

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

答案1

你运行这个日志记录 cronjob 的频率是多少?也许你应该更频繁地运行它,因为 CPU 使用率不会立即达到峰值,你必须在某个地方看到增加。或者,你可以使用在顶上监控资源负载(包括CPU负载)的超时情况。

答案2

严格来说,这不是对你问题的回答,但请查看监控。您可以将其配置为监控各种内容,包括全局系统统计信息。例如,如果 CPU 使用率在 3 分钟内超过 97%,我的服务器将重新启动。如果 apache 在 5 分钟内使用 >80% 的 CPU,它将重新启动,依此类推。这是一款非常有用的软件,让我晚上睡得更安稳。:-)

答案3

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

我有几个问题:

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

如何确定系统已冻结?

您可以登录吗?

相关内容