当前位置: 首页 > news >正文

linux命令-sar-5

sar

sar(System Activity Reporter)是 Linux 系统中全面的性能监控工具,主要用于观察 CPU、内存、磁盘 I/O、网络等服务负载,支持即时查看与累计统计两种模式,其数据存储在 /var/log/sa/saDD(DD 为日期)的二进制文件中,需通过 sar 或 sadf 命令查看。

配置说明

  • 安装

    yum -y install sysstat
    
  • /etc/sysconfig/sysstat 配置文件

    ~]# vim /etc/sysconfig/sysstat
    HISTORY=28
    # 功能:控制 sar 系统活动日志的保留天数。COMPRESSAFTER=31
    # 功能: 自动压缩旧日志文件以节省空间。
    # 机制: 当日志文件超过 31天 未被修改时,触发压缩(由 sa1 或 sadc 调用)。SADC_OPTIONS="-S DISK"
    # 功能:调整 sadc(系统活动数据收集器)的监控范围。ZIP="bzip2"
    # 功能:指定日志压缩工具。
    # bzip2:高压缩率(速度较慢),生成 .bz2 文件。
    # gzip:速度更快(压缩率稍低),生成 .gz 文件。
    # xz:极高压缩率(资源消耗大),适合长期归档。
    
  • /etc/cron.d/sysstat 计划任务

    • */10 * * * * root /usr/lib64/sa/sa1 1 1
      • 作用: 每10分钟执行一次sa1命令,实时采集并存储系统性能数据
      • 详细说明: sa1是sadc(系统活动数据收集器)的前端脚本,负责将CPU、内存、磁盘I/O、网络等指标写入二进制文件。
      • 数据存储路径: /var/log/sa/saDD(DD为当前日期,如sa30表示当月30日的数据)
      • 意义:为sar等工具提供原始数据,用于短期性能分析。
    • 53 23 * * * root /usr/lib64/sa/sa2 -A
      • 作用: 每天23:53运行sa2命令,生成当日系统性能摘要报告。
      • 详细说明: sa2是sar的前端脚本,调用sar -A生成涵盖CPU、内存、磁盘、网络等全维度统计的文本报告。
      • 报告存储路径: /var/log/sa/sarDD(如sar30)
      • -A参数等价于-bBdFHqRuvwWy -I SUM -n ALL -P ALL,覆盖绝大多数监控指标
      • 意义: 提供长期性能趋势分析的基础数据,便于运维人员定期审查。
  • 关键目录与文件说明

    路径用途
    /var/log/sa/saDD二进制原始数据文件,需用sar -fsadf解析
    /var/log/sa/sarDD文本格式的每日摘要报告,可直接用文本工具查看
    /usr/bin/sar收集、报告或存储信息(CPU、内存、磁盘、中断、网卡、TTY、内核表等等);
    /usr/lib/sa/sa1收记并存储二进制数据到每天的文件,这是设计来给cron执行一个sadc的前台程序
    /usr/lib/sa/sa2生成总结报表,调用sar

参数说明

使用格式:sar [options] [-A] [-o file] t [n]

其中t为采样间隔,n为采样次数,默认值是1;-o file表示将命令结果以二进制格式存放在文件中,file是文件名;options为命令行选项,sar常用的选项有以下:

  • 直接使用

    • 命令: sar 2 3 说明:每2秒采样一次,连续采样3次,查看CPU的整体使用情况

      ~]# sar 2  2   # 与 sar -u 2 2 一样
      Linux 3.10.0-957.el7.x86_64 (localhost.localdomain) 	2025年10月30日 	_x86_64_	(4 CPU)
      22时15分33秒     CPU     %user     %nice   %system   %iowait   %steal %idle
      22时15分35秒     all      0.00      0.00      0.00      0.00  0.00    100.00
      22时15分37秒     all      0.00      0.00      0.13      0.00  0.00    99.87
      平均时间:        all      0.00      0.00      0.06      0.00   0.00   99.94
      
    • 参数说明

      名称说明
      %userCPU处在用户模式下的时间百分比;如iostatpidstat都有
      %niceCPU处在带NICE值的用户模式下的时间百分比;
      %systemCPU处在系统模式下的时间百分比;
      %iowaitCPU等待输入输出完成时间的百分比;
      %steal管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比;
      %idleCPU空闲时间百分比;
      • 在所有的显示中,我们应主要注意%iowait%idle%iowait的值过高,表示硬盘存在I/O瓶颈,%idle值高,表示CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU。

