来源:ChatGPT
def get_memory_info():
mem_info = {}
with open('/proc/meminfo', 'r') as f:
for line in f:
parts = line.split()
key = parts[0].strip(':')
value = int(parts[1])
mem_info[key] = value
return mem_info
memory_info = get_memory_info()
print(memory_info)
获取到的内存单位为 KB
-
MemTotal: 内存总量
-
MemFree: 立即可用内存
按照 top 的方式,可以计算以下值:
- total:总内存,即 MemTotal。
- free:空闲内存,即 MemFree。
- buff/cache:缓冲区和缓存的内存量,即 Buffers + Cached + SReclaimable。
- used:使用中的内存量,计算方式为 total - free - buff/cache。
获取到的内存项如下:
{
"MemTotal": 131528152,
"MemFree": 2334048,
"MemAvailable": 84194712,
"Buffers": 848,
"Cached": 87823820,
"SwapCached": 196904,
"Active": 63440748,
"Inactive": 53321684,
"Active(anon)": 23224244,
"Inactive(anon)": 18530936,
"Active(file)": 40216504,
"Inactive(file)": 34790748,
"Unevictable": 0,
"Mlocked": 0,
"SwapTotal": 4194300,
"SwapFree": 44424,
"Dirty": 17896,
"Writeback": 0,
"AnonPages": 28742440,
"Mapped": 13137744,
"Shmem": 12817036,
"Slab": 8840508,
"SReclaimable": 7479528,
"SUnreclaim": 1360980,
"KernelStack": 100336,
"PageTables": 654060,
"NFS_Unstable": 0,
"Bounce": 0,
"WritebackTmp": 0,
"CommitLimit": 69958376,
"Committed_AS": 165306412,
"VmallocTotal": 34359738367,
"VmallocUsed": 642856,
"VmallocChunk": 34291781628,
"HardwareCorrupted": 0,
"AnonHugePages": 7155712,
"CmaTotal": 0,
"CmaFree": 0,
"HugePages_Total": 0,
"HugePages_Free": 0,
"HugePages_Rsvd": 0,
"HugePages_Surp": 0,
"Hugepagesize": 2048,
"DirectMap4k": 408960,
"DirectMap2M": 10760192,
"DirectMap1G": 124780544
}