28

在 4-CPU 机器上(由进程)使用 350% 的 cpu 究竟意味着什么?该进程是一个“mysqld”,当前正被模拟的 OLTP 场景“轰炸”。

任何指针表示赞赏。

4

6 回答 6

41

在 *NIX 领域,100% 的 cpu 使用率是单个 cpu 的 100%。

这与真正的多处理器计算机一样适用于多核处理器。

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

于 2009-06-23T12:50:27.413 回答
30

在顶部运行时,按“1”。这将切换视图,以便您可以查看每个内核/cpu 的负载。

于 2009-06-23T12:55:05.360 回答
19

我昨天刚刚阅读了一篇关于这个主题的有趣文章: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 计数)。

于 2009-06-24T12:10:18.720 回答
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。

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

于 2012-05-30T11:04:09.643 回答
4

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

于 2009-06-23T12:50:49.097 回答
3

每个 cpu 进程都被视为 100% 。所以完全是 4 cpu 的 400%。

于 2009-06-23T12:54:22.990 回答