我有一台服务器,我无法解释内存的去向。
top 的输出(按 %MEM 排序)表明我在该服务器上有 96GB 的 RAM。
top - 23:30:54 up 1 day, 21:55, 2 users, load average: 1447.94, 1429.95, 1430.95
Tasks: 403 total, 1 running, 402 sleeping, 0 stopped, 0 zombie
Cpu(s): 8.2%us, 9.5%sy, 0.0%ni, 79.6%id, 1.8%wa, 0.0%hi, 0.9%si, 0.0%st
Mem: 98650976k total, 98025188k used, 625788k free, 419924k buffers
Swap: 4095996k total, 0k used, 4095996k free, 8917188k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
17570 web 20 0 64.7g 46g 27m S 12.1 49.8 68:49.85 java
17162 memcache 20 0 5619m 4.6g 1728 S 0.0 4.9 2:56.36 memcached
16694 root 20 0 2428m 1.6g 6984 S 99.7 1.7 193:50.29 glusterfs
17572 web 20 0 8034m 389m 27m S 0.0 0.4 0:39.24 java
17568 web 20 0 8225m 301m 27m S 0.3 0.3 0:26.64 java
17571 web 20 0 10.9g 253m 27m S 0.0 0.3 0:19.22 java
17569 web 20 0 7965m 252m 27m S 0.0 0.3 0:19.57 java
然而 vmstat 只能“看到”~64GB
[root@web-node19 ~]# vmstat -a -S M
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free inact active si so bi bo in cs us sy id wa st
7 0 0 692 10836 54313 0 0 2236 751 13 1 14 15 70 1 0
这是 meminfo 的完整输出
[root@web-node19 ~]# cat /proc/meminfo
MemTotal: 98650976 kB
MemFree: 847812 kB
MemAvailable: 16597476 kB
Buffers: 420016 kB
Cached: 9362772 kB
SwapCached: 0 kB
Active: 55884280 kB
Inactive: 11407444 kB
Active(anon): 55029988 kB
Inactive(anon): 2483792 kB
Active(file): 854292 kB
Inactive(file): 8923652 kB
Unevictable: 14896 kB
Mlocked: 14896 kB
SwapTotal: 4095996 kB
SwapFree: 4095996 kB
Dirty: 41428 kB
Writeback: 416 kB
AnonPages: 57523880 kB
Mapped: 87048 kB
Shmem: 2072 kB
Slab: 10233020 kB
SReclaimable: 6959564 kB
SUnreclaim: 3273456 kB
KernelStack: 51728 kB
PageTables: 148464 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 53421484 kB
Committed_AS: 34019392 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
HardwareCorrupted: 0 kB
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
ShmemPmdMapped: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 128600 kB
DirectMap2M: 3706880 kB
DirectMap1G: 96468992 kB
有人能指点我吗?剩余的内存在哪里?:)
谢谢你,
答案1
第一行vmstat
显示自上次重新启动以来资源的平均使用情况,而不是总数。swapd
尽管系统显然在磁盘或交换空间上具有虚拟内存,但该列仍显示 0。只是没有一个被使用。
它没有显示 96GB,因为缓冲区和缓存没有显示,这正是您在free
.
答案2
vmstat -a
不跟踪所有系统内存;特别是它缺少缓冲区和缓存中使用的所有内存(您可以在没有 的情况下看到-a
)。
您的价值观与以下信息相符/proc/meminfo
:
MemFree: 847812 kB
...
Active: 55884280 kB
Inactive: 11407444 kB
(由于输出不同时而有一点变化)。