在linux系统中cpu利用率超过100%

在我们的一个生产Linux服务器中,CPU利用率是100 % ,有时是250%

我如何find哪个进程使用更多的CPU使用率,以及在哪里可以findCPU使用率日志?

操作系统:RHEL 5.5

CPU利用率是相对于单个CPU测量的。 每个CPU的最大值为100%,所以四CPU系统的最大CPU利用率为400%。

尝试使用top命令

man top更多信息

sar实用程序收集关于您的系统的一些统计信息,如果它打开。 访问它们最简单的方法是在命令行中键入sar

更好的select是安装一个监控系统,如Cacti,Munin或Zabbix。 (尽pipeNagios可以做graphics化,但这不是它的优点。)关于哪个监控系统是最好的,ServerFault已经有很多问题了。 一旦你安装了其中一个,你将无法记住你没有它的生活。

通常,这些不会告诉你在任何给定的时间哪个进程正在使用所有的CPU。 为此,当时最好的select是最好的select。 请记住,使用10%CPU的25个Apache进程在使用250%CPU的单个MySQL进程中显示出不同的结果。

另一个关键指标是“负荷平均值”。 这表示当前有多less进程正在等待处理器。 这是您的系统使用感觉速度的一个很好的指标。

关于CPU利用率的另一个注意事项是,虚拟机可以根据VM的需求dynamic地改变CPU容量。 我看到一个单独的进程显示为在一个虚拟机内使用最高的9999%的CPU。 VMWare给出的build议是“不要相信从VM内测量的指标”。

另一种select是使用ps命令并对CPU使用率进行sorting:

 ps aux --sort=+cpu 

没有进程利用率的日志logging,你可能想要安装这样的东西。 曾经有一个GNU“系统会计”软件包,但是IIRC不太合适。

不知道你用什么来衡量利用率,但你可以使用:

 cat /proc/loadavg 

其他人提到最高。

如果你愿意,你可以运行top -b -n1 | head 在cron中以批处理模式运行,并将输出保存到某处,以跟踪最高进程。

我已经回答了类似的问题。 您可能需要根据自己的需要来增强该脚本。 基本上,命令ps -eo pcpu,pid,user,args | sort -k 1 -r | head -n 5 ps -eo pcpu,pid,user,args | sort -k 1 -r | head -n 5 ps -eo pcpu,pid,user,args | sort -k 1 -r | head -n 5会给你一些有意义的输出。 您可能只想将其自动化并logging输出以供日后分析。