Linux工具-sar
参考文献
sar
sar
是System Activity Reporter
(系统活动情况报告)的缩写.sar
工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态.它的特点是可以连续对系统取样,获得大量的取样数据;取样数据和分析的结果都可以存入文件,所需的负载很小
安装
1 | sudo apt install sysstat |
语法格式
1 | sar -[ options ] time_interval number_of_tines_to_display |
查看CPU
信息
1 | # 输出CPU信息间隔2秒 一共输出5次 |
参数 | 说明 |
---|---|
%user |
用户空间的CPU使用率 |
%nice |
改变过优先级的进程的CPU使用率 |
%system |
内核空间的CPU使用率 |
%iowait |
CPU等待IO的百分比 |
%steal |
虚拟机的虚拟机CPU使用的CPU |
%idle |
空闲的CPU |
查看内存信息
1 | # sar -r 1 3 |
参数 | 说明 |
---|---|
kbmemfree |
空闲的物理内存大小 |
kbavail |
可用的物理内存大小 |
kbmemused |
使用中的物理内存大小 |
%memused |
使用中内存百分比 |
kbbuffers |
内核空间使用的buffer 大小 |
kbcached |
内核空间使用的cache 大小 |
kbcommit |
当前工作负载所需的内存量 |
%commit |
当前工作负载所需的内存占内存总量的百分比(RAM+Swap) |
kbactive |
活动内存量(最近使用过的内存,除非绝对必要,否则通常不会回收) |
kbinact |
非活动内存量(最近较少使用的内存量).它更有资格被回收用于其他目的) |
kbdirty |
等待写回磁盘的内存量 |
查看文件系统信息
1 | # sar -F 1 1 |
参数 | 说明 |
---|---|
MBfsfree |
文件系统中剩余的总空间(以MB为单位,包括仅供特权用户使用的空间) |
MBfsused |
已使用的总空间(以MB为单位) |
%fsused |
文件系统空间使用百分比(特权用户视角) |
%ufsused |
文件系统空间使用百分比(非特权用户视角) |
Ifree |
文件系统中剩余的文件节点数 |
Iused |
文件系统中已使用的文件节点数 |
%Iused |
文件系统中已使用的文件节点百分比 |
查看Block Device
信息
1 | # sar -d 1 3 |
参数 | 说明 |
---|---|
tps |
每秒发出的物理设备传输总数.一次传输是对物理设备的 I/O 请求,多个逻辑请求可以合并为一个 I/O 请求.传输大小不定. |
rkB/s |
每秒从设备读取的千字节数. |
wkB/s |
每秒写入设备的千字节数. |
areq-sz |
发出的 I/O 请求的平均大小(以千字节为单位).注意: 此字段在之前的版本中被称为 avgrq-sz ,单位为扇区. |
aqu-sz |
发出的请求的平均队列长度.注意: 此字段在之前的版本中被称为 avgqu-sz . |
await |
发出的 I/O 请求被服务的平均时间(以毫秒为单位),包括在队列中等待和被服务的时间. |
svctm |
发出的 I/O 请求的平均服务时间(以毫秒为单位).注意: 不再推荐依赖此字段,它将在未来的 sysstat 版本中移除. |
%util |
设备被发出 I/O 请求的时间占用百分比(设备的带宽利用率).当该值接近 100% 时,表示设备饱和,但对于并行服务请求的设备(如 RAID 阵列和现代 SSD),该数值并不反映其性能极限. |
查看平均负载统计
1 | # sar -q 1 5 |
参数 | 说明 |
---|---|
runq-sz |
运行队列的长度(等待运行的进程数) |
plist-sz |
进程列表中的进程(processes)和线程数(threads)的数量 |
ldavg-1 |
最近1分钟的CPU平均负载,即将多核CPU过去一分钟的负载相加再除以核心数得出的平均值 |
ldavg-5 |
最近5分钟的CPU平均负载 |
ldavg-15 |
最近15分钟的CPU平均负载 |
blocked |
当前阻塞的等待I/O完成的任务数 |
查看网络信息
-
sar可以用来查看系统的网络收发情况,还有一个好处是,不仅可以观察网络收发的吞吐量(BPS,每秒收发的字节数),还可以观察网络收发的 PPS,即每秒收发的网络帧数.
1
2
3
4
5
6
7
8
9# sar -n DEV 1
Linux 4.18.0-193.14.2.el8_2.x86_64 (iZuf6ib0sh7w9cc92x0h4qZ) 08/31/2023 _x86_64_ (2 CPU)
10:25:33 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
10:25:34 AM vethab922f6 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10:25:34 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10:25:34 AM eth0 8.00 11.00 0.56 5.68 0.00 0.00 0.00 0.00
10:25:34 AM docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10:25:34 AM br-3a381a60dd3c 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
参数 | 说明 |
---|---|
IFACE |
报告统计信息的网络接口名称. |
rxpck/s |
每秒接收的数据包总数. |
txpck/s |
每秒发送的数据包总数. |
rxkB/s |
每秒接收的千字节总数. |
txkB/s |
每秒发送的千字节总数. |
rxcmp/s |
每秒接收的压缩数据包数. |
txcmp/s |
每秒发送的压缩数据包数. |
rxmcst/s |
每秒接收的多播数据包数. |
%ifutil |
网络接口的利用率百分比. |
Process, Kernel Thread, I-node, and File Table Details
1 | # sar -v 1 3 |
参数 | 说明 |
---|---|
dentunusd |
目录缓存中未使用的缓存条目数. |
file-nr |
系统已使用的文件句柄数. |
inode-nr |
系统已使用的 inode 处理程序数. |
pty-nr |
系统已使用的伪终端数量. |
查看Swap
信息
1 | # sar -S 1 3 |
参数 | 说明 |
---|---|
kbswpfree |
剩余的交换空间大小(以千字节为单位). |
kbswpused |
已使用的交换空间大小(以千字节为单位). |
%swpused |
已使用的交换空间百分比. |
kbswpcad |
缓存的交换内存大小(以千字节为单位).这部分内存曾经被换出,现在又被换回内存中,但仍保留在交换区.如果需要再次换出,不需要再次写入交换区,节省了 I/O. |
%swpcad |
缓存交换内存相对于已使用交换空间的百分比. |
查看I/O
信息
1 | # sar -b 1 3 |
参数 | 说明 |
---|---|
tps |
每秒发出的物理设备传输总数.传输是对物理设备的 I/O 请求,多个逻辑请求可以合并为一个 I/O 请求,传输的大小不确定. |
rtps |
每秒发出的读取请求总数. |
wtps |
每秒发出的写入请求总数. |
bread/s |
每秒从设备读取的数据量,以块为单位.一个块等同于一个扇区,大小为 512 字节. |
bwrtn/s |
每秒写入设备的数据量,以块为单位. |
Context Switching, Process Creation, and Swap Details
1 | # sar -w 1 3 |
参数 | 说明 |
---|---|
proc/s |
每秒创建的任务总数. |
cswch/s |
每秒上下文切换的总数. |
Paging Statistics
1 | # sar -B 2 5 |
参数 | 说明 |
---|---|
pgpgin/s |
系统每秒从磁盘中读取的千字节数. |
pgpgout/s |
系统每秒将千字节数写入磁盘. |
fault/s |
系统每秒发生的页面错误数(包括重大和次要页面错误).这不是生成 I/O 的页面错误的计数,因为有些页面错误可以在没有 I/O 的情况下解决. |
majflt/s |
系统每秒发生的重大页面错误数,这些错误需要从磁盘加载内存页面. |
pgfree/s |
系统每秒将页面放入空闲列表的数量. |
pgscank/s |
系统每秒由kswapd 守护进程扫描的页面数量. |
pgscand/s |
系统每秒直接扫描的页面数量. |
pgsteal/s |
系统每秒从缓存(页面缓存和交换缓存)中回收的页面数量,以满足其内存需求. |
%vmeff |
计算公式为pgsteal / pgscan ,这是页面回收效率的度量.如果接近 100%,则几乎所有从非活动列表尾部回收的页面都被清除.如果值太低(例如低于 30%),则虚拟内存可能存在一些困难.如果在时间间隔内没有扫描页面,则该字段显示为零. |
问题
1 | sar -u |
-
解决办法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15cat /etc/default/sysstat
#
# Default settings for /etc/init.d/sysstat, /etc/cron.d/sysstat
# and /etc/cron.daily/sysstat files
#
# Should sadc collect system activity informations? Valid values
# are "true" and "false". Please do not put other values, they
# will be overwritten by debconf!
ENABLED="false"
# ENABLED="false"==>ENABLED="true"
vim /etc/default/sysstat
sudo service sysstat restart
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 HoleLin's Blog!