Linux命令-sar(系统活动报告) 📅 2026/7/18 11:14:44 # Linux命令-sar系统活动报告快速参考安装 sar基本语法CPU 监控-u内存监控-rI/O 监控-b网络监控-n队列和负载监控-q查看历史数据自动化监控脚本故障排查总结快速参考sarSystem Activity Reporter是 sysstat 包中的系统性能监控工具。它可以收集、报告和保存系统活动信息包括 CPU 使用率、内存使用、I/O 活动、网络流量、队列长度等。sar既能实时查看系统状态也能查看历史数据是系统性能分析和故障排查的利器。核心优势历史数据回溯、多种资源监控、低开销、自动化采集。安装 sar# Debian/Ubuntusudoaptupdatesudoaptinstallsysstat# RHEL/CentOSsudoyuminstallsysstat# Arch Linuxsudopacman-Ssysstat# 启用数据采集sudosed-is/ENABLEDfalse/ENABLEDtrue//etc/default/sysstatsudosystemctlenablesysstatsudosystemctl start sysstat# 验证安装whichsar sar-V基本语法# 基本语法sar[选项][间隔][次数]# 实时监控 CPU每2秒采样共5次sar-u25# 查看今天的 CPU 历史数据sar-u# 查看指定日期的数据sar-u-f/var/log/sa/sa15# 查看每月15号的数据CPU 监控-u# 实时监控 CPU 使用率sar-u15# 输出示例# 02:30:01 PM CPU %user %nice %system %iowait %steal %idle# 02:30:02 PM all 15.00 0.00 3.00 1.00 0.00 81.00# 02:30:03 PM all 12.50 0.00 2.50 0.50 0.00 84.50# Average: all 13.75 0.00 2.75 0.75 0.00 82.75# 字段说明# %user 用户态 CPU 时间# %nice 低优先级用户态 CPU 时间# %system 内核态 CPU 时间# %iowait 等待 I/O 的 CPU 时间# %steal 被虚拟化偷走的 CPU 时间# %idle 空闲 CPU 时间# 查看每个 CPU 核心的使用率sar-PALL13# 查看历史 CPU 数据sar-u-f/var/log/sa/sa$(date%d)# 查看 CPU 平均负载sar-q15内存监控-r# 实时监控内存使用sar-r15# 输出示例# 02:30:01 PM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact# 02:30:02 PM 1024000 8192000 88.89 204800 3072000 4096000 44.44 4096000 3072000# 字段说明# kbmemfree 空闲内存KB# kbmemused 已用内存KB# %memused 内存使用率# kbbuffers 缓冲区大小KB# kbcached 缓存大小KB# kbcommit 提交的内存KB# %commit 内存提交率# 查看交换空间使用sar-W15# 输出显示每秒换入/换出的页面数I/O 监控-b# 监控 I/O 活动sar-b15# 输出示例# 02:30:01 PM tps rtps wtps bread/s bwrtn/s# 02:30:02 PM 10.00 5.00 5.00 512.00 256.00# 字段说明# tps 每秒传输次数# rtps 每秒读次数# wtps 每秒写次数# bread/s 每秒读块数# bwrtn/s 每秒写块数# 监控块设备sar-d15# 监控特定设备iostat-x15网络监控-n# 监控网络活动sar-nDEV15# 输出示例# 02:30:01 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s# 02:30:02 PM eth0 100.00 50.00 50.00 25.00 0.00 0.00 0.00# 字段说明# IFACE 网络接口# rxpck/s 每秒接收包数# txpck/s 每秒发送包数# rxkB/s 每秒接收 KB# txkB/s 每秒发送 KB# 监控网络错误sar-nEDEV15# 监控 NFSsar-nNFS15# 监控 SOCKETsar-nSOCK15队列和负载监控-q# 监控运行队列和负载sar-q15# 输出示例# 02:30:01 PM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked# 02:30:02 PM 2 128 1.50 1.20 0.80 0# 字段说明# runq-sz 运行队列长度等待运行的进程数# plist-sz 进程列表中的进程数# ldavg-1 1分钟平均负载# ldavg-5 5分钟平均负载# ldavg-15 15分钟平均负载# blocked 被阻塞的进程数查看历史数据# 查看今天的历史数据sar-u# CPUsar-r# 内存sar-b# I/Osar-nDEV# 网络sar-q# 队列# 查看指定日期的数据# 数据文件位于 /var/log/sa/ 目录ls/var/log/sa/# 输出sa01 sa02 ... sa31 sar01 sar02 ...# 查看每月15号的 CPU 数据sar-u-f/var/log/sa/sa15# 查看每月15号的内存数据sar-r-f/var/log/sa/sa15# 查看指定时间段的数据sar-u-s09:00:00-e17:00:00-f/var/log/sa/sa15# 生成报告sar-A-f/var/log/sa/sa15/tmp/report_$(date%m%d).txt自动化监控脚本#!/bin/bash# 每日性能摘要脚本DATE$(date%d)LOG_DIR/var/log/saREPORT_DIR/var/www/html/reportsmkdir-p$REPORT_DIR# CPU 摘要echo CPU 使用摘要 $REPORT_DIR/daily_$(date%Y%m%d).txtsar-u-f$LOG_DIR/sa$DATE$REPORT_DIR/daily_$(date%Y%m%d).txt# 内存摘要echo-e\n 内存使用摘要 $REPORT_DIR/daily_$(date%Y%m%d).txtsar-r-f$LOG_DIR/sa$DATE$REPORT_DIR/daily_$(date%Y%m%d).txt# I/O 摘要echo-e\n I/O 摘要 $REPORT_DIR/daily_$(date%Y%m%d).txtsar-b-f$LOG_DIR/sa$DATE$REPORT_DIR/daily_$(date%Y%m%d).txt# 网络摘要echo-e\n 网络摘要 $REPORT_DIR/daily_$(date%Y%m%d).txtsar-nDEV-f$LOG_DIR/sa$DATE$REPORT_DIR/daily_$(date%Y%m%d).txtecho报告已生成:$REPORT_DIR/daily_$(date%Y%m%d).txt故障排查# 问题1sar 报错 Cannot open /var/log/sa/saXX# 原因sysstat 服务未运行数据未采集# 解决启动并启用 sysstatsudosystemctlenablesysstatsudosystemctl start sysstat# 问题2sar 输出为空# 原因当天还没有采集到数据# 解决等待几分钟后再试或者实时采样sar-u15# 问题3sar 数据只保留7天# 解决修改 /etc/sysstat/config# HISTORY30 # 保留30天总结核心价值sar是系统性能监控的核心工具支持实时监控和历史数据回溯。常用组合sar -u 1 5实时 CPU 监控sar -r 1 5实时内存监控sar -b 1 5实时 I/O 监控sar -n DEV 1 5实时网络监控sar -q 1 5实时队列监控sar -u -f /var/log/sa/saXX查看历史数据最佳实践确保 sysstat 服务正在运行定期检查历史数据发现性能趋势使用自动化脚本生成日常性能报告