AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 500166
Accepted
Adam Matan
Adam Matan
Asked: 2013-04-18 04:45:29 +0800 CST2013-04-18 04:45:29 +0800 CST 2013-04-18 04:45:29 +0800 CST

sar:空闲内存统计(包括buffers,cache)

  • 772

这些free命令以两种形式提供可用内存量:完全可用内存(Mem线)和用于缓存和缓冲区的一次性内存(-/+ buffers/cache线):

-bash-3.2$ free -m
             total       used       free     shared    buffers     cached
Mem:         16057      15173        884          0         17       2520
-/+ buffers/cache:      12635       3422
Swap:        12287       4937       7350

在此示例中,有 884 MB 的可用内存(不包括缓冲区和缓存)和 3422 MB 的可用内存(包括缓冲区和缓存)。

如何在 中获得第二次测量(可用内存,包括缓冲区和高速缓存)sar?

memory
  • 1 1 个回答
  • 8103 Views

1 个回答

  • Voted
  1. Best Answer
    Derek Pressnall
    2013-04-18T05:19:50+08:002013-04-18T05:19:50+08:00

    的-r标志sar将为您提供 kbmfree、kbmemused、kbbuffers 和 kbcached。不幸的是,它不会像free命令那样像 -/+ 缓冲区/缓存列那样对它们进行总计,因此您将不得不通过 awk 或 perl 脚本将其通过管道传输来对它们进行总计。尝试这个:

    sar -r |\
    awk '
    {
        if (NR > 3 && $3 != "kbmemfree" && $3 != "") {
            if ($1 != "Average:") {
                kbmemfree = $3
                kbmemused = $4
                kbbuffers = $6
                kbcached = $7
            }
            else {
                kbmemfree = $2
                kbmemused = $3
                kbbuffers = $5
                kbcached = $6
            }
    
            kbfree_plus_bufcache = kbmemfree + kbbuffers + kbcached
            kbused_minus_bufcache = kbmemused - kbbuffers - kbcached
    
            printf("%s %15d %15d\n", $0, kbfree_plus_bufcache, kbused_minus_bufcache)
        } else if ($3 == "kbmemfree") {
            printf("%s %15s %15s\n", $0, "kbfree+bufcache", "kbused-bufcache")
        } else {
            printf("%s\n", $0)
        }
    }'
    
    • 10

相关问题

  • 不会将整个 XML 文件读入内存的命令行 XML 验证器?

  • 在 Windows Server 2008 中,为什么我的 BIOS 和计算机属性显示我安装的所有 RAM,但任务管理器没有?

  • 如何使用 vmstat 获取 % 内存使用率?

  • 规格相同但引脚不匹配的 DDR2 模块?

  • ECC RAM、后台清理和 IOMMU BIOS 设置

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve