Linux 基础之 sar 工具详解
一、前言
sar(System Activity Reporter系统活动情况报告)是目前 Linux 比较全的系统性能分析工具之一,可以从多方面对系统的活动进行报告 ,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状态、进程活动有IPC有关的活动等。
sar 还可以配置配置信息收集历史指标。
二、配置说明
sar 是 sysstat 软件包的一部分,如果系统没有安装的话,可以使用命令进行安装。
yum -y install sysstat #安装sar工具
安装完成后,基本配置文件路径“/etc/sysconfig”下的“sysstat”文件。
默认的配置文件信息如下:
[root@iam ~]# cat /etc/sysconfig/sysstat
# sysstat-10.1.5 configuration file.
# How long to keep log files (in days). 将性能日志文件保留多长时间,默认值是28天
# If value is greater than 28, then log files are kept in
# multiple directories, one for each month.
HISTORY=28
# Compress (using gzip or bzip2) sa and sar files older than (in days): 确定sar文件在多少天后压缩文件,默认值为31天。
COMPRESSAFTER=31
# Parameters for the system activity data collector (see sadc manual page) 系统活动数据收集保存参数
# which are used for the generation of log files.
SADC_OPTIONS="-S DISK"
# Compression program to use. 数据文件压缩方式默认是bzip2
ZIP="bzip2"
通过上面信息,我们可以看到默认值有收集数据保存时长,什么时候开始压缩,压缩方式以及保存方式等信息。这些信息可以根据系统性能监控指标的需求自定义进行修改。
另外收集数据的时间间隔可以通过命令进行查看修改。
[root@iam ~]# cat /etc/cron.d/sysstat #查看定时任务
# Run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib64/sa/sa1 1 1
# Generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib64/sa/sa2 -A
[root@iam ~]# vim /etc/cron.d/sysstat #修改定时任务,自定义收集信息的时间间隔
三、使用说明
我们还是先用 man 来看一下对应的文档说明:
我给稍微整理了一下形成一个导图,可以快速的了解其结构与详情:
(一)sar语法
sar [options] [-A] [-o file] [[t] [n]]
- options->选项
- -A->显示所有的报告信息
- -o file->file是文件路径及文件名,将命令结果以二进制格式存放在指定文件中
- t->时间间隔
- n->次数
(二)sar选项
- -b —> I/O传输速率信息状态
- -B —> 分布状况
- -c —> 进程创建活动
- -d —> 块设备状况
- -e —> 设置显示报告的结果时间
- -m —> 电源管理信息状况
- -f —> 从指定文件提取报告
- -I {<中断> | SUM | ALL | XALL —>} 中断信息状况
- -m —> 电源管理信息状况
- -n { <关键词> [,…] | ALL } —> 网络统计信息,关键词可以是:
- DEV ->网卡
- EDEV ->网卡(错误)
- NFS ->NFS客户端
- NFSD ->NFS服务器
- SOCK ->Sockets(套接字)(v4)
- IP ->IP流(v4)
- EIP ->IP流(错误)(v4)
- ICMP ->ICMP流(v4)
- EICMP ->ICMP流(错误)(v4)
- UDP ->UDP流(v4)
- SOCK6 ->Sockets(套接字)(v6)
- IP6 ->IP流(v6)
- EIP6 ->IP流(错误)(v6)
- ICMP6 ->ICMP流(v6)
- EICMP6 ->ICMP流(错误)(v6)
- UDP6 ->UDP流(v6)
- -P —> 报告每个CPU的状态
- -q —> 队列长度和平均负载
- -r —> 内存利用率
- -R —> 内存状态
- -S —> 交换空间利用率
- -u [ ALL ] —> CPU利用率
- -v —> Kernel table状况
- -w —> 任务创建与系统转换统计信息
- -W —> 交换信息
- -y —> TTY设备状态
- -x —> 显示给定进程的状态
(三)示例
示例1
每2s采样一次,连续采样3次,报告I/O传输速率统计情况
命令及结果:
sar -b 2 3
[root@iam ~]# sar -b 2 3
Linux 3.10.0-1062.el7.x86_64 (iam.zt.chiansec.local) 03/24/2023 _x86_64_ (8 CPU)
03:45:48 PM tps rtps wtps bread/s bwrtn/s
03:45:50 PM 9.50 1.00 8.50 12.00 2382.00
03:45:52 PM 5.50 0.00 5.50 0.00 119.00
03:45:54 PM 7.50 0.00 7.50 0.00 108.50
Average: 7.50 0.33 7.17 4.00 869.83
[root@iam ~]#
输出说明:
- tps->每秒物理设备的I/O传输次数总量
- rtps->每秒从物理设备读取的数据次数总量
- wtps->每秒写入物理设备的数据次数总量
- bread/s-> 每秒从设备读取的数据总量,以块为计量单位。块相当于扇区,因此大小为512字节
- bwrth/s->每秒写入物理设备的块总数
示例2
查看系统swap分区的统计信息
命令及结果:
sar -W 1 3
[root@iam ~]# sar -W 1 3
Linux 3.10.0-1062.el7.x86_64 (iam.zt.chiansec.local) 03/24/2023 _x86_64_ (8 CPU)
08:18:24 PM pswpin/s pswpout/s
08:18:25 PM 0.00 0.00
08:18:26 PM 0.00 0.00
08:18:27 PM 0.00 0.00
Average: 0.00 0.00
[root@iam ~]#
输出说明:
- pswpin/s-> 每秒从交换分区到系统的交换页面(swap page)数量
- pswpott/s-> 每秒从系统交换到swap的交换页面(swap page)的数量
示例3
内存分页统计状况
命令及结果:
sar -B 1 3
[root@iam ~]# sar -B 1 3
Linux 3.10.0-1062.el7.x86_64 (iam.zt.chiansec.local) 03/24/2023 _x86_64_ (8 CPU)
04:31:37 PM pgpgin/s pgpgout/s fault/s majflt/s pgfree/s pgscank/s pgscand/s pgsteal/s %vmeff
04:31:38 PM 4096.00 392.00 4419.00 0.00 21896.00 9004.00 0.00 8606.00 95.58
04:31:39 PM 524.00 268.00 2875.00 1.00 21645.00 9011.00 0.00 8590.00 95.33
04:31:40 PM 5724.00 128080.00 18738.00 2.00 26118.00 8993.00 0.00 8646.00 96.14
Average: 3448.00 42913.33 8677.33 1.00 23219.67 9002.67 0.00 8614.00 95.68
[root@iam ~]#
输出说明:
- pgpgpgin/s->表示每秒从磁盘或SWAP置换到内存的字节数(KB)
- pgpgout/s->表示每秒从内存置换到磁盘或SWAP的字节数(KB)
- fault/s->每秒钟系统产生的缺页数,即主缺页与次缺页之和(major + minor)
- majflt/s->每秒钟产生的主缺页数
- pgfree/s->每秒被放入空闲队列中的页个数
- pgscank/s->每秒被 kswapd 扫描的页个数
- pgscand/s->每秒直接被扫描的页个数
- pgsteal/s->每秒钟从 cache 中被清除来满足内存需要的页个数
- %vmeff->每秒清除的页(pgsteal)占总扫描页(pgscank + pgscand)的百分比
示例4
显示每个块设备的状态
命令及结果
sar -d 1 3
[root@iam ~]# sar -d 1 3
Linux 3.10.0-1062.el7.x86_64 (iam.zt.chiansec.local) 03/24/2023 _x86_64_ (8 CPU)
07:37:54 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
07:37:55 PM dev8-0 97.00 16.00 1114.00 11.65 0.04 0.38 0.38 3.70
07:37:55 PM dev11-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
07:37:55 PM dev253-0 95.00 0.00 1114.00 11.73 0.00 0.03 0.03 0.30
07:37:55 PM dev253-1 2.00 16.00 0.00 8.00 0.03 17.00 17.00 3.40
07:37:55 PM dev253-2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
07:37:55 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
07:37:56 PM dev8-0 140.00 8200.00 1353.00 68.24 0.15 1.09 0.24 3.30
07:37:56 PM dev11-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
07:37:56 PM dev253-0 139.00 8192.00 1353.00 68.67 0.14 1.01 0.16 2.20
07:37:56 PM dev253-1 1.00 8.00 0.00 8.00 0.01 11.00 11.00 1.10
07:37:56 PM dev253-2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
07:37:56 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
07:37:57 PM dev8-0 150.00 8192.00 1305.00 63.31 0.08 0.54 0.09 1.30
07:37:57 PM dev11-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
07:37:57 PM dev253-0 150.00 8192.00 1305.00 63.31 0.08 0.54 0.09 1.40
07:37:57 PM dev253-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
07:37:57 PM dev253-2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
Average: dev8-0 129.00 5469.33 1257.33 52.14 0.09 0.70 0.21 2.77
Average: dev11-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: dev253-0 128.00 5461.33 1257.33 52.49 0.07 0.59 0.10 1.30
Average: dev253-1 1.00 8.00 0.00 8.00 0.01 15.00 15.00 1.50
Average: dev253-2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
You have new mail in /var/spool/mail/root
[root@iam ~]#
[root@iam ~]# sar -d -p 1 3
Linux 3.10.0-1062.el7.x86_64 (iam.zt.chiansec.local) 03/24/2023 _x86_64_ (8 CPU)
07:40:41 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
07:40:42 PM sda 121.00 6144.00 1046.00 59.42 5.03 29.98 5.55 67.10
07:40:42 PM sr0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
07:40:42 PM centos-root 124.00 8192.00 1061.00 74.62 5.03 29.26 5.41 67.10
07:40:42 PM centos-swap 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
07:40:42 PM centos-home 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
07:40:42 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
07:40:43 PM sda 133.00 2080.00 1151.00 24.29 0.28 12.62 1.11 14.80
07:40:43 PM sr0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
07:40:43 PM centos-root 129.00 0.00 1136.00 8.81 0.27 12.95 1.09 14.00
07:40:43 PM centos-swap 4.00 32.00 0.00 8.00 0.03 8.00 2.00 0.80
07:40:43 PM centos-home 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
07:40:43 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
07:40:44 PM sda 141.00 8192.00 1517.00 68.86 0.53 3.78 0.51 7.20
07:40:44 PM sr0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
07:40:44 PM centos-root 141.00 8192.00 1517.00 68.86 0.53 3.78 0.52 7.30
07:40:44 PM centos-swap 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
07:40:44 PM centos-home 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
Average: sda 131.67 5472.00 1238.00 50.96 1.95 14.78 2.26 29.70
Average: sr0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: centos-root 131.33 5461.33 1238.00 51.01 1.94 14.80 2.24 29.47
Average: centos-swap 1.33 10.67 0.00 8.00 0.01 8.00 2.00 0.27
Average: centos-home 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
[root@iam ~]#
输出说明:
- DEV-> 磁盘设备的名称,如果不加-p,会显示dev253-0类似的设备名称,因此加上-p显示的名称更直接
- tps->每秒I/O的传输总数
- rd_sec/s-> 每秒读取的扇区的总数
- wr_sec/s-> 每秒写入的扇区的 总数
- avgrq-sz-> 平均每次次磁盘I/O操作的数据大小(扇区)
- avgqu-sz-> 磁盘请求队列的平均长度
- await-> 从请求磁盘操作到系统完成处理,每次请求的平均消耗时间,包括请求队列等待时间,单位是毫秒(1秒等于1000毫秒),等于寻道时间+队列时间+服务时间
- svctm-> I/O的服务处理时间,即不包括请求队列中的时间
- %util ->I/O请求占用的CPU百分比,值越高,说明I/O越慢
示例5
报告每个CPU的状态
命令及结果:
sar -P [ALL] 1 3
或
sar -u 1 3
或
sar -p 1 3
当CPU是单核时,以上命令等价,当CPU是多核时,可以使用“-P”查看指定CPU使用情况,没有明确指出输出那个cpu使用情况时,默认是1,可以指定cpu查看状态,下标从0开始。当输入ALL表示输出所有的cpu状态。具体如下操作及显示:
[root@iam ~]# sar -P 1 3
Linux 3.10.0-1062.el7.x86_64 (iam.zt.chiansec.local) 03/24/2023 _x86_64_ (8 CPU)
07:53:55 PM CPU %user %nice %system %iowait %steal %idle
07:53:58 PM 1 99.67 0.00 0.33 0.00 0.00 0.00
07:54:01 PM 1 98.98 0.00 1.02 0.00 0.00 0.00
07:54:04 PM 1 100.00 0.00 0.00 0.00 0.00 0.00
07:54:07 PM 1 99.31 0.00 0.69 0.00 0.00 0.00
^C
07:54:09 PM 1 99.30 0.00 0.70 0.00 0.00 0.00
Average: 1 99.47 0.00 0.53 0.00 0.00 0.00
[root@iam ~]# sar -P 0 1 3
Linux 3.10.0-1062.el7.x86_64 (iam.zt.chiansec.local) 03/24/2023 _x86_64_ (8 CPU)
07:54:17 PM CPU %user %nice %system %iowait %steal %idle
07:54:18 PM 0 100.00 0.00 0.00 0.00 0.00 0.00
07:54:19 PM 0 98.02 0.00 1.98 0.00 0.00 0.00
07:54:20 PM 0 100.00 0.00 0.00 0.00 0.00 0.00
Average: 0 99.33 0.00 0.67 0.00 0.00 0.00
[root@iam ~]# sar -P 1 1 3
Linux 3.10.0-1062.el7.x86_64 (iam.zt.chiansec.local) 03/24/2023 _x86_64_ (8 CPU)
07:54:26 PM CPU %user %nice %system %iowait %steal %idle
07:54:27 PM 1 100.00 0.00 0.00 0.00 0.00 0.00
07:54:28 PM 1 100.00 0.00 0.00 0.00 0.00 0.00
07:54:29 PM 1 100.00 0.00 0.00 0.00 0.00 0.00
Average: 1 100.00 0.00 0.00 0.00 0.00 0.00
[root@iam ~]# sar -P 2 1 3
Linux 3.10.0-1062.el7.x86_64 (iam.zt.chiansec.local) 03/24/2023 _x86_64_ (8 CPU)
07:54:32 PM CPU %user %nice %system %iowait %steal %idle
07:54:33 PM 2 99.00 0.00 1.00 0.00 0.00 0.00
07:54:34 PM 2 98.02 0.00 1.98 0.00 0.00 0.00
07:54:35 PM 2 100.00 0.00 0.00 0.00 0.00 0.00
Average: 2 99.00 0.00 1.00 0.00 0.00 0.00
[root@iam ~]# sar -P 3 1 3
Linux 3.10.0-1062.el7.x86_64 (iam.zt.chiansec.local) 03/24/2023 _x86_64_ (8 CPU)
07:54:39 PM CPU %user %nice %system %iowait %steal %idle
07:54:40 PM 3 98.04 0.00 1.96 0.00 0.00 0.00
07:54:41 PM 3 100.00 0.00 0.00 0.00 0.00 0.00
07:54:42 PM 3 99.00 0.00 1.00 0.00 0.00 0.00
Average: 3 99.00 0.00 1.00 0.00 0.00 0.00
[root@iam ~]# sar -P ALL 1 3
Linux 3.10.0-1062.el7.x86_64 (iam.zt.chiansec.local) 03/24/2023 _x86_64_ (8 CPU)
07:54:46 PM CPU %user %nice %system %iowait %steal %idle
07:54:47 PM all 99.38 0.00 0.62 0.00 0.00 0.00
07:54:47 PM 0 100.00 0.00 0.00 0.00 0.00 0.00
07:54:47 PM 1 100.00 0.00 0.00 0.00 0.00 0.00
07:54:47 PM 2 99.00 0.00 1.00 0.00 0.00 0.00
07:54:47 PM 3 100.00 0.00 0.00 0.00 0.00 0.00
07:54:47 PM 4 99.01 0.00 0.99 0.00 0.00 0.00
07:54:47 PM 5 98.02 0.00 1.98 0.00 0.00 0.00
07:54:47 PM 6 100.00 0.00 0.00 0.00 0.00 0.00
07:54:47 PM 7 100.00 0.00 0.00 0.00 0.00 0.00
07:54:47 PM CPU %user %nice %system %iowait %steal %idle
07:54:48 PM all 99.62 0.00 0.38 0.00 0.00 0.00
07:54:48 PM 0 99.00 0.00 1.00 0.00 0.00 0.00
07:54:48 PM 1 100.00 0.00 0.00 0.00 0.00 0.00
07:54:48 PM 2 100.00 0.00 0.00 0.00 0.00 0.00
07:54:48 PM 3 100.00 0.00 0.00 0.00 0.00 0.00
07:54:48 PM 4 100.00 0.00 0.00 0.00 0.00 0.00
07:54:48 PM 5 100.00 0.00 0.00 0.00 0.00 0.00
07:54:48 PM 6 100.00 0.00 0.00 0.00 0.00 0.00
07:54:48 PM 7 100.00 0.00 0.00 0.00 0.00 0.00
07:54:48 PM CPU %user %nice %system %iowait %steal %idle
07:54:49 PM all 99.50 0.00 0.37 0.00 0.00 0.12
07:54:49 PM 0 100.00 0.00 0.00 0.00 0.00 0.00
07:54:49 PM 1 99.01 0.00 0.99 0.00 0.00 0.00
07:54:49 PM 2 100.00 0.00 0.00 0.00 0.00 0.00
07:54:49 PM 3 98.02 0.00 1.98 0.00 0.00 0.00
07:54:49 PM 4 100.00 0.00 0.00 0.00 0.00 0.00
07:54:49 PM 5 99.00 0.00 0.00 0.00 0.00 1.00
07:54:49 PM 6 100.00 0.00 0.00 0.00 0.00 0.00
07:54:49 PM 7 100.00 0.00 0.00 0.00 0.00 0.00
Average: CPU %user %nice %system %iowait %steal %idle
Average: all 99.50 0.00 0.46 0.00 0.00 0.04
Average: 0 99.67 0.00 0.33 0.00 0.00 0.00
Average: 1 99.67 0.00 0.33 0.00 0.00 0.00
Average: 2 99.67 0.00 0.33 0.00 0.00 0.00
Average: 3 99.34 0.00 0.66 0.00 0.00 0.00
Average: 4 99.67 0.00 0.33 0.00 0.00 0.00
Average: 5 99.00 0.00 0.67 0.00 0.00 0.33
Average: 6 100.00 0.00 0.00 0.00 0.00 0.00
Average: 7 100.00 0.00 0.00 0.00 0.00 0.00
[root@iam ~]#
[root@iam ~]# sar -u 1 3
Linux 3.10.0-1062.el7.x86_64 (iam.zt.chiansec.local) 03/24/2023 _x86_64_ (8 CPU)
08:01:57 PM CPU %user %nice %system %iowait %steal %idle
08:01:58 PM all 99.63 0.00 0.37 0.00 0.00 0.00
08:01:59 PM all 99.75 0.00 0.25 0.00 0.00 0.00
08:02:00 PM all 99.38 0.00 0.62 0.00 0.00 0.00
Average: all 99.58 0.00 0.42 0.00 0.00 0.00
[root@iam ~]# sar -u 1 3 |grep Average
Average: all 99.50 0.00 0.46 0.00 0.00 0.04
[root@iam ~]# sar -p 1 3
Linux 3.10.0-1062.el7.x86_64 (iam.zt.chiansec.local) 03/24/2023 _x86_64_ (8 CPU)
08:02:48 PM CPU %user %nice %system %iowait %steal %idle
08:02:49 PM all 99.38 0.00 0.62 0.00 0.00 0.00
08:02:50 PM all 99.38 0.00 0.62 0.00 0.00 0.00
08:02:51 PM all 99.13 0.00 0.62 0.00 0.00 0.25
Average: all 99.29 0.00 0.62 0.00 0.00 0.08
[root@iam ~]#
输出说明:
- %user ->用户空间的CPU使用
- %nice ->改变过优先级的进程的CPU使用率
- %system ->内核空间的CPU使用率
- %iowait ->CPU等待IO的百分比
- %steal ->虚拟机的虚拟机CPU使用的CPU百分比
- %idle ->空闲的CPU百分比
补充命令lsblk:查看块设备信息
[root@iam ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 199G 0 part
├─centos-root 253:0 0 141.1G 0 lvm /
├─centos-swap 253:1 0 7.9G 0 lvm [SWAP]
└─centos-home 253:2 0 50G 0 lvm /home
sr0 11:0 1 10.3G 0 rom
示例6
进程队列长度和平均负载状态监控
命令及结果:
sar -q 1 3
[root@iam ~]# sar -q 1 3
Linux 3.10.0-1062.el7.x86_64 (iam.zt.chiansec.local) 03/24/2023 _x86_64_ (8 CPU)
08:13:55 PM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
08:13:56 PM 10 1646 14.81 14.96 14.50 0
08:13:57 PM 12 1646 14.81 14.96 14.50 0
08:13:58 PM 16 1646 14.81 14.96 14.50 0
Average: 13 1646 14.81 14.96 14.50 0
[root@iam ~]# sar -q 1 3 |grep Average
Average: 14 1647 15.06 15.01 14.52 0
输出说明:
- runq-sz-> 运行队列的长度(等待运行的进程数,每核的CP不能超过3个)
- plist-sz ->进程列表中的进程(processes)和线程数(threads)的数量
- ldavg-1-> 最后1分钟的CPU平均负载,即将多核CPU过去一分钟的负载相加再除以核心数得出的平均值,5分钟和15分钟以此类推
- ldavg-5-> 最后5分钟的CPU平均负载
- ldavg-15-> 最后15分钟的CPU平均负载
- 每间隔1秒钟统计一次总共统计三次,然后获取平均值:sar -q 1 3 | grep Average
示例7
进程、inode、文件和锁表状态
命令及结果:
sar -v 1 3
[root@iam ~]# sar -v 1 3
Linux 3.10.0-1062.el7.x86_64 (iam.zt.chiansec.local) 03/24/2023 _x86_64_ (8 CPU)
08:20:59 PM dentunusd file-nr inode-nr pty-nr
08:21:00 PM 62377 8128 43935 16
08:21:01 PM 62406 8128 43943 16
08:21:02 PM 62429 8128 43942 16
Average: 62404 8128 43940 16
输入说明:
dentunusd ->在缓冲目录条目中没有使用的条目数量
file-nr -> 被系统使用的文件句柄数量
inode-nr -> 已经使用的索引数量
pty-nr -> 使用的pty数量
示例8
报告显示任务创建和系统切换活动
命令及结果:
sar -w 1 3
[root@iam ~]# sar -w 1 3
Linux 3.10.0-1062.el7.x86_64 (iam.zt.chiansec.local) 03/24/2023 _x86_64_ (8 CPU)
08:31:16 PM proc/s cswch/s
08:31:17 PM 4.00 4906.00
08:31:18 PM 7.00 4365.00
08:31:19 PM 32.67 5612.87
Average: 14.62 4963.46
输出说明:
- proc/s -> 每秒创建的任务总数
- cswch/s -> 每秒上下文切换的总数
示例9
显示内存使用率
命令及结果:
sar -r 1 3
[root@iam ~]# sar -r 1 3
Linux 3.10.0-1062.el7.x86_64 (iam.zt.chiansec.local) 03/24/2023 _x86_64_ (8 CPU)
08:38:47 PM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
08:38:48 PM 383492 15882476 97.64 1068 5492368 27685344 112.89 5152456 10027096 512
08:38:49 PM 382264 15883704 97.65 1068 5492596 27685856 112.90 5152924 10027288 524
08:38:50 PM 377936 15888032 97.68 1068 5496476 27685852 112.90 5153032 10031188 528
Average: 381231 15884737 97.66 1068 5493813 27685684 112.89 5152804 10028524 521
[root@iam ~]# sar -r 1 3|grep Average
Average: 230108 16035860 98.59 1068 5290705 27674264 112.85 5407708 9939421 396
输出说明:
- kbmemfree -> 空闲的物理内存大小
- kbmemused -> 使用中的物理内存大小
- %memused ->物理内存使用率
- kbbuffers-> 内核中作为缓冲区使用的物理内存大小,kbbuffers和kbcached:这两个值就是free命令中的buffer和cache.
- kbcached ->缓存的文件大小
- kbcommit -> 保证当前系统正常运行所需要的最小内存,即为了确保内存不溢出而需要的最少内存(物理内存+Swap分区)
- %commit-> 这个值是kbcommit与内存总量(物理内存+swap分区)的一个百分比的值
- kbactive -> 活动内存量(以KB为单位)(最近使用过且通常不会被回收,除非绝对必要)
- kbinact ->以KB为单位的非活动内存量(较早以前使用过。它更适合被回收以用于其他目的)
- kbdirty -> 等待写回磁盘的内存量(KB)
- 每间隔1秒钟统计一次总共统计三次,然后获取平均值:sar -r 1 3 | grep Average
示例10
网络统计
命令及结果:
sar -n DEV 1 3
[root@iam ~]# sar -n DEV 1 3
Linux 3.10.0-1062.el7.x86_64 (iam.zt.chiansec.local) 03/24/2023 _x86_64_ (8 CPU)
09:00:45 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
09:00:46 PM tun0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
09:00:46 PM ens192 535.00 576.00 60.91 2322.23 0.00 0.00 0.00
09:00:46 PM lo 30.00 30.00 4.32 4.32 0.00 0.00 0.00
09:00:46 PM veth430ffcb 0.00 0.00 0.00 0.00 0.00 0.00 0.00
09:00:46 PM docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
09:00:46 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
09:00:47 PM tun0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
09:00:47 PM ens192 539.60 548.51 58.34 2263.20 0.00 0.00 0.00
09:00:47 PM lo 2.97 2.97 0.18 0.18 0.00 0.00 0.00
09:00:47 PM veth430ffcb 0.00 0.00 0.00 0.00 0.00 0.00 0.00
09:00:47 PM docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
09:00:47 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
09:00:48 PM tun0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
09:00:48 PM ens192 565.00 601.00 65.85 2511.41 0.00 0.00 0.00
09:00:48 PM lo 4.00 4.00 0.20 0.20 0.00 0.00 0.00
09:00:48 PM veth430ffcb 0.00 0.00 0.00 0.00 0.00 0.00 0.00
09:00:48 PM docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
Average: tun0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: ens192 546.51 575.08 61.69 2365.27 0.00 0.00 0.00
Average: lo 12.29 12.29 1.56 1.56 0.00 0.00 0.00
Average: veth430ffcb 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
输出说明:
- IFACE -> 本地网卡接口的名称
- rxpck/s -> 每秒钟接受的数据包
- txpck/s -> 每秒钟发送的数据库
- rxKB/S -> 每秒钟接受的数据包大小,单位为KB
- txKB/S -> 每秒钟发送的数据包大小,单位为KB
- rxcmp/s -> 每秒钟接受的压缩数据包
- txcmp/s -> 每秒钟发送的压缩包
- rxmcst/s -> 每秒钟接收的多播数据包
其他示例11
可以把上面的输出的报告信息保存到一个二进制文件里,把二进制文件通过sadf命令转换成数据库可读的格式如csv的格式文件,方便出图标统计。
如:
输出统计的数据信息
命令
sar -o cpu.log -u 1 3
[root@iam ~]# sar -o cpu.log -u 1 3
Linux 3.10.0-1062.el7.x86_64 (iam.zt.chiansec.local) 03/24/2023 _x86_64_ (8 CPU)
09:26:01 PM CPU %user %nice %system %iowait %steal %idle
09:26:02 PM all 99.50 0.00 0.37 0.00 0.00 0.12
09:26:03 PM all 99.00 0.00 0.50 0.00 0.00 0.50
09:26:04 PM all 99.38 0.00 0.62 0.00 0.00 0.00
Average: all 99.29 0.00 0.50 0.00 0.00 0.21
```bash
[root@iam ~]# sadf -d cpu.log
hostname;interval;timestamp;CPU;%user;%nice;%system;%iowait;%steal;%idle
iam.zt.chiansec.local;1;2023-03-24 13:24:27 UTC;-1;99.63;0.00;0.37;0.00;0.00;0.00
iam.zt.chiansec.local;1;2023-03-24 13:24:28 UTC;-1;99.62;0.00;0.38;0.00;0.00;0.00
iam.zt.chiansec.local;1;2023-03-24 13:24:29 UTC;-1;99.25;0.00;0.62;0.00;0.00;0.12
iam.zt.chiansec.local;92;2023-03-24 13:26:01 UTC;-1;99.43;0.00;0.47;0.00;0.00;0.09
iam.zt.chiansec.local;1;2023-03-24 13:26:02 UTC;-1;99.50;0.00;0.37;0.00;0.00;0.12
iam.zt.chiansec.local;1;2023-03-24 13:26:03 UTC;-1;99.00;0.00;0.50;0.00;0.00;0.50
iam.zt.chiansec.local;1;2023-03-24 13:26:04 UTC;-1;99.38;0.00;0.62;0.00;0.00;0.00
[root@iam ~]# sadf -d cpu.log |sed 's/;/,/g' >cpu.csv
[root@iam ~]#
其他示例12
从数据文件读取信息
命令:
sar -f cpu.log
[root@iam ~]# sadf -d cpu.log |sed 's/;/,/g' >cpu.csv
[root@iam ~]# sar -f cpu.log
Linux 3.10.0-1062.el7.x86_64 (iam.zt.chiansec.local) 03/24/2023 _x86_64_ (8 CPU)
09:24:26 PM CPU %user %nice %system %iowait %steal %idle
09:24:27 PM all 99.63 0.00 0.37 0.00 0.00 0.00
09:24:28 PM all 99.62 0.00 0.38 0.00 0.00 0.00
09:24:29 PM all 99.25 0.00 0.62 0.00 0.00 0.12
09:26:01 PM all 99.43 0.00 0.47 0.00 0.00 0.09
09:26:02 PM all 99.50 0.00 0.37 0.00 0.00 0.12
09:26:03 PM all 99.00 0.00 0.50 0.00 0.00 0.50
09:26:04 PM all 99.38 0.00 0.62 0.00 0.00 0.00
Average: all 99.43 0.00 0.47 0.00 0.00 0.10
用于排查性能常用的命令
CPU瓶颈:sar -u 和sar -q等
内存瓶颈:sar -B、sar -r、sar -W等
I/O瓶颈:sar -b、sar -u、sar -d 等
- 点赞
- 收藏
- 关注作者
评论(0)