sar命令详解

sar(System Activity Reporter)是Linux系统中用于收集、报告和分析系统活动信息的工具,属于sysstat软件包的一部分。它能够监控CPU、内存、磁盘I/O、网络、进程等系统资源的使用情况,常用于性能分析和故障排查。


安装与配置

  1. 安装sysstat

    # Debian/Ubuntu
    sudo apt-get install sysstat
    
    # CentOS/RHEL
    sudo yum install sysstat
    
    # Fedora
    sudo dnf install sysstat
    
  2. 启用数据收集

    • 编辑 /etc/default/sysstat,设置 ENABLED="true"
    • 重启服务:
      sudo systemctl restart sysstat
      

    sar 默认每10分钟收集一次数据,日志存储在 /var/log/sysstat//var/log/sa/(如 sa21 表示每月21日的日志)。


常用命令选项

选项 说明
-u CPU使用率(默认显示)
-r 内存和交换空间统计
-b 磁盘I/O(读写速率、传输量)
-n DEV 网络设备流量(收发包、带宽)
-q 系统负载和进程队列长度
-W 页面交换(Swap)统计
-A 显示所有报告
-f <文件> 读取指定历史数据文件(如 sar -f /var/log/sa/sa10
-s HH:MM 指定开始时间
-e HH:MM 指定结束时间

实用示例

  1. 实时CPU使用率(每2秒采样,共5次):
    sar -u 2 5
    

  1. 内存使用统计
    sar -r 1 3  # 每秒采样,共3次
    

  1. 磁盘I/O监控
    sar -b 1 5  # 每秒采样,共5次
    

  1. 网络接口流量
    sar -n DEV 1 3  # 查看所有网络接口
    

  1. 查看历史数据(如查看10号的日志):
    sar -u -f /var/log/sa/sa10
    

  1. 生成综合报告
    sar -A > system_report.txt  # 包含所有统计信息
    

输出字段解释

  • CPU利用率(-u

    • %user:用户级程序占用的CPU百分比。
    • %system:内核程序占用的CPU百分比。
    • %idle:空闲CPU百分比。
  • 内存(-r

    • kbmemfree:空闲内存量(KB)。
    • kbmemused:已使用内存量(KB)。
    • %memused:内存使用率。
  • 磁盘I/O(-b

    • tps:每秒传输请求次数。
    • rtps:每秒读请求次数。
    • wtps:每秒写请求次数。

常见问题

  1. 无历史数据

    • 确认 sysstat 服务是否正常运行:systemctl status sysstat
    • 检查 /etc/cron.d/sysstat 是否启用数据收集。
  2. 权限不足

    • 使用 sudo 执行命令,或确保用户有权限读取 /var/log/sa/ 下的文件。

进阶用法

  • 导出为CSV

    sadf -d <sar文件> -- -u > cpu_report.csv
    
  • 结合时间过滤

    sar -u -s 10:00:00 -e 12:00:00 -f /var/log/sa/sa10
    
  • 监控特定进程

    sar -P ALL  # 查看每个CPU核心的统计
    

sar 是强大的系统监控工具,通过灵活的参数组合,可以帮助管理员全面掌握系统运行状态。结合 watchgrep 或脚本处理,可实现自动化监控和告警。

posted @ 2025-05-23 14:24  玛卡巴卡糖  阅读(465)  评论(0)    收藏  举报