0

我正在尝试为几个 Linux 服务器生成内存利用率报告。我想每 10 分钟收集一次服务器的内存利用率百分比,我认为 sar 可以帮助获取该数据。早些时候,我认为 %memused 列将直接给出服务器的 % 内存利用率。但是在阅读了几篇文章后,我怀疑这不是服务器的正确内存利用率,因此我想知道计算服务器内存利用率的最佳方法。

任何人都可以帮助我使用 sar 报告或任何其他最佳方法计算服务器每 10 分钟的内存利用率百分比,以获得内存利用率百分比。

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
4

2 回答 2

1

要使用 SAR 计算可用内存值,请使用以下公式:

kbmemfree + kbbuffers + kbcached = actual free memory on the system

使用您的示例:

616552 + 245368 + 2174816 = 3036736KB

这大约是 2.89GB 的可用内存。

我相信你可以从可用的总内存中减去以获得利用率。

于 2019-05-06T15:32:12.820 回答
0

系统上实际的空闲内存是free+buffers+cached。缓冲区和缓存用于提高系统性能,但会在需要时返回到空闲池。

如果您使用大量共享内存(例如映射大缓存),计算会略有不同,我会使用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

在这种情况下,可用内存为:

  • (免费 + buff/缓存)- 共享。
  • 7.9 + 50 - 11
于 2019-03-27T16:41:30.320 回答