CPU

  • 参数

    参数监控资源类别关键监控指标示例命令
    -uCPU 整体利用率%user(用户态)、%system(内核态)、%iowait(I/O等待)、%idle(空闲率)sar -u 1 5
    -P ALL每颗 CPU 核心状态各核心的负载分布、%steal(虚拟化等待)sar -P ALL 2 3
    -q系统负载与队列runq-sz(运行队列)、ldavg-1(1分钟平均负载)、plist-sz(进程总数)sar -q 2 5
  • 命令:sar -P ALL 2 3 说明:每2秒采样一次,连续采样3次,查看CPU每个核心的使用情况

    ~]# sar -P ALL 1 2
    [root@localhost cron.d]# sar -P ALL  2 1
    Linux 3.10.0-957.el7.x86_64 (localhost.localdomain) 	2025年10月30日 	_x86_64_	(4 CPU)22时21分15秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
    22时21分17秒     all      0.00      0.00      0.25      0.00      0.00     99.75
    22时21分17秒       0      0.00      0.00      0.50      0.00      0.00     99.50
    22时21分17秒       1      0.00      0.00      0.00      0.00      0.00    100.00
    22时21分17秒       2      0.00      0.00      0.00      0.00      0.00    100.00
    22时21分17秒       3      0.00      0.00      0.50      0.00      0.00     99.50平均时间:     CPU     %user     %nice   %system   %iowait    %steal     %idle
    平均时间:     all      0.00      0.00      0.25      0.00      0.00     99.75
    平均时间:       0      0.00      0.00      0.50      0.00      0.00     99.50
    平均时间:       1      0.00      0.00      0.00      0.00      0.00    100.00
    平均时间:       2      0.00      0.00      0.00      0.00      0.00    100.00
    平均时间:       3      0.00      0.00      0.50      0.00      0.00     99.50
    
  • 命令:sar -q 2 3 说明:每2秒采样一次,连续采样3次,查看进程队列长度和平均负载状态

    [root@localhost cron.d]# sar -q  2 1
    Linux 3.10.0-957.el7.x86_64 (localhost.localdomain) 	2025年10月30日 	_x86_64_	(4 CPU)22时21分41秒   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
    22时21分43秒      0       139      0.00      0.01      0.05         0
    平均时间:         0       139      0.00      0.01      0.05         0
    
    参数说明
    runq-sz运行队列的长度(等待运行的进程数)
    plist-sz进程列表中进程(processes)和线程(threads)的数量
    ldavg-1最后1分钟的系统平均负载
    ldavg-5过去5分钟的系统平均负载
    ldavg-15过去15分钟的系统平均负载
    blocked当前阻塞的进程数量,在等待IO完成

