使用 ramdisk (initrd) 通过 /proc/meminfo 测量可用 ram

使用 ramdisk (initrd) 通过 /proc/meminfo 测量可用 ram

我通过 PXE 启动磁盘映像,它是initrdramdisk 上的完整系统。我想测量系统的实际可用内存(不包括缓冲区和文件系统缓存)。有人告诉我,这是通过添加 中的 MemFree、Buffers 和 Cached 值来完成的/proc/meminfo。对于常规系统,这可以给出准确的结果。

然而,使用我的 ramdisk 设置,它不会给出准确的结果。我假设 ramdisk 使用的内存已添加到“Cached”值中:

[root@node1 ~]# cat /proc/meminfo
MemTotal:        8173700 kB
MemFree:         7443696 kB
Buffers:               0 kB
Cached:           650236 kB
SwapCached:            0 kB
MemCommitted:          0 kB
VirtualSwap:           0 kB
Active:            27156 kB
Inactive:         632204 kB
Active(anon):       4636 kB
Inactive(anon):     4616 kB
Active(file):      22520 kB
Inactive(file):   627588 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:          9156 kB
Mapped:             8712 kB
Shmem:               128 kB
Slab:              38548 kB
SReclaimable:      29420 kB
SUnreclaim:         9128 kB
KernelStack:         536 kB
PageTables:         1268 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     4086848 kB
Committed_AS:      51216 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      288032 kB
VmallocChunk:   34359448036 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:       10240 kB 
DirectMap2M:     8378368 kB

现在不幸的是,这给了我想要计算的两个指标的错误值:%MemUsed 和 AmountMemFreeActual。对于 Ramdisk,“缓存”值至少部分是不可回收的,因此不能用于计算实际的可用内存。

为了正确计算两者,我需要知道 ramdisk 的内存使用情况,并且我认为我不能简单地采用“缓存”值,因为这可能还包括其他缓存文件系统数据。

最好我想将 ramdisk 内存使用情况从这两个指标中剔除,因为据我所知它是不可回收的内存。有什么想法去哪里看吗?

编辑:“免费”(@answer1)确实提供了相同的错误值。 “免费”输出中的“免费”值无论如何都会产生误导。 “空闲”内存通常是“空闲”+“缓冲区”+“缓存”。我的问题是 ramdisk 作为不可回收内存(与通常缓存的文件系统数据不同)无法回收。

答案1

是否有原因导致您无法使用该free命令来确定可用 RAM 量?

# free output in MBs
$ free -m
             total       used       free     shared    buffers     cached
Mem:          7800       6724       1075          0        397       1952
-/+ buffers/cache:       4374       3425
Swap:         5823         27       5796

上图显示,如果没有缓冲区和高速缓存,大约还有 3.4GB 可用空间。

相关内容