Linux sar命令详解之分析系统性能案例
程序员文章站
2022-06-18 11:07:28
Linux sar命令详解之分析系统性能案例这篇文章主要介绍了Linux sar命令详解之分析系统性能案例,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下... 21-09-03...
sar 命令很强大,是分析系统性能的重要工具之一,通过该命令可以全面地获取系统的 cpu、运行队列、磁盘读写(i/o)、分区(交换区)、内存、cpu 中断和网络等性能数据。
sar 命令的基本格式如下:
[root@localhost ~]# sar [options] [-o filename] interval [count]
此命令格式中,各个参数的含义如下:
- -o filename:其中,filename 为文件名,此选项表示将命令结果以二进制格式存放在文件中;
- interval:表示采样间隔时间,该参数必须手动设置;
- count:表示采样次数,是可选参数,其默认值为 1;
- options:为命令行选项,由于 sar 命令提供的选项很多,这里不再一一介绍,仅列举出常用的一些选项及对应的功能,如表 1 所示。
sar命令选项 | 功能 |
---|---|
-a | 显示系统所有资源设备(cpu、内存、磁盘)的运行状况。 |
-u | 显示系统所有 cpu 在采样时间内的负载状态。 |
-p | 显示当前系统中指定 cpu 的使用情况。 |
-d | 显示系统所有硬盘设备在采样时间内的使用状态。 |
-r | 显示系统内存在采样时间内的使用情况。 |
-b | 显示缓冲区在采样时间内的使用情况。 |
-v | 显示 inode 节点、文件和其他内核表的统计信息。 |
-n | 显示网络运行状态,此选项后可跟 dev(显示网络接口信息)、edev(显示网络错误的统计数据)、sock(显示套接字信息)和 full(等同于使用 dev、edev和sock)等,有关更多的选项,可通过执行 man sar 命令查看。 |
-q | 显示运行列表中的进程数、进程大小、系统平均负载等。 |
-r | 显示进程在采样时的活动情况。 |
-y | 显示终端设备在采样时间的活动情况。 |
-w | 显示系统交换活动在采样时间内的状态。 |
有关 sar 命令更多可用的选项及功能,可通过执行 man sar 命令查看。
【例 1】
如果想要查看系统 cpu 的整理负载状况,每 3 秒统计一次,统计 5 次,可以执行如下命令:
[root@localhost ~]# sar -u 3 5 linux 2.6.32-431.el6.x86_64 (localhost) 10/25/2019 _x86_64_ (1 cpu) 06:18:23 am cpu %user %nice %system %iowait %steal %idle 06:18:26 am all 12.11 0.00 2.77 3.11 0.00 82.01 06:18:29 am all 6.55 0.00 2.07 0.00 0.00 91.38 06:18:32 am all 6.60 0.00 2.08 0.00 0.00 91.32 06:18:35 am all 10.21 0.00 1.76 0.00 0.00 88.03 06:18:38 am all 8.71 0.00 1.74 0.00 0.00 89.55 average: all 8.83 0.00 2.09 0.63 0.00 88.46
此输出结果中,各个列表项的含义分别如下:
- %user:用于表示用户模式下消耗的 cpu 时间的比例;
- %nice:通过 nice 改变了进程调度优先级的进程,在用户模式下消耗的 cpu 时间的比例;
- %system:系统模式下消耗的 cpu 时间的比例;
- %iowait:cpu 等待磁盘 i/o 导致空闲状态消耗的时间比例;
- %steal:利用 xen 等操作系统虚拟化技术,等待其它虚拟 cpu 计算占用的时间比例;
- %idle:cpu 空闲时间比例。
【例 2】
如果想要查看系统磁盘的读写性能,可执行如下命令:
[root@localhost ~]# sar -d 3 5 linux 2.6.32-431.el6.x86_64 (localhost) 10/25/2019 _x86_64_ (1 cpu) 06:36:52 am dev tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 06:36:55 am dev8-0 3.38 0.00 502.26 148.44 0.08 24.11 4.56 1.54 06:36:55 am dev tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 06:36:58 am dev8-0 1.49 0.00 29.85 20.00 0.00 1.75 0.75 0.11 06:36:58 am dev tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 06:37:01 am dev8-0 68.26 6.96 53982.61 790.93 3.22 47.23 3.54 24.17 06:37:01 am dev tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 06:37:04 am dev8-0 111.69 3961.29 154.84 36.85 1.05 9.42 3.44 38.43 06:37:04 am dev tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 06:37:07 am dev8-0 1.67 136.00 2.67 83.20 0.01 6.20 6.00 1.00 average: dev tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util average: dev8-0 34.45 781.10 9601.22 301.36 0.78 22.74 3.50 12.07
此输出结果中,各个列表头的含义如下:
- tps:每秒从物理磁盘 i/o 的次数。注意,多个逻辑请求会被合并为一个 i/o 磁盘请求,一次传输的大小是不确定的;
- rd_sec/s:每秒读扇区的次数;
- wr_sec/s:每秒写扇区的次数;
- avgrq-sz:平均每次设备 i/o 操作的数据大小(扇区);
- avgqu-sz:磁盘请求队列的平均长度;
- await:从请求磁盘操作到系统完成处理,每次请求的平均消耗时间,包括请求队列等待时间,单位是毫秒(1 秒=1000 毫秒);
- svctm:系统处理每次请求的平均时间,不包括在请求队列中消耗的时间;
- %util:i/o 请求占 cpu 的百分比,比率越大,说明越饱和。
除此之外,如果想要查看系统内存使用情况,可以执行sar -r 5 3命令;如果要想查看网络运行状态,可执行sar -n dev 5 3命令,等等。有关其它参数的用法,这里不再给出具体实例,有兴趣的读者可自行测试,观察运行结果。
到此这篇关于linux sar命令详解之分析系统性能案例的文章就介绍到这了,更多相关linux sar命令内容请搜索以前的文章或继续浏览下面的相关文章,希望大家以后多多支持!