0

0

Linux sar 工具的使用场景

舞夢輝影

舞夢輝影

发布时间:2026-01-23 20:10:02

|

320人浏览过

|

来源于php中文网

原创

查CPU瓶颈时需结合%sar -u中%iowait与%idle:%idle高但响应卡顿,若%iowait>5%则立即查磁盘;sar -r比free更能反映内存真实压力,kbavail比kbmemfree更可靠;sar -d与sar -b需联用分析I/O,await>20ms且%util>90%表明磁盘饱和;sar -n DEV是唯一可回溯历史网络异常的命令,排查前须确认sysstat已启用并正常采集数据。

linux sar 工具的使用场景

查CPU瓶颈时,sar -u 要看 %iowait%idle 的组合含义

单独看 %idle 高 ≠ 系统健康。比如 %idle=95 但响应卡顿,很可能是 CPU 在等内存分配(缺内存)或磁盘慢导致线程阻塞;此时 %iowait 若持续 >5%,就要立刻查磁盘 —— 它比 top 的 CPU 占用率更能暴露 I/O 瓶颈。

  • sar -u 2 10 实时抓 10 次、每 2 秒一采,适合排查突发高负载
  • 历史分析用 sar -u -f /var/log/sa/sa23(23 号数据),注意文件名是 sa + 日期,不是 sar
  • 多核机器加 -P ALL(如 sar -P ALL 1 5)可定位单核打满问题,避免被 all 平均值掩盖热点

诊断内存压力,sar -rfree 更反映真实水位

free 显示的是当前快照,而 sar -r 记录的是周期性采样下的内存页回收、缓存膨胀、交换活动趋势 —— 尤其当 %memused 接近 95% 且 kbmemfree 长期低于 100MB,再结合 sar -B 中的 pgmajfault/s(大页缺页)飙升,基本可断定应用在频繁触发 OOM killer 或 swap。

  • 默认日志只保留 28 天(HISTORY=28/etc/sysconfig/sysstat),查更久需提前配置
  • kbavailkbmemfree 更可靠,它包含可立即回收的 cache/buffer,是内核实际可用内存
  • 如果 sar -r 显示 kbcommit 持续 >100%,说明系统已过度承诺内存,风险极高

分析磁盘 I/O 性能,sar -dsar -b 必须一起看

sar -d 给出设备级吞吐(rkB/s, wkB/s)、队列深度(aqu-sz)、响应延迟(await);sar -b 则反映整体块层效率(tps, rd_sec/s, wr_sec/s)。若 await > 20ms%util > 90%,说明磁盘饱和;但若 %util 很低而 await 高,大概率是上层应用并发写入太猛(如数据库日志刷盘),而非磁盘本身慢。

  • sar -d 默认不显示设备名(如 sda),需确认内核启用 SADC_OPTIONS="-S DISK"(见 /etc/sysconfig/sysstat
  • 云服务器常见陷阱:dev253-0 这类 device-mapper 名称,要结合 lsblkcat /proc/diskstats 对应到真实云盘
  • SSD 场景下 svctm 已无意义(被内核废弃),专注 awaitaqu-sz

回溯网络异常,sar -n DEV 是唯一能查“昨天下午三点丢包”的命令

不像 iftopnetstat 只能看实时,sar -n DEV 的历史记录保存在 /var/log/sa/ 下,可精确到分钟级还原流量突增、接口错包、广播风暴。关键字段:rxpck/s(收包率)、txerr/s(发包错误)、rxdrop/s(接收丢包)—— 如果某时段 rxdrop/s 突然跳升,大概率是网卡 buffer 溢出或驱动问题。

  • 必须确保 sysstat 的 cron 任务正常运行(检查 systemctl status sysstat/var/log/sa/ 下是否有新文件)
  • sar -n DEV -f /var/log/sa/sa22 查 22 号数据,但注意:默认只存最近 28 天,过期自动清理
  • 云环境要注意虚拟网卡命名(如 ens3, eth0),不同厂商命名规则不同,别认错接口
实际排查中,最常被忽略的是:sar 数据是否真在采集 —— 很多机器装了 sysstat 却没改 ENABLED="true",或者 cron 被禁用,结果查半天历史数据全是空的。动手前先跑 ls -lt /var/log/sa/ 看有没有最新文件,比什么都实在。

相关专题

更多
硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

1051

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

107

2025.10.17

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

553

2025.12.29

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

11

2026.01.19

线程和进程的区别
线程和进程的区别

线程和进程的区别:线程是进程的一部分,用于实现并发和并行操作,而线程共享进程的资源,通信更方便快捷,切换开销较小。本专题为大家提供线程和进程区别相关的各种文章、以及下载和课程。

482

2023.08.10

数据库三范式
数据库三范式

数据库三范式是一种设计规范,用于规范化关系型数据库中的数据结构,它通过消除冗余数据、提高数据库性能和数据一致性,提供了一种有效的数据库设计方法。本专题提供数据库三范式相关的文章、下载和课程。

354

2023.06.29

如何删除数据库
如何删除数据库

删除数据库是指在MySQL中完全移除一个数据库及其所包含的所有数据和结构,作用包括:1、释放存储空间;2、确保数据的安全性;3、提高数据库的整体性能,加速查询和操作的执行速度。尽管删除数据库具有一些好处,但在执行任何删除操作之前,务必谨慎操作,并备份重要的数据。删除数据库将永久性地删除所有相关数据和结构,无法回滚。

2076

2023.08.14

vb怎么连接数据库
vb怎么连接数据库

在VB中,连接数据库通常使用ADO(ActiveX 数据对象)或 DAO(Data Access Objects)这两个技术来实现:1、引入ADO库;2、创建ADO连接对象;3、配置连接字符串;4、打开连接;5、执行SQL语句;6、处理查询结果;7、关闭连接即可。

348

2023.08.31

C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

10

2026.01.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.6万人学习

Git 教程
Git 教程

共21课时 | 2.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号