磁盘io

  • 参数

    参数监控资源类别关键监控指标示例命令
    -b整体 I/O 吞吐tps(I/O请求数)、rtps(读请求)、wtps(写请求)sar -b 1 6
    -d块设备详情await(I/O平均耗时)、avgrq-sz(请求大小)、%util(设备利用率)sar -d -p 2 4
  • 命令:sar -d 1 2 说明:每1秒采样一次,连续采样2次,查看块设备使用情况

    [root@localhost cron.d]# sar -d  1 2 
    Linux 3.10.0-957.el7.x86_64 (localhost.localdomain) 	2025年10月30日 	_x86_64_	(4 CPU)22时24分48秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
    22时24分49秒   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    22时24分49秒    dev8-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    22时24分49秒  dev253-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    22时24分49秒  dev253-1      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
  • 命令:sar -d -p 1 2 说明:每1秒采样一次,连续采样2次,查看块设备使用情况

    [root@localhost cron.d]# sar -d  -p 1 2 
    Linux 3.10.0-957.el7.x86_64 (localhost.localdomain) 	2025年10月30日 	_x86_64_	(4 CPU)
    22时25分18秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
    ....
    22时25分19秒 centos-root      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    22时25分19秒 centos-swap      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    ....
    平均时间:       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
    ....
    平均时间: centos-root      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    平均时间: centos-swap      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00~]# lsblk      # -p 参数是直接显示设备的名称,而不是 device号
    NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    sda               8:0    0   200G  0 disk 
    ├─sda1            8:1    0     1G  0 part /boot
    └─sda2            8:2    0   199G  0 part ├─centos-root 253:0    0 191.1G  0 lvm  /└─centos-swap 253:1    0   7.9G  0 lvm  [SWAP]
    
    参数说明
    DEV磁盘设备
    tps每秒从物理磁盘I/O的次数,多个逻辑请求会被合并为一个I/O磁盘请求,一次传输的大小是不确定的;
    rd_sec/s每秒读扇区的次数
    wr_sec/s每秒写扇区的次数
    avgrq-sz平均每次设备I/O操作的数据大小(扇区)
    avgqu-sz磁盘请求队列的平均长度
    await从请求磁盘操作到系统完成处理,每次请求的平均消耗时间,包括请求队列等待时间,单位是毫秒(1秒=1000毫秒);
    svctm系统处理每次请求的平均时间,不包括在请求队列中消耗的时间
    %utilI/O请求占CPU的百分比,比率越大,说明越饱

网络

  • 参数

    参数监控资源类别关键监控指标示例命令
    -n DEV网络接口流量rxpck/s(收包量)、txpck/s(发包量)、rxkB/s(接收带宽)sar -n DEV 5 3
    -n TCPTCP 连接状态active/s(新建连接)、passive/s(被动连接)、retrans/s(重传率)sar -n TCP 1 0
  • 命令:sar -n ALL 2 3

    说明:-n选项在sar命令中被用来生成网络使用情况的统计报告;使用语法如下为:

    • -n选项使用6个不同的开关:DEV | EDEV | NFS | NFSD | SOCK | ALL

      参数说明
      DEV显示网络接口信息
      EDEV显示关于网络错误的统计数据
      NFS统计活动的NFS客户端的信息
      NFSD统计NFS服务器的信息
      SOCK显示套接字信息
      ALL显示所有5个开关。它们可以单独或者一起使用。
    • 示例-2

      ~]# sar -n ALL 1 2
      Linux 3.10.0-957.el7.x86_64 (localhost.localdomain) 	2025年10月30日 	_x86_64_	(4 CPU)11时16分58秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
      11时16分59秒      eth0      2.00      1.00      0.12      0.17      0.00      0.00      0.00
      11时16分59秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.0011时16分58秒     IFACE   rxerr/s   txerr/s    coll/s  rxdrop/s  txdrop/s  txcarr/s  rxfram/s  rxfifo/s  txfifo/s
      11时16分59秒      eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
      11时16分59秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
      
      参数说明
      IFACELAN接口网络设备的名称
      rxpck/s每秒钟接收的数据包
      txpck/s每秒钟发送的数据包
      rxkB/s每秒钟接收的字节数
      txkB/s每秒钟发送的字节数
      rxcmp/s每秒钟接收的压缩数据包
      txcmp/s每秒钟发送的压缩数据包
      rxmcst/s每秒钟接收的多播数据包
    • 示例2:sar -n EDEV 2 3

       ~]# sar -n EDEV 1 2
      Linux 3.10.0-957.el7.x86_64 (localhost.localdomain) 	2025年10月30日 	_x86_64_	(4 CPU)平均时间:     IFACE   rxerr/s   txerr/s    coll/s  rxdrop/s  txdrop/s  txcarr/s  rxfram/s  rxfifo/s  txfifo/s
      平均时间:      eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
      平均时间:        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
      
      参数说明
      IFACELAN接口网络设备的名称
      rxerr/s每秒钟接收的坏数据包
      txerr/s每秒钟发送的坏数据包
      coll/s每秒冲突数
      rxdrop/s因为缓冲充满,每秒钟丢弃的已接收数据包数
      txdrop/s因为缓冲充满,每秒钟丢弃的已发送数据包数
      txcarr/s发送数据包时,每秒载波错误数
      rxfram/s每秒接收数据包的帧对齐错误数
      rxfifo/s接收的数据包每秒FIFO过速的错误数
      txfifo/s发送的数据包每秒FIFO过速的错误数
    • 示例3:sar -n SOCK 2 3

      ~]# sar -n SOCK 1 2
      Linux 3.10.0-957.el7.x86_64 (localhost.localdomain) 	2025年10月30日 	_x86_64_	(4 CPU)14时29分57秒    totsck    tcpsck    udpsck    rawsck   ip-frag    tcp-tw
      14时29分58秒       200         3         1         0         0         0
      14时29分59秒       200         3         1         0         0         0
      平均时间:       200         3         1         0         0         0
      
      参数说明
      totsck使用的套接字总数量
      tcpsck使用的TCP套接字数量
      udpsck使用的UDP套接字数量
      rawsck使用的RAW套接字数量
      ip-frag当前的IP分片的数目
      tcp-twTCP套接字中处于TIME-WAIT状态的连接数量

