我正在使用具有 128GB 内存和 24 个内核的 linux 服务器。我使用 top 来查看它使用了多少。它的输出粘贴在帖子的末尾。这里有两个问题:
(1) 我看到每个正在运行的进程占用的内存百分比非常小(%MEM 不超过 0.2%,大多数只有 0.0%),但是如何使用总内存几乎就像第四行输出( “内存:总共 130766620k,已使用 130161072k,605548k 空闲,919300k 缓冲区”)?所有进程的内存使用百分比总和似乎不太可能达到几乎 100%,不是吗?
(2)如何理解第一行的平均负载(“平均负载:14.04、14.02、14.00”)?
感谢致敬!
编辑:
谢谢!
我也很喜欢听一些基于已用内存百分比的粗略数字来确定服务器是否负载过重,因为我曾经成为一个在不了解当前负载的情况下塞满服务器的人。
交换被认为与内存几乎相同吗?比如当内存和swap大小差不多的时候,如果内存快用完了,但是swap还是大体空闲的,我是不是可以只看内存+swap的使用比例还不高,运行其他新的流程?
您如何同时考虑 CPU 或内存(或内存 + 交换)的使用情况?如果它们中的任何一个或两者都达到太高,您会担心吗?
顶部的输出?
$顶
top - 12:45:33 up 19 days, 23:11, 18 users, load average: 14.04, 14.02, 14.00 任务:总共 484 个,运行 12 个,睡眠 472 个,停止 0 个,僵尸 0 个 Cpu(s):36.7%us、19.7%sy、0.0%ni、43.6%id、0.0%wa、0.0%hi、0.0%si、0.0%st 内存:总共 130766620k,已使用 130161072k,605548k 空闲,919300k 缓冲区 交换:总共 63111312k,已使用 500556k,空闲 62610756k,缓存 124437752k PID 用户 PR NI VIRT RES SHR S %CPU %MEM TIME+ …
我们遇到了一个奇怪的行为,我们看到 CPU 利用率很高,但平均负载很低。
我们监控系统的以下图表可以最好地说明这种行为。

在大约 11:57,CPU 利用率从 25% 上升到 75%。平均负载没有显着变化。
我们运行的服务器有 12 个内核,每个内核有 2 个超线程。操作系统将其视为 24 个 CPU。
CPU 利用率数据是通过/usr/bin/mpstat 60 1每分钟运行一次来收集的。all行和%usr列的数据显示在上面的图表中。我确信这确实显示了每个 CPU 数据的平均值,而不是“堆叠”利用率。虽然我们在图表中看到 75% 的利用率,但我们看到一个进程显示在top.
平均负载数字取自/proc/loadavg每分钟。
uname -a 给出:
Linux ab04 2.6.32-279.el6.x86_64 #1 SMP Wed Jun 13 18:24:36 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
Linux 发行版是 Red Hat Enterprise Linux Server release 6.3 (Santiago)
我们在机器上以相当高的负载运行几个 Java Web 应用程序,每台机器每秒 100 个请求。
如果我正确解释了 CPU 利用率数据,当我们有 75% 的 CPU 利用率时,这意味着我们的 …