【问题标题】:understand sysstat sar memory output了解 sysstat sar 内存输出
【发布时间】:2022-01-27 15:52:36
【问题描述】:

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

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

但是,我不确定内存。

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

运行 htop 似乎也可以:14.9G/126G。这是否意味着在可用的 126 个 Gig 中只有 14.9 个 Gig 被应用使用?

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

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

【问题讨论】:

    标签: linux performance memory cpu sar


    【解决方案1】:

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

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

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

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

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

    总结

    • memused 98.5% 显示您的应用程序使用的内存 + 用于内核加速磁盘访问的缓存和缓冲区。
    • commit 13.6% 是内核向您的应用程序进程提交的实际内存。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-29
      • 1970-01-01
      • 1970-01-01
      • 2021-05-26
      • 2017-04-18
      • 2016-12-24
      • 2017-03-09
      • 2011-10-20
      相关资源
      最近更新 更多