新闻动态
新闻动态
NEWS INFORMATION

Linux sar命令详解之分析系统性能案例

发布日期:2021-12-17 19:56 | 文章来源:源码之家

sar 命令很强大,是分析系统性能的重要工具之一,通过该命令可以全面地获取系统的 CPU、运行队列、磁盘读写(I/O)、分区(交换区)、内存、CPU 中断和网络等性能数据。

sar 命令的基本格式如下:

[root@localhost ~]# sar [options] [-o filename] interval [count]

此命令格式中,各个参数的含义如下:

  • -o filename:其中,filename 为文件名,此选项表示将命令结果以二进制格式存放在文件中;
  • interval:表示采样间隔时间,该参数必须手动设置;
  • count:表示采样次数,是可选参数,其默认值为 1;
  • options:为命令行选项,由于 sar 命令提供的选项很多,这里不再一一介绍,仅列举出常用的一些选项及对应的功能,如表 1 所示。

表 1 sar 命令行选项及功能
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.110.002.773.110.00  82.01
06:18:29 AM  all6.550.002.070.000.00  91.38
06:18:32 AM  all6.600.002.080.000.00  91.32
06:18:35 AM  all  10.210.001.760.000.00  88.03
06:18:38 AM  all8.710.001.740.000.00  89.55
Average:  all8.830.002.090.630.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-03.380.00 502.26 148.440.08  24.114.561.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-01.490.00  29.85  20.000.001.750.750.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.266.96  53982.61 790.933.22  47.233.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.693961.29 154.84  36.851.059.423.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-01.67 136.002.67  83.200.016.206.001.00
Average: DEV tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz  await  svctm  %util
Average: dev8-0  34.45 781.109601.22 301.360.78  22.743.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命令内容请搜索本站以前的文章或继续浏览下面的相关文章,希望大家以后多多支持本站!

版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。

实时开通

自选配置、实时开通

免备案

全球线路精选!

全天候客户服务

7x24全年不间断在线

专属顾问服务

1对1客户咨询顾问

在线
客服

在线客服:7*24小时在线

客服
热线

400-630-3752
7*24小时客服服务热线

关注
微信

关注官方微信
顶部