原创不易,本文涉及sar内容较多,分成几个部分发布。
上一篇:Linux 系统性能监控工具集sysstat之pidstat
sysstat 是 Linux 系统性能监控工具集,包含 sar、iostat、mpstat、pidstat 等核心组件,可实时或历史分析 CPU、内存、磁盘 I/O、网络等资源的使用情况。sar是历史性能数据分析的利器。它通过周期性采集系统指标并保存到日志文件中,支持分析过去某个时间点的性能状态。本文通过一些典型应用实例来讲解下sar这个工具是用法。
sysstat工具集安装方法:
apt install sysstat -y
1、用途介绍
sar具有历史性能回溯,可以回溯查看过去某天、某小时某时刻的系统指标(CPU、内存、磁盘、网络等)。
通过历史数据建立系统正常负载的基线数据,用于异常波动时的对比。
其结合多维度数据(如高 CPU 时伴随的磁盘 I/O 或网络负载)定位性能瓶颈,通过长期趋势预测硬件资源是否需要扩容。
2、历史数据存储及配置文件说明
sar的默认存储 /var/log/sysstat/ 目录下,打开目录会看到saXX,XX表示日期譬如sa24表示24号的数据。采集间隔为默认10分钟采集一次,保留时长默认为7天。
sysstat的配置文件在 /etc/sysstat/sysstat文件中
cat sysstat | grep -vE '^#|^#39;
参数解释:
HISTORY=7 表示历史数据可以保存7天。
SA_DIR=/var/log/sysstat 历史数据存放位置。
COMPRESSAFTER=10 指定日志文件在多少天后进行压缩。
SADC_OPTIONS="-S DISK" 配置 sadc(系统活动数据收集器)的 选项。-S 表示收集指定的子系统数据,DISK 表示启用 磁盘 I/O 统计(默认可能不收集磁盘数据)。-S DISK 会启用磁盘读写、I/O 等待时间等详细监控。
ZIP="xz" 指定用于压缩数据的压缩方案
UMASK=0022 设置生成日志文件的 默认权限。
3、实例分析
(1)查看 CPU 历史负载
sar -u -f /var/log/sysstat/sa24 | more #分屏查看24号数据
输出字段:
%user:用户态 CPU 使用率。
%system:内核态 CPU 使用率。
%iowait:CPU 等待 I/O 的时间占比。
%idle:CPU 空闲时间。
%nice:在 低优先级(nice 值 > 0) 下运行用户态程序的时间占比。
%steal:在虚拟化环境中,CPU 被其他虚拟机占用的时间占比。物理机通常为 0。
应用场景:
I/O瓶颈:通过观察 %iowait 是否飙升(可能磁盘 I/O 瓶颈或者网络性能问题)。
基线对比:对比工作日和周末的 %user 差异,评估业务负载特征。
CPU瓶颈:如果 %user + %system 持续高于 80%,说明 CPU 负载较高,可能需优化程序或扩容。
虚拟化性能:%steal 高表示虚拟机被宿主机抢占资源,需检查虚拟化层的资源分配。
空闲资源:%idle 长期高于 80% 可能表示 CPU 资源未被充分利用。
下一篇:使用sar监控内存与磁盘I/O情况