Mar*_*rki 4 linux memory-usage net-snmp
比较这个
#免费-m 缓存的已用空闲共享缓冲区总数 电话:72363 68035 4328 0 522 66294 -/+ 缓冲区/缓存:1218 71145 交换:12291 0 12291
和这个:
# snmpwalk -c public -v 2c localhost .1.3.6.1.4.1.2021.4 UCD-SNMP-MIB::memIndex.0 = 整数:0 UCD-SNMP-MIB::memErrorName.0 = STRING:交换 UCD-SNMP-MIB::memTotalSwap.0 = 整数:12586888 kB UCD-SNMP-MIB::memAvailSwap.0 = 整数:12586784 kB UCD-SNMP-MIB::memTotalReal.0 = 整数:74100516 kB UCD-SNMP-MIB::memAvailReal.0 = 整数:4429580 kB UCD-SNMP-MIB::memTotalFree.0 = 整数:17016364 kB UCD-SNMP-MIB::memMinimumSwap.0 = 整数:16000 kB UCD-SNMP-MIB::memBuffer.0 = 整数:534804 kB UCD-SNMP-MIB::memCached.0 = 整数:44238560 kB UCD-SNMP-MIB::memSwapError.0 = INTEGER: noError(0) UCD-SNMP-MIB::memSwapErrorMsg.0 = 字符串:
为什么免费为“缓存”显示 66294MB 而snmp 为“memCached”显示大约 44238MB?不应该是一样的吗?
查看 MIB,我看到“memCached”是用于缓存的“物理或虚拟”内存。(不要告诉我它会将磁盘缓存放入交换区)^^
目标是free
通过snmp找出真正的空闲物理内存(即此处为 71145,如 所示)。
更多信息
# cat /proc/meminfo 内存总量:74100516 kB MemFree:4422092 KB 缓冲区:542168 kB 缓存:44239460 kB 交换缓存:4 kB 活跃:16455504 kB 非活动:28707308 KB 交换总计:12586888 kB SwapFree:12586784 kB 脏:2536 KB 写回:0 kB AnonPages:381088 kB 映射:252132 kB 板块:23961488 KB SReclaimable:23648768 kB 太阳回收:312720 kB 页表:7812 kB NFS_不稳定:0 kB 弹跳:0 kB 写回时间:0 kB 提交限制:49637144 kB Committed_AS:4 kB Vmalloc 总计:34359738367 kB Vmalloc 使用:264124 kB VmallocChunk:34359474191 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 超大页面大小:2048 kB DirectMap4k:7936 KB DirectMap2M:75481088 KB
小智 5
从联机帮助页free(1)
:
缓存 页缓存和平板使用的内存(/proc/meminfo 中的缓存和平板)
free
包括缓存中的slab分配;UCD-SNMP-MIB 没有。如果添加slab分配,你会得到:
UCD-SNMP-MIB::memCached.0 + slab = 44238560 + 23961488
= 68200048 KB
Run Code Online (Sandbox Code Playgroud)
这更接近于free
报告的内容 (67885056 KB)。
至于获得真正的空闲物理内存,你可以用这个 MIB 做的最好的事情是粗略估计:
totFree = memAvailReal.0 + memBuffer.0 + memCached.0
= 4429580 + 534804 + 44238560
= 49202944 KB
Run Code Online (Sandbox Code Playgroud)
这仍然明显低于报告的 free + buffers/cache 的值free
。
请注意,HOST-RESOURCES-MIB 也好不到哪里去;请参阅我在 Stack Overflow 上对类似问题的回答。
较新的内核实际上为此提供了更好的指标。再次从free(1)
联机帮助页:
可用的
估计有多少内存可用于启动新应用程序,无需交换。与 cache 或 free 字段提供的数据不同,该字段考虑了页面缓存,并且由于项目正在使用,并非所有可回收的内存块都将被回收(/proc/meminfo 中的 MemAvailable,在内核 3.14 上可用,在内核 2.6.27+,否则与免费相同)
该值将低于 free + buffers/cache 的总数,并且可以更好地衡量可用内存,但我在您的中没有看到它,/proc/meminfo
也没有找到使用它的 MIB。
归档时间: |
|
查看次数: |
6113 次 |
最近记录: |