在我们的一台生产 Linux 服务器中,CPU 利用率100 %
有时会超过250%
。
我如何才能找到哪个进程使用了更多的 CPU 利用率,以及在哪里可以找到 CPU 利用率日志?
操作系统:RHEL 5.5
答案1
CPU 利用率是相对于单个 CPU 来衡量的。每个 CPU 的最大利用率为 100%,因此四 CPU 系统的最大 CPU 利用率为 400%。
答案2
尝试使用top
命令
man top
了解更多信息
答案3
这sar
如果您的系统已开启,该实用程序会收集一些有关您的系统的统计信息。访问这些统计信息的最简单方法是sar
在命令行中键入。
一个更好的选择是安装一个监控系统,比如 Cacti、Munin 或 Zabbix。(尽管 Nagios 可以进行绘图,但这不是它的强项。)ServerFault 上已经有很多关于哪个监控系统最好的问题。一旦你安装了其中一个,你就很难记得没有它你是怎么生活的。
通常,这些不会告诉您哪个进程在任何给定时间使用了所有 CPU。为此,top
或htop
当时是您最好的选择。请记住,使用 10% CPU 的 25 个 Apache 进程与top
使用 250% CPU 的单个 MySQL 进程显示不同。
另一个需要关注的关键指标是“平均负载”。它表示当前有多少进程正在等待处理器。它能够很好地指示您的系统使用起来有多慢。
关于 CPU 利用率的另一点说明是,虚拟机可以根据 VM 的需求动态改变 CPU 容量。我曾在 VM 中看到过一个进程占用了 9999% 的 CPU。VMWare 对此给出的建议是“不要相信从 VM 内部测量的指标”。
答案4
没有进程利用率的日志记录,您可能需要安装类似的东西atop
。以前也有一个 GNU“系统会计”包,但我记得它不太合适。