参考文献

sar

  • sarSystem Activity Reporter(系统活动情况报告)的缩写.sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态.它的特点是可以连续对系统取样,获得大量的取样数据;取样数据和分析的结果都可以存入文件,所需的负载很小

安装

1
sudo apt install sysstat

语法格式

1
sar -[ options ] time_interval number_of_tines_to_display

查看CPU信息

1
2
3
4
5
6
7
8
9
10
11
# 输出CPU信息间隔2秒 一共输出5次
# sar -u 2 5
Linux 5.4.0-150-generic (yw-PowerEdge-R740) 2024年09月06日 _x86_64_ (40 CPU)

13时20分04秒 CPU %user %nice %system %iowait %steal %idle
13时20分06秒 all 1.13 0.00 0.14 1.48 0.00 97.26
13时20分08秒 all 1.08 0.00 0.16 1.49 0.00 97.27
13时20分10秒 all 1.00 0.00 0.11 1.51 0.00 97.37
13时20分12秒 all 2.53 0.00 0.24 1.55 0.00 95.69
13时20分14秒 all 6.70 0.00 0.98 1.60 0.00 90.72
Average: all 2.48 0.00 0.33 1.53 0.00 95.66
参数 说明
%user 用户空间的CPU使用率
%nice 改变过优先级的进程的CPU使用率
%system 内核空间的CPU使用率
%iowait CPU等待IO的百分比
%steal 虚拟机的虚拟机CPU使用的CPU
%idle 空闲的CPU

查看内存信息

1
2
3
4
5
6
7
8
# sar -r 1 3
Linux 5.4.0-150-generic (yw-PowerEdge-R740) 2024年09月06日 _x86_64_ (40 CPU)

13时20分46秒 kbmemfree kbavail kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
13时20分47秒 3079732 59348876 95517452 96.88 1325988 52666048 49028016 49.73 33768004 54579200 5680
13时20分48秒 3086080 59363328 95511104 96.87 1325988 52673708 49028016 49.73 33751940 54587072 9076
13时20分49秒 3076356 59362700 95520828 96.88 1325988 52682628 49028016 49.73 33753024 54595956 13520
Average: 3080723 59358301 95516461 96.88 1325988 52674128 49028016 49.73 33757656 54587409 9425
参数 说明
kbmemfree 空闲的物理内存大小
kbavail 可用的物理内存大小
kbmemused 使用中的物理内存大小
%memused 使用中内存百分比
kbbuffers 内核空间使用的buffer大小
kbcached 内核空间使用的cache大小
kbcommit 当前工作负载所需的内存量
%commit 当前工作负载所需的内存占内存总量的百分比(RAM+Swap)
kbactive 活动内存量(最近使用过的内存,除非绝对必要,否则通常不会回收)
kbinact 非活动内存量(最近较少使用的内存量).它更有资格被回收用于其他目的)
kbdirty 等待写回磁盘的内存量

查看文件系统信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# sar -F 1 1
Linux 5.4.0-150-generic (yw-PowerEdge-R740) 2024年09月06日 _x86_64_ (40 CPU)

