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

Linux sar命令详细使用指南

目录

一、安装与启用

✅ 1. 安装 sysstat

✅ 2. 启用数据收集

✅ 3.核心配置文件

3.1 cron 任务配置文件

3.2 主配置文件

3.3 I/O配置文件(可选)

二、基本语法

三、常用选项与实战示例

✅ 1. CPU 使用率(-u)

✅ 2. 内存使用(-r 或 -R)

✅ 3. 交换分区使用(-S)

✅ 4. I/O 读写(-b 或 -d)

✅ 5. 网络接口(-n)

✅ 6. 负载与进程(-q, -w)

✅ 7. 队列与等待(-v)

四、高级用法

✅ 1. 查看指定时间范围

✅ 2. 生成每日报告

✅ 3. 导出数据为 CSV

✅ 4. 一次性采集并保存

✅ 5. 可视化分析​(Gnuplot)

五、常见问题排查场景

六、Sar常用命令速查表


SarSystem Activity Reporter)是 Linux 系统性能监控的核心工具,属于 sysstat软件包,能够实时或回溯分析 CPU、内存、磁盘 I/O、网络等系统资源的使用情况。以下是其核心功能与使用技巧。

topvmstat 等实时工具不同,sar 的最大优势在于:

  • ✅ 历史数据记录:可查看过去某时间段的系统状态。
  • ✅ 全面性:覆盖几乎所有系统资源。
  • ✅ 自动化:默认通过 cron 定时采集数据。
  • ✅ 离线分析:支持导出和事后分析。

一、安装与启用

✅ 1. 安装 sysstat

# CentOS 7/8/9, RHEL
sudo yum install sysstat -y
# 或
sudo dnf install sysstat -y# Ubuntu/Debian
sudo apt install sysstat -y

✅ 2. 启用数据收集

安装后需确保 sysstat 服务已启用并运行:

# 启用并启动服务
sudo systemctl enable sysstat
sudo systemctl start sysstat

📌 数据存储路径
默认日志文件位于 /var/log/sa/ 目录下:

  • /var/log/sa/saXX:二进制格式的每日数据(XX 为日期,如 sa15 表示 15 号)
  • /var/log/sa/sarXX:文本格式的每日报告(可选生成)

✅ 3.核心配置文件

  • 3.1 cron 任务配置文件