内存

  • 参数

    参数监控资源类别关键监控指标示例命令
    -r内存及交换空间kbmemfree(空闲内存)、%memused(内存使用率)、kbcached(缓存大小)sar -r 5 4
    -S交换分区活动kbswpfree(空闲交换区)、%swpused(交换区使用率)sar -S 3 2
    -B内存分页pgpgin/s(换入页)、pgpgout/s(换出页)、%vmeff(页面置换效率)sar -B 10 2
  • 命令:sar -r 2 3 说明:每2秒采样一次,连续采样3次,查看内存的使用情况

     ~]# sar  -r 2 3
    Linux 3.10.0-957.el7.x86_64 (localhost.localdomain) 	2025年10月30日 	_x86_64_	(4 CPU)
    09时42分08秒 kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
    09时42分10秒  15840116    426696      2.62      2108    154032    240132      0.98     97200     98524        12
    09时42分12秒  15840116    426696      2.62      2108    154032    240132      0.98     97200     98524        12
    09时42分14秒  15840620    426192      2.62      2108    154000    237244      0.97     96344     98516        12
    平均时间:  15840284    426528      2.62      2108    154021    239169      0.98     96915     98521        12
    
    参数说明
    kbmemfree这个值和free命令中的free值基本一致,所以它不包括buffer和cache的空间
    kbmemused这个值和free命令中的used值基本一致,所以它包括buffercache的空间
    %memused这个值是kbmemused和内存总量(不包括swap)的一个百分比;
    kbbuffers类似free命令中的buffer;
    kbcached类似free命令中的cache
    kbcommit保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM + swap)
    %commit这个值是kbcommit与内存总量(包括swap)的一个百分比;
    kbactive活动内存量 (以千字节计算) (最近使用的内存, 通常不会被收回, 除非绝对必要);
    kbinact不活动内存量 (以千字节计算)(最近使用的内存更有资格被用于其他目的);
    kbdirty以KB为单位的内存量等待写入磁盘;
  • 命令:sar -B 2 3 说明:每2秒采样一次,连续采样3次,查看内存分页的使用情况

     ~]# sar -B 1 2 
    Linux 3.10.0-957.el7.x86_64 (localhost.localdomain) 	2025年10月30日 	_x86_64_	(4 CPU)09时58分08秒  pgpgin/s pgpgout/s   fault/s  majflt/s  pgfree/s pgscank/s pgscand/s pgsteal/s    %vmeff
    09时58分09秒      0.00      0.00     65.00      0.00     36.00      0.00      0.00      0.00      0.00
    09时58分10秒      0.00      0.00     26.00      0.00     23.00      0.00      0.00      0.00      0.00
    平均时间:      0.00      0.00     45.50      0.00     29.50      0.00      0.00      0.00      0.00
    
    参数说明
    pgpgin/s表示每秒从磁盘或SWAP置换到内存的字节数(KB);
    pgpgout/s表示每秒从内存置换到磁盘或SWAP的字节数(KB);
    fault/s每秒钟系统产生的缺页数,即主缺页与次缺页之和(major + minor);
    majflt/s每秒钟产生的主缺页数;
    pgfree/s每秒被放入空闲队列中的页个数;
    pgscank/s每秒被kswapd扫描的页个数;
    pgscand/s每秒直接被扫描的页个数;
    pgsteal/s每秒钟从cache中被清除来满足内存需要的页个数;
    %vmeff每秒清除的页(pgsteal)占总扫描页(pgscank+pgscand)的百分比;