13时21分51秒 MBfsfree MBfsused %fsused %ufsused Ifree Iused %Iused FILESYSTEM
13时21分52秒 850182 49048 5.45 10.54 58285992 254040 0.43 /dev/sda2
13时21分52秒 0 165 100.00 100.00 0 27806 100.00 /dev/loop0
13时21分52秒 0 45 100.00 100.00 0 42235 100.00 /dev/loop3
13时21分52秒 0 56 100.00 100.00 0 10944 100.00 /dev/loop5
13时21分52秒 0 0 100.00 100.00 0 241 100.00 /dev/loop6
13时21分52秒 0 1 100.00 100.00 0 451 100.00 /dev/loop4
13时21分52秒 1331374 6237684 82.41 87.45 236797066 7373686 3.02 /dev/sdb
13时21分52秒 506 5 1.04 1.04 0 0 0.00 /dev/sda1
13时21分52秒 0 1 100.00 100.00 0 450 100.00 /dev/loop7
13时21分52秒 0 92 100.00 100.00 0 76208 100.00 /dev/loop8
13时21分52秒 0 4 100.00 100.00 0 733 100.00 /dev/loop9
13时21分52秒 0 2 100.00 100.00 0 1453 100.00 /dev/loop10
13时21分52秒 0 0 100.00 100.00 0 29 100.00 /dev/loop11
13时21分52秒 0 104 100.00 100.00 0 12897 100.00 /dev/loop12
13时21分52秒 0 1 100.00 100.00 0 247 100.00 /dev/loop13
13时21分52秒 0 504 100.00 100.00 0 20801 100.00 /dev/loop14
13时21分52秒 0 505 100.00 100.00 0 20797 100.00 /dev/loop15
13时21分52秒 0 104 100.00 100.00 0 12897 100.00 /dev/loop16
13时21分52秒 0 160 100.00 100.00 0 27755 100.00 /dev/loop17
13时21分52秒 0 4 100.00 100.00 0 1577 100.00 /dev/loop18
13时21分52秒 0 56 100.00 100.00 0 10944 100.00 /dev/loop19
13时21分52秒 0 2 100.00 100.00 0 1032 100.00 /dev/loop20
13时21分52秒 0 74 100.00 100.00 0 14450 100.00 /dev/loop21
13时21分52秒 0 74 100.00 100.00 0 14450 100.00 /dev/loop2
参数 说明
MBfsfree 文件系统中剩余的总空间(以MB为单位,包括仅供特权用户使用的空间)
MBfsused 已使用的总空间(以MB为单位)
%fsused 文件系统空间使用百分比(特权用户视角)
%ufsused 文件系统空间使用百分比(非特权用户视角)
Ifree 文件系统中剩余的文件节点数
Iused 文件系统中已使用的文件节点数
%Iused 文件系统中已使用的文件节点百分比

查看Block Device信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# sar -d 1 3
Linux 5.4.0-150-generic (yw-PowerEdge-R740) 2024年09月06日 _x86_64_ (40 CPU)

13时23分02秒 DEV tps rkB/s wkB/s areq-sz aqu-sz await svctm %util
13时23分03秒 dev7-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
13时23分03秒 dev7-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
13时23分03秒 dev7-2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
13时23分03秒 dev7-3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
13时23分03秒 dev7-4 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
13时23分03秒 dev7-5 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
13时23分03秒 dev7-6 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
13时23分03秒 dev7-7 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
13时23分03秒 dev8-0 3.00 0.00 16.00 5.33 0.00 0.00 1.33 0.40
13时23分03秒 dev8-16 94.00 4056.00 36.00 43.53 0.45 6.69 9.19 86.40
13时23分03秒 dev7-8 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
13时23分03秒 dev7-9 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
13时23分03秒 dev7-10 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
13时23分03秒 dev7-11 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
13时23分03秒 dev7-12 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
13时23分03秒 dev7-13 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
13时23分03秒 dev7-14 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
13时23分03秒 dev7-15 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
13时23分03秒 dev7-16 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
13时23分03秒 dev7-17 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
13时23分03秒 dev7-18 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
13时23分03秒 dev7-19 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
13时23分03秒 dev7-20 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
13时23分03秒 dev7-21 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
参数 说明
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
2
3
4
5
6
7
8
9
10
# sar -q 1 5
Linux 5.4.0-150-generic (yw-PowerEdge-R740) 2024年09月06日 _x86_64_ (40 CPU)

13时23分58秒 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
13时23分59秒 0 2790 1.59 1.50 1.42 1
13时24分00秒 1 2790 1.59 1.50 1.42 0
13时24分01秒 0 2790 1.59 1.50 1.42 1
13时24分02秒 0 2790 1.55 1.49 1.42 1
13时24分03秒 0 2790 1.55 1.49 1.42 1
Average: 0 2790 1.57 1.50 1.42 1
参数 说明
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
2
3
4
5
6
7
8
# sar -v 1 3
Linux 5.4.0-150-generic (yw-PowerEdge-R740) 2024年09月06日 _x86_64_ (40 CPU)