/etc/cron.d/sysstat(或 /etc/cron.d/sysstat.cron

这是 sysstatcron 任务配置文件,定义了 sar 数据的采集频率。

常见内容(以 CentOS/RHEL 为例):

# Run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib64/sa/sa1 -S DISK
# Generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib64/sa/sa2 -A
  • sa1默认每 10 分钟运行一次,采集数据并写入 /var/log/sa/saXX(二进制格式)。
  • sa2:每天 23:53 运行,生成文本报告 /var/log/sa/sarXX

修改采集频率: 将 */10 改为 */5 表示每 5 分钟采集一次。


  • 3.2 主配置文件

/etc/sysconfig/sysstat 和/etc/default/sysstatsysstat主配置文件,控制服务行为。

示例(RHEL/CentOS):/etc/sysconfig/sysstat

sar 命令默认保留 28天 的日志数据

# How long to keep log files (in days).
HISTORY=30# Whether to compress log files after 7 days.
COMPRESSAFTER=7# Whether to create activity reports.
SADC_OPTIONS="-S DISK"

示例(Ubuntu/Debian):/etc/default/sysstat

# Enable data collection: true or false
ENABLED="true"# Keep log files for 7 days
HISTORY=7# Compress logs older than 7 days
COMPRESSAFTER=7

  • 3.3 I/O配置文件(可选)

/etc/sysconfig/sysstat.ioconf(可选),用于配置 I/O 统计的详细选项,如是否监控特定设备。

二、基本语法

sar [选项] [间隔] [次数]
  • 选项:指定监控的资源类型(如 -u CPU,-r 内存)。
  • 间隔:采样间隔(秒)。
  • 次数:采样次数。

示例:

sar -u 2 5  # 每 2 秒采样一次,共 5 次,查看 CPU 使用率

三、常用选项与实战示例

✅ 1. CPU 使用率(-u)

# 实时查看 CPU 使用
sar -u 2 5# 查看历史数据(今天)
sar -u# 查看指定日期(如 8 月 15 日)
sar -u -f /var/log/sa/sa15

输出字段:

  • %user:用户进程占用
  • %nice:低优先级进程
  • %system:内核进程
  • %iowait:I/O 等待
  • %steal:虚拟化环境下被抢占时间
  • %idle:空闲

🔍 重点关注 %iowait持续高于 10% 表示 I/O 瓶颈。


✅ 2. 内存使用(-r 或 -R)

# 查看内存使用(-r)
sar -r 2 5# 查看内存统计(-R)
sar -R

输出字段:

  • kbmemfree:空闲内存(KB)
  • kbmemused:已用内存
  • %memused:内存使用百分比
  • kbbuffers / kbcached:缓冲区和缓存

💡 注意:Linux 会用空闲内存做缓存,所以 kbmemfree 小 ≠ 内存不足,应关注 %memusedsar -S(Swap 使用)。


✅ 3. 交换分区使用(-S)

sar -S  # 查看 Swap 使用

输出:

  • kbswpfree:空闲 Swap
  • kbswpused:已用 Swap
  • %swpused:Swap 使用率

⚠️ Swap 使用率 > 0 表示物理内存不足,应优化内存或扩容。


✅ 4. I/O 读写(-b 或 -d)

# 查看 I/O 传输速率(-b)
sar -b 2 5# 查看设备 I/O 详情(-d)
sar -d 2 5

-b 输出:

  • tps:每秒传输次数(IOPS)
  • rtps:读操作
  • wtps:写操作
  • bread/s:每秒读取 KB
  • bwrtn/s:每秒写入 KB

-d 输出(需启用 --io-stats):

  • DEV:设备名
  • tps:每秒 I/O 次数
  • rkB/swkB/s:读写带宽
  • %util:设备利用率(>80% 表示瓶颈

🔧 配置:确保 /etc/cron.d/sysstatSADC_OPTIONS 包含 -D 以启用设备统计。


✅ 5. 网络接口(-n)

# 查看网络接口统计
sar -n DEV 2 5    # 接口流量
sar -n SOCK       # 套接字使用
sar -n TCP        # TCP 连接状态
sar -n ETCP       # TCP 错误

-n DEV 输出:

  • IFACE:接口名
  • rxpck/stxpck/s:每秒收发包数
  • rxkB/stxkB/s:每秒收发 KB
  • %ifutil:接口利用率(全双工可能 >100%)

📊 用途:排查网络拥塞、DDoS、连接泄漏。


✅ 6. 负载与进程(-q, -w)

# 查看系统负载
sar -q# 查看进程与线程创建
sar -w

-q 输出:

  • runq-sz:运行队列长度
  • %runocc:运行队列占用百分比
  • ldavg-1ldavg-5ldavg-15:1/5/15 分钟负载平均值

-w 输出:

  • proc/s:每秒创建进程数
  • cswch/s:每秒上下文切换次数

🔍 上下文切换过高可能导致 CPU 效率下降。


✅ 7. 队列与等待(-v)

sar -v

输出:

  • dentunusd:未使用目录项
  • file-nr:打开文件数
  • inode-nr:inode 使用
  • pty-nr:伪终端数

🛠 用途:排查 too many open files 错误。


四、高级用法

✅ 1. 查看指定时间范围

# 查看 sa15 文件中 10:00-11:00 的数据
sar -u -s 10:00:00 -e 11:00:00 -f /var/log/sa/sa15
  • -s:开始时间
  • -e:结束时间

✅ 2. 生成每日报告

sysstat 默认在 /etc/cron.d/sysstat 中配置了每日报告生成:

# 查看今天 sar 报告
sar -u
# 或
sar -f /var/log/sa/sa$(date +%d)

✅ 3. 导出数据为 CSV

# 导出为逗号分隔格式
sar -u -f /var/log/sa/sa15 | grep "^[0-2]" | awk '{print $1","$4","$5","$6}' > cpu.csv

📈 可导入 Excel 或 Grafana 进行可视化。


✅ 4. 一次性采集并保存

# 立即采集 10 次,每次 1 秒,保存到自定义文件
sar -o mydata 1 10
# 查看自定义数据
sar -f mydata -u

✅ 5. 可视化分析​(Gnuplot

​生成 CPU 使用率图表​​:

sar -u -f /var/log/sa/sa15 | awk '/^[0-9]/ {print $1,100-$NF}' > cpu_idle.dat
gnuplot -e "set terminal png;plot 'cpu_idle.dat' using 1:2 with lines" > cpu_usage.png

PS:Gnuplot 介绍​

Gnuplot 是一款开源的命令行交互式科学绘图工具

yum   -y  install  gnuplot   #CentOS7 安装

五、常见问题排查场景

问题使用命令
CPU 高sar -u -f /var/log/sa/saXX
内存不足sar -r -S -f /var/log/sa/saXX
磁盘 I/O 高sar -d -f /var/log/sa/saXX
网络慢sar -n DEV -f /var/log/sa/saXX
负载高sar -q -f /var/log/sa/saXX
频繁创建进程sar -w -f /var/log/sa/saXX

六、Sar常用命令速查表

目的命令
CPU 使用率sar -u
内存使用sar -r
Swap 使用sar -S
I/O 统计sar -b 或 sar -d
网络流量sar -n DEV
TCP 状态sar -n TCP
系统负载sar -q
上下文切换sar -w
查看历史数据sar -u -f /var/log/sa/sa15
指定时间范围sar -u -s 09:00 -e 10:00 -f /var/log/sa/sa15
http://www.lryc.cn/news/622662.html

相关文章:

  • 【CV 目标检测】Fast RCNN模型①——与R-CNN区别
  • 【洛谷刷题】用C语言和C++做一些入门题,练习洛谷IDE模式:分支机构(一)
  • VUE+SPRINGBOOT从0-1打造前后端-前后台系统-用户管理
  • 基于Python的课程作业管理系统 Python+Django+Vue.js
  • .net印刷线路板进销存PCB材料ERP财务软件库存贸易生产企业管理系统
  • 《Python 单例模式(Singleton)深度解析:从实现技巧到争议与最佳实践》
  • pytest tmpdir fixture介绍(tmpdir_factory)(自动在测试开始前创建一个临时目录,并在测试结束后删除该目录)
  • C#单元测试(xUnit + Moq + coverlet.collector)
  • STM32 软件I2C读写MPU6050
  • 云服务平台主流架构的相关知识体系剖析
  • 完整设计 之 智能合约系统:主题约定、代理协议和智能合约 (临时命名)----PromptPilot (助手)答问之2
  • 智能合约:区块链时代的“数字契约革命”
  • C++ STL-string类底层实现
  • 《WebPages 数据库:构建高效网络信息管理平台的关键技术解析》
  • RK3568 NPU RKNN(四):RKNN-ToolKit2性能和内存评估
  • Vue3从入门到精通:5.2 Vue3构建工具与性能优化深度解析
  • 微软Wasm学习-创建一个最简单的c#WebAssembly测试工程
  • PHP域名授权系统网站源码_授权管理工单系统_精美UI_附教程
  • 【C 学习】06-算法程序设计举例
  • [1Prompt1Story] 注意力机制增强 IPCA | 去噪神经网络 UNet | U型架构分步去噪
  • 智慧景区导览系统:基于WebGL的手绘地图导览设计与应用,DeepSeek大模型赋能精准游客引导服务
  • OBOO鸥柏丨75寸/86平板企业办公会议触控一体机核心国产化品牌招投标参数
  • eChart饼环pie中间显示总数_2个以上0值不挤掉
  • VS Code配置MinGW64编译非线性优化库NLopt
  • AI云电脑盒子技术分析——从“盒子”到“算力云边缘节点”的跃迁
  • JetPack系列教程(八):PDF库——让Android应用也能优雅“翻页”
  • 面试问题详解一:什么是 Qt?
  • 数字分类:机器学习经典案例解析
  • 电路方案分析(二十一)笔记本电脑散热风扇参考设计
  • Dify 从入门到精通(第 38/100 篇):Dify 的实时协作功能