内核

  • 参数

    参数监控资源类别关键监控指标示例命令
    -w进程上下文切换cswch/s(自愿切换)、nvcswch/s(非自愿切换)sar -w 3 2
    -v内核表状态dentunusd(未用目录项)、file-nr(文件句柄数)、inode-nr(索引节点数)sar -v 10 2
    -R内存分配统计frmpg/s(空闲页释放)、bufgrow/s(缓冲区增长)sar -R 5 3

性能分析小技巧

  1. 技巧一:要判断系统瓶颈问题,有时需几个sar命令选项结合起来:
    • 怀疑CPU存在瓶颈,可用sar -u和sar -q等来查看;
    • 怀疑内存存在瓶颈,可用sar -B、sar -r和sar -W等来查看;
    • 怀疑I/O存在瓶颈,可用sar -b、sar -u和sar -d等来查看;
  2. 技巧二:巧用sadf命令,转换成各种可读形式高的文件格式,进行线下分析。sar -o会将输出保存为二进制文件,我们可以通过sadf -d将二进制文件进行转换。
http://www.dtcms.com/a/550543.html

相关文章:

  • 做鞋的垂直网站淄博网站建设 百度知道
  • 好站站网站建设推广网站集约化建设的通知
  • 什么网站做的号建设英语网站
  • verilog中数据跨时钟处理方法
  • 国内快速建站西安企业模板建站
  • 一键建网站大学生创意产品设计方案
  • 所有权与解构(Destructuring)的关系:Rust 中数据拆分的安全范式
  • 网站整体建设方案论文室内设计这个行业怎么样
  • MetaTwo靶机实战:SQL注入到权限提升全解析
  • 盐田高端网站建设wordpress aws
  • Linux C/C++ 学习日记(41):dpdk(四):基于dpdk编写的第一个程序
  • 北京网站软件制作北京架设网站
  • 新衡阳网站网站建设业务好跑吗
  • 即墨医院网站制作公司选择邯郸网站制作
  • 企业网站开发与设计论文石家庄最新轨迹
  • 西宁网站建设报价网站怎么申请
  • Rust专项——读多写少的共享状态:Arc<RwLock<T>> 并发设计与基准
  • 临河网站建设营销推广策划方案范文
  • 自己做一网站_多做宣传.网站建设公司能力要求
  • PyQt5 饼图全面指南:从数据比例到可视化洞察
  • 多云环境下的大规模资产配置统一治理实践
  • 【算法】day15 动态规划
  • 江阴公司网站建设建设官方网站查询
  • C#.NET Cronos 实战:优雅解析与执行 Cron 表达式
  • 【面试系列】好未来:电商策略运营面试题集
  • 大连零基础网站建设教学公司ppp模式在网站建设的
  • 网站百度收录怎么做展示营销类网站
  • 【Tauri2】050——加载html和rust爬虫
  • 网站制做工具郑州网站设计有哪些
  • 山东网站建设比较好wordpress安装提示500错误