13时25分13秒 dentunusd file-nr inode-nr pty-nr
13时25分14秒 614365 10640 713946 38
13时25分15秒 614447 10640 714028 38
13时25分16秒 614530 10640 714111 38
Average: 614447 10640 714028 38
参数 说明
dentunusd 目录缓存中未使用的缓存条目数.
file-nr 系统已使用的文件句柄数.
inode-nr 系统已使用的 inode 处理程序数.
pty-nr 系统已使用的伪终端数量.

查看Swap信息

1
2
3
4
5
6
7
8
# sar -S 1 3
Linux 5.4.0-150-generic (yw-PowerEdge-R740) 2024年09月06日 _x86_64_ (40 CPU)

13时25分59秒 kbswpfree kbswpused %swpused kbswpcad %swpcad
13时26分00秒 0 0 0.00 0 0.00
13时26分01秒 0 0 0.00 0 0.00
13时26分02秒 0 0 0.00 0 0.00
Average: 0 0 0.00 0 0.00
参数 说明
kbswpfree 剩余的交换空间大小(以千字节为单位).
kbswpused 已使用的交换空间大小(以千字节为单位).
%swpused 已使用的交换空间百分比.
kbswpcad 缓存的交换内存大小(以千字节为单位).这部分内存曾经被换出,现在又被换回内存中,但仍保留在交换区.如果需要再次换出,不需要再次写入交换区,节省了 I/O.
%swpcad 缓存交换内存相对于已使用交换空间的百分比.

查看I/O信息

1
2
3
4
5
6
7
8
# sar -b 1 3
Linux 5.4.0-150-generic (yw-PowerEdge-R740) 2024年09月06日 _x86_64_ (40 CPU)

13时31分51秒 tps rtps wtps bread/s bwrtn/s
13时31分52秒 8.00 8.00 0.00 1056.00 0.00
13时31分53秒 73.00 72.00 1.00 7272.00 64.00
13时31分54秒 94.00 94.00 0.00 9264.00 0.00
Average: 58.33 58.00 0.33 5864.00 21.33
参数 说明
tps 每秒发出的物理设备传输总数.传输是对物理设备的 I/O 请求,多个逻辑请求可以合并为一个 I/O 请求,传输的大小不确定.
rtps 每秒发出的读取请求总数.
wtps 每秒发出的写入请求总数.
bread/s 每秒从设备读取的数据量,以块为单位.一个块等同于一个扇区,大小为 512 字节.
bwrtn/s 每秒写入设备的数据量,以块为单位.

Context Switching, Process Creation, and Swap Details

1
2
3
4
5
6
7
8
# sar -w 1 3
Linux 5.4.0-150-generic (yw-PowerEdge-R740) 2024年09月06日 _x86_64_ (40 CPU)

13时32分27秒 proc/s cswch/s
13时32分28秒 1.00 2682.00
13时32分29秒 0.00 2589.00
13时32分30秒 0.00 2324.00
Average: 0.33 2531.67
参数 说明
proc/s 每秒创建的任务总数.
cswch/s 每秒上下文切换的总数.

Paging Statistics

1
2
3
4
5
6
7
8
9
10
# sar -B 2 5
Linux 5.4.0-150-generic (yw-PowerEdge-R740) 2024年09月06日 _x86_64_ (40 CPU)

13时33分10秒 pgpgin/s pgpgout/s fault/s majflt/s pgfree/s pgscank/s pgscand/s pgsteal/s %vmeff
13时33分12秒 4852.00 860.00 161.50 0.00 19318.50 18628.00 0.00 18625.50 99.99
13时33分14秒 4610.00 0.00 433.50 0.00 268.00 0.00 0.00 0.00 0.00
13时33分16秒 4878.00 828.00 661.50 0.00 918.50 0.00 0.00 0.00 0.00
13时33分18秒 4088.00 8.00 775.00 0.00 830.50 0.00 0.00 0.00 0.00
13时33分20秒 4360.00 0.00 239.00 0.00 815.50 0.00 0.00 0.00 0.00
Average: 4557.60 339.20 454.10 0.00 4430.20 3725.60 0.00 3725.10 99.99
参数 说明
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%),则虚拟内存可能存在一些困难.如果在时间间隔内没有扫描页面,则该字段显示为零.