简介
sar 是 System Activity Reporter 的简写
是 sysstat 工具的一个组成部分
sysstat包含的工具主要有:
sar、iostat、mpstat、pidstat 和 sadc
sar:System Activity Reporter,用于收集和报告系统活动数据。
iostat:用于报告 CPU 和设备的 I/O 统计信息。
mpstat:用于报告各个处理器的 CPU 使用情况。
pidstat:用于报告单个进程的统计信息。
sadc:系统活动数据收集器,用于将系统活动数据写入日志文件。
可以理解为 sar 就是将后面多个工具日常收集的信息归集起来.
sar的安装
yum install sysstat
systemctl enable --now sysstat
日子存放路径:
/var/log/sa
一般会至少存储 28天的日志
命令是sa+日期后两位的模式进行
修改sar的频率
rpm -qcf $(which sar)
/etc/sysconfig/sysstat
/etc/sysconfig/sysstat.ioconf
可以看到配置文件的信息
可以使用如下命令
cat >> etc/sysconfig/sysstat <<EOF
SA1_INTERVAL=60
EOF
增加上sar 收集的频率限制, 单位是秒钟. 进行处理.
但是发现有的服务器这个修改方式不管用:
cat > etc/cron.d/sysstat <<EOF
*/1 * * * * root usr/lib64/sa/sa1 1 1
EOF
需要注意 修改了之后需要重启一下 sysstat
systemctl restart sysstat
sar的帮助
sar --help
用法: sar [ 选项 ] [ <时间间隔> [ <次数> ] ]
主要选项和报告(报告名以方括号分隔):
-B 分页状况 [A_PAGE]
-b I/O 和传输速率信息状况 [A_IO]
-d 块设备状况 [A_DISK]
-F [ MOUNT ]
文件系统统计信息 [A_FS]
-H 巨大页面利用率 [A_HUGE]
-I { <中断列表> | SUM | ALL }
中断信息状况 [A_IRQ]
-m { <关键字> [,...] | ALL }
电源管理统计信息 [A_PWR_...]
关键字:
CPU CPU 瞬时时钟频率
FAN 风扇速度
\t\tFREQ\tCPU 平均时钟频率
IN 输入电压
TEMP 设备温度
\t\tUSB\t连接的 USB 设备
-n { <关键字> [,...] | ALL }
网络统计信息 [A_NET_...]
关键字:
DEV 网络接口
EDEV 网络接口(错误)
NFS NFS 客户端
NFSD NFS 服务端
SOCK Sockets (v4)
IP IP 流 (v4)
EIP IP 流 (v4)(错误)
ICMP ICMP 流 (v4)
EICMP ICMP 流 (v4)(错误)
TCP TCP 流 (v4)
ETCP TCP 流 (v4) (错误)
UDP UDP 流 (v4)
SOCK6 Sockets (v6)
IP6 IP 流 (v6)
EIP6 IP 流 (v6)(错误)
ICMP6 ICMP 流 (v6)
EICMP6 ICMP 流 (v6) (错误)
UDP6 UDP 流 (v6)
FC Fibre channel HBAs
SOFT 基于软件的网络处理
-q 队列长度和平均负载统计信息 [A_QUEUE]
-r [ ALL ]
内存利用率信息 [A_MEMORY]
-S 交换空间利用率信息 [A_MEMORY]
-u [ ALL ]
CPU 利用率信息 [A_CPU]
-v 内核表统计信息 [A_KTABLES]
-W 交换信息 [A_SWAP]
-w 任务创建与系统切换信息 [A_PCSW]
-y TTY 设备信息 [A_SERIAL]
sar 的说明
sar 其实是一个非常重要的性能排查工具.
帮助我分成了三部分
第一部分是 磁盘,分页,以及大页等信息
第二部分是 网络信息. 很多时候能是网络方面的救命稻草.
第三部分是内存和CPU,队列,交换等信息
各有各的用处
sar的简单验证
fio 进行存储压力测试:
fio -name=1io -filename=io.speedtest \
-runtime=120 -direct=1 -bs=8M -rw=write \
-size=4G -thread -group_reporting -numjobs=320 --iodepth=4 -\
ioengine=sync
这个参数可以压测到最高的硬盘性能数据. 大块的顺序写.
sar -b 验证
21时56分01秒 tps rtps wtps dtps bread/s bwrtn/s bdscd/s
22时16分01秒 5841.88 318.47 5523.40 0.00 66454.11 5906190.60 0.00
22时17分01秒 8555.84 287.59 8268.25 0.00 65747.13 8764365.68 0.00
sar -d 验证
22时11分01秒 DEV tps rkB/s wkB/s dkB/s areq-sz aqu-sz await %util
22时16分01秒 dev8-16 5837.48 32928.74 2953109.78 0.00 511.53 2.09 0.86 75.80
22时17分01秒 dev8-16 8555.31 32872.03 4382152.32 0.00 516.06 3.11 0.86 99.32
fio 的测试结果为:
WRITE: bw=4296MiB/s (4504MB/s), 4296MiB/s-4296MiB/s (4504MB/s-4504MB/s), io=506GiB (543GB), run=120567-120567msec
简单说明
虽然我是SSD, 理论上block是 4KB, 但是发现 sar -b 其实还是使用的 512bytes的块大小进行的计算.
令我 sar -d 的 %util 可以作为硬盘是否完全发挥效应的一个参数
sar 的其他验证
sar 会直接显示 CPU的使用情况
sar -r 会显示内存的情况
sar -w 显示系统任务相关
sar -W 会显示swap分区的使用情况,
如果pagein pageout 很多, 说明内存不太够了.
sar 是一个很好的工具, 当手头没有一个比较好的性能监控工具时
他会是将你解救出泥潭的工具
文章转载自济南小老虎,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




