内存使用率高但没有进程正在使用它

ass*_*ias 25 linux memory debian

free -m在 Hyper-V 上运行的 debian VM 上运行:

             total       used       free     shared    buffers     cached
Mem:         10017       9475        541        147         34        909
-/+ buffers/cache:       8531       1485
Swap:         1905          0       1905
Run Code Online (Sandbox Code Playgroud)

所以在我的 10GB 内存中,8.5GB 正在使用中,只有 1500MB 空闲(不包括缓存)。

但我很难找到什么在使用内存。的输出ps aux | awk '{sum+=$6} END {print sum / 1024}', 应该加起来 RSS 利用率是:

1005.2
Run Code Online (Sandbox Code Playgroud)

换句话说,我的进程只使用了 1GB 的内存,但整个系统(不包括缓存)使用了 8.5GB。

其他 7.5GB 可以用来做什么?

ps:我有另一台具有类似配置的服务器,显示使用的内存为 1200(免费内存 = 8.8GB),ps 中的 RSS 使用总和为 900,这更接近我的预期......


编辑

cat /proc/meminfo 在机器 1(低内存)上:

MemTotal:       10257656 kB
MemFree:          395840 kB
MemAvailable:    1428508 kB
Buffers:          162640 kB
Cached:          1173040 kB
SwapCached:          176 kB
Active:          1810200 kB
Inactive:         476668 kB
Active(anon):     942816 kB
Inactive(anon):   176184 kB
Active(file):     867384 kB
Inactive(file):   300484 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       1951740 kB
SwapFree:        1951528 kB
Dirty:                16 kB
Writeback:             0 kB
AnonPages:        951016 kB
Mapped:           224388 kB
Shmem:            167820 kB
Slab:              86464 kB
SReclaimable:      67488 kB
SUnreclaim:        18976 kB
KernelStack:        6736 kB
PageTables:        13728 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     7080568 kB
Committed_AS:    1893156 kB
VmallocTotal:   34359738367 kB
VmallocUsed:       62284 kB
VmallocChunk:   34359672552 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:       67520 kB
DirectMap2M:    10418176 kB
Run Code Online (Sandbox Code Playgroud)

cat /proc/meminfo 在机器 2 上(正常内存使用):

MemTotal:       12326128 kB
MemFree:         8895188 kB
MemAvailable:   10947592 kB
Buffers:          191548 kB
Cached:          2188088 kB
SwapCached:            0 kB
Active:          2890128 kB
Inactive:         350360 kB
Active(anon):    1018116 kB
Inactive(anon):    33320 kB
Active(file):    1872012 kB
Inactive(file):   317040 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       3442684 kB
SwapFree:        3442684 kB
Dirty:                44 kB
Writeback:             0 kB
AnonPages:        860880 kB
Mapped:           204680 kB
Shmem:            190588 kB
Slab:              86812 kB
SReclaimable:      64556 kB
SUnreclaim:        22256 kB
KernelStack:       10576 kB
PageTables:        11924 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     9605748 kB
Committed_AS:    1753476 kB
VmallocTotal:   34359738367 kB
VmallocUsed:       62708 kB
VmallocChunk:   34359671804 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:       63424 kB
DirectMap2M:    12519424 kB
Run Code Online (Sandbox Code Playgroud)

Mat*_*att 20

我知道您使用的是 Hyper-V,但概念相似。也许这会让你走上正确的轨道。

您的问题可能是由于虚拟内存膨胀造成的,这是管理程序用来优化内存的一种技术。请参阅此链接以获取说明

我在 vSphere 中观察到与我的虚拟机完全相同的症状。一台没有运行任何东西的 4G 机器会报告缓存使用了 30M,但在“-/+ 缓冲区”行中“使用”超过 3G。

下面是来自 VMWare 的统计命令的示例输出。这显示了我的“使用”数量与 3G 的接近程度:

vmware-toolbox-cmd stat balloon
3264 MB
Run Code Online (Sandbox Code Playgroud)

就我而言,有点明显,我的气球驱动程序正在使用~3G

我不确定 Hyper-V 中用于获取气球统计数据的类似命令是什么,但我确定您会得到类似的结果

  • 恐怕我在这里没有真正看到解决方案。 (2认同)

归档时间:

查看次数:

50388 次

最近记录:

9 年,10 月 前