3

我正在为未来的更多流量做准备,我想确保服务器可以处理它。

运行 sar -q,“3.5”的负载在 32 CPU 架构上似乎并不多:

CPU SAR 输出

但是,我不确定内存。

运行 sar -r 显示 %memused 为 98.5%,%commit 仅为 13.60:

内存 SAR 输出

运行 htop 似乎也可以:14.9G/126G。这是否意味着在可用的 126 个 Gig 中,应用程序仅使用了 14.9 个 Gig?

在此处输入图像描述

我对 sar -r 输出更感兴趣。

%memused 看起来98.5%而 %commit 只有13.6% 我想知道这是什么意思。

4

1 回答 1

4

你看,当内存不被使用时,linux会尝试缓存在内存中读取或写入的磁盘块。这是您在 kbcached 和 kbbuffers 列中看到的 sar 报告的内容。当一个新的请求进来并需要内存时,它会从这个缓存或空闲列表中获得。

kbmemused = 正在运行的进程消耗的内存 + 缓存 + 缓冲区

要找出应用程序使用的实际内存,您应该从 kbmemused 中减去 kbbuffers 和 kbcached。

监控 %commit 更有意义,它是当前正在运行的进程使用的实际内存。在您的情况下,此数字与 htop 的输出大致匹配。

检查实际可用内存的另一种方法是使用 command free -m。免费报告与 sar 相同的统计数据。

总结

  • memused 98.5%显示您的应用程序使用的内存 + 用于内核以加速磁盘访问的缓存和缓冲区。
  • commit 13.6%是内核向您的应用程序进程提交的实际内存。
于 2022-01-31T08:02:58.160 回答