monit 认为内存使用情况如何?

monit 认为内存使用情况如何?

一旦可以让 monit 监视内存使用情况……

检查系统 foo
  如果内存使用率 > 95% 则发出警报

它是否使用可用的 RAM,或可用的 -/+ 缓冲区/缓存?(或其他什么?)

# 免费 -m
             已使用的、可用的、缓存的共享缓冲区总数
内存:998 851 146 0 114 70
-/+ 缓冲区/缓存:666 332
交换:2047 54 1993

答案1

这可以从 monit 的源码中获取https://github.com/arnaudsj/monit/tree/master/process

对于 Linux,该值计算为系统信息库来自 /proc/meminfo :

si->total_mem_kbyte = systeminfo.mem_kbyte_max - mem_free - buffers - cached;

换句话说,monit 使用内存使用量 MemTotal - MemFree - Buffers - Cached。

您的案例为 998 - 146 - 114 - 70 = 668

答案2

在最新的 Monit(即:5.25.x)上,该memory usage值考虑了 ZFS ARC 缓存 - 因此如果某些程序正在使用 ZFS,则使用的内存不会因可回收的 ARC 数据而膨胀。

当前内存使用量计算如下:

si->memory.usage.bytes = systeminfo.memory.size - zfsarcsize -
(uint64_t)(mem_free + buffers + cached + slabreclaimable) * 1024;

这里了解更多详细信息。

答案3

据我所知,它基于:

used memory - cached = 851 - 70 = 781

相关内容