简介
sar命令将操作系统中选定的累积活动计数器的内容写入标准输出。计费系统根据 count 和 interval参数中的值,以秒为单位,按照指定的时间间隔写入指定次数的信息。
目录
1. 语法
1.1. 常用参数
2. 常见用法
2.1. 监控CPU
2.2. 监控内存
2.3. 监控内存分页
2.4. 监控系统交换活动信息
2.5. 监控磁盘使用情况
2.6. 监控磁盘 I/O
2.7. 监控平均负载和队列长度
2.8. 监控网络
3. 查看30天内历史监控
4. 后台监控
5. 其他性能监控命令
sar [ 选项 ] [ <时间间隔> [ <次数> ] ]
-u:CPU利用率
-r:内存利用率
-R:内存状况
-S:交换空间利用率
-H:交换空间利用率
-b:I/O 和传输速率信息状况
-d:磁盘使用情况
-q:队列长度和平均负载
-n { <关键词> [,...] | ALL } :网络统计信息
-o:保存信息为二进制文件
-f:查看 -o 保存的文件
sar -u 1 3 # 每 1s 监控一次,共监控 3 次
%user :用户空间占用的CPU
%nice :改变过优先级进程占用的CPU
%system:内核空间占用的CPU
%iowait :CPU 等待 IO 的占比(若该占比较高,硬盘可能存在 I/O 瓶颈)
%steal :管理程序(hypervisor)为另一个虚拟进程提供服务而等待的虚拟CPU占比
%idle :空闲的CPU(若空闲较大,但系统响应慢,有可能CPU等待内存分配,应适当增加内存容量;若空闲持续低于 1%,则系统的CPU处理能力较低)
sar -r 1 3 # 查看内存使用率,每 1s 监控一次,共 3 次
kbmemfree :空闲物理内存(单位KB)
kbmemused:正在使用的物理内存(单位KB)
%memused:物理内存使用率
kbbuffers :缓冲区正在使用的内存(单位KB)
kbcached :缓存的文件大小(单位KB)
kbcommit :保证当前系统所需内存,为了确保不溢出而需要的内存(RAM + SWAP)
%commit :实际可用内存占比
sar -B 1 3 # 查看内存分页情况,每隔 1s 监控一次,共 3 次
pgpgin/s :每秒从磁盘或swap置换到内存的字节数(单位 KB)
pgpgout/s:每秒从内存置换到磁盘或swap的字节数(单位 KB)
fault/s :系统每秒产生的缺页数(major + minor)
majflt/s :每秒产生的主缺页数
pgfree/s :每秒被放入空闲队列的页个数
pgscank/s:每秒被kswapd扫描的页个数
pgscand/s:每秒被直接扫描的页个数
pgsteal/s :每秒从cache中被清除来满足内存需要的页个数
%vmeff : 清除页占总扫描页的百分比
sar -W 1 3 # 查看系统交换活动信息,每隔 1s 监控一次,共 3 次
pswpin/s :每秒系统换入的交换页面(swap page)数量
pswpout/s:每秒系统换出的交换页面(swap page)数量
sar -d 1 3 -p # 查看磁盘使用情况,每 1s 监控一次,共 3 次
sar -d 1 3 # 输出情况同上,块设备名显示不同
DEV :块设备名
tps :每秒 I/O 数
rd_sec/s:每秒读取扇区数
wr_sec/s:每秒写入扇区数
avgrq-sz:平均每次 I/O 操作的数据大小(扇区)
avgqu-sz:磁盘请求队列的平均长度(此值越低时,设备利用率较高)
await :I/O 请求队列的平均等待时间(单位 ms)
svctm :I/O 服务处理时间
%util :I/O 请求占 CPU 百分比,比例越大说明越饱和;接近 100% 时表示带宽已经占满
sar -b 1 3 # 查看 I/O 和传输率,每 1s 监控一次,共 3 次
tps :每秒物理设备的 I/O 传输总量
rtps :每秒从物理设备读入的数据总量
wtps :每秒从物理设备写入的数据总量
bread/s :每秒从物理设备读入的数据量(单位 块/s)
bwrtn/s :每秒从物理设备写入的数据量(单位 块/s)
sar -q 1 3 # 查看平均负载和队列情况,每隔 1s 监控一次,共 3 次
runq-sz :等待运行的进程数
plist-sz :进程列表中的进程和线程数量
ldavg-1 :过去 1 分钟的平均负载
ldavg-5 :过去 5 分钟的平均负载
ldavg-15:过去 15 分钟的平均负载
sar -n DEV 1 3 # 查看网络情况,每隔 1s 监控一次,共 3 次
-n 关键词如下:
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)
IFACE :网卡名
rxpck/s :每秒接收的包
txpck/s :每秒发送的包
rxkB/s :每秒接收的字节数(单位 KB)
txkB/s :每秒发送的字节数(单位 KB)
rxcmp/s :每秒接收的压缩包
txcmp/s :每秒发送的压缩包
rxmcst/s:每秒接收的多播包
sar -f /var/log/sa/sa07 -u # 查看7号的CPU使用情况
sar -f /var/log/sa/sa07 -r # 查看7号的内存使用情况
sar -f /var/log/sa/sa07 -d -p # 查看7号的磁盘使用情况
sar -f /var/log/sa/sa07 -b # 查看7号的I/O使用情况
说明:
若操作系统存在 sar 命令,那么系统将自动保存 30 天监控情况
目录为:/var/log/sa/*
监控文件以每 10 分钟保存一次
查看其他资源监控只需要使用 sar -f [需要读取的文件] + [参数] 即可
注意:系统每10分钟保存一次,所以即使指定每 1 秒输出一次,也是按每 10 分钟输出一次
nohup sar -u 1 10 > file.txt & # 使用 nohup 输出到后台执行
tail -f file.txt # 实时查看监控情况
Linux性能监控命令_top & 实时监控主机信息
Linux性能监控命令_iostat & 监控I/O状态
Linux性能监控命令_vmstat & 同时监控cpu、内存、磁盘、分页
Linux性能监控命令_pidstat & 统计进程信息