我正在使用具有 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+ …
这是一个关于 Unix 操作系统如何报告内存使用情况的规范问题。
类似问题:
我有运行Debian 6.0.6 Squeeze 的生产服务器
#uname -a
Linux debsrv 2.6.32-5-xen-amd64 #1 SMP Sun Sep 23 13:49:30 UTC 2012 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
每天cron以 root 身份执行备份脚本:
#crontab -e
0 5 * * * /root/sites_backup.sh > /dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)
#nano /root/sites_backup.sh
Linux debsrv 2.6.32-5-xen-amd64 #1 SMP Sun Sep 23 13:49:30 UTC 2012 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
一切正常,但我注意到 Munin 的内存图显示备份后缓存和缓冲区的增加。
然后我只是下载备份文件并删除它们。删除后 Munin 的内存图将缓存和缓冲区返回到备份前的状态。
这是穆宁图: …