理解'顶级'CPU使用率

时间:2009-06-23 12:48:10

标签: linux unix top-command

对于一个350%的CPU使用率(通过一个进程),它究竟意味着什么? 4 CPU盒?这个过程是一个'mysqld',目前正在进行中 被模拟的OLTP场景“轰炸”。

任何指示赞赏。

6 个答案:

答案 0 :(得分:41)

在* NIX中,100%的cpu使用率是SINGLE cpu的100%。

这适用于多核处理器,与真正的多处理器计算机相同。

因此,您在mysql上使用总CPU周期的7/8。

答案 1 :(得分:30)

在跑步时,按“1”。这将切换视图,以便您可以查看每个核心/ cpu的负载。

答案 2 :(得分:18)

我昨天刚刚读了一篇关于这个主题的有趣文章:Unix load average。它将解释你需要知道的所有内容。

提取:

  

负载平均值是运行队列长度与当前在CPU上运行的作业数之和。在Solaris 2.0和2.2中,平均负载不包括正在运行的作业,但在Solaris 2.3中修复了此错误。

考虑显示负载有两种基本模式:“IRIX模式”和“Solaris模式”。在IRIX模式(Linux默认值)下,平均负载为1表示一个CPU已满载(或4 CPU系统上每个CPU的25%等)。在Solaris模式下,平均负载为1表示所有 CPU已完全加载(因此它实际上相当于“IRIX模式”加载除以 CPU数量)。

答案 3 :(得分:6)

负载平均值显示队列中等待的进程数(根据CPU数量进行调整)。对于一个CPU,平均负载为1.0意味着该CPU能够最佳地完全处理队列上的所有请求 - 没有进程在等待CPU,并且没有浪费CPU周期(即空闲)。平均负载为2.0(在单核系统上(意味着一半的进程将等待在CPU上运行的机会):(平均负载0.33意味着系统上的负载很小2/3的时间CPU基本上什么都不做,只是等待更多进程运行。

top显示的CPU百分比衡量内核在CPU上运行单个进程的频率,在一段时间内取平均值。因此,在4核系统上350%的意味着,在一段时间内,mysqld将占用三个完整的CPU和第四个CPU的一半时间 - 即它有很多线程可以运行它几乎淹没了4个CPU有请求的核心。 CPU百分比并没有真正考虑到等待队列(虽然负载平均值确实如此):它是在特定时间段内发生的事件的事后统计数据。但它肯定会显示最近哪些进程使用了​​CPU。

关于同一主题的另一篇文章:http://www.linuxjournal.com/article/9001

答案 4 :(得分:4)

有4 x 100%,所以“top”在4 CPU盒子上显示总计400%。

答案 5 :(得分:3)

每个cpu进程都被视为100%。所以它总共占4 cpu的400%。