我正在尝试为几台Linux服务器生成内存利用率报告。我想每10分钟收集服务器的%内存利用率,我认为sar可以帮助获取数据。之前我虽然列%memused将直接给出服务器的%内存利用率。但在阅读了几篇文章后,我怀疑这不是服务器的正确内存利用率,因此我想知道计算服务器内存利用率的最佳方法。
任何人都可以帮我计算服务器的%内存利用率,每10分钟使用sar报告或任何其他最佳来获得%内存利用率。
06:39:47 PM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit
06:39:48 PM 616552 3307708 84.29 245368 2174816 1196772 24.07
06:39:49 PM 616552 3307708 84.29 245368 2174816 1196772 24.07
系统上的实际可用内存是免费的+缓冲区+缓存。缓冲区和缓存用于提高系统性能,但在需要时将返回到空闲池。
如果你使用大量的共享内存(例如,通过大缓存进行处理),计算会略有不同,我使用free
xxx@xxx:$ free -h
total used free shared buff/cache available
Mem: 62G 4.4G 7.9G 11G 50G 45G
Swap: 2.0G 12M 1.9G
这种情况下的空闲内存是:
要使用SAR计算空闲内存值,请使用以下公式:
kbmemfree + kbbuffers + kbcached = actual free memory on the system
使用你的例子:
616552 + 245368 + 2174816 = 3036736KB
那是大约2.89GB的可用内存。
我相信你可以减去可用的总内存来获得利用率。