Linux之sar命令详解

2023-12-29 17:23:05 4439

Linux之sar命令详解

 

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

sar 命令的基本格式如下:


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

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

-o filename:其中,filename 为文件名,此选项表示将命令结果以二进制格式存放在文件中;

interval:表示采样间隔时间,该参数必须手动设置;

count:表示采样次数,是可选参数,其默认值为 1;

options:为命令行选项,由于sar命令提供的选项很多,这里不再一一介绍,仅列举出常用的一些选项及对应的功能,如表所示。

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@lanan ~]# sar -u 3 5

image.png 

此输出结果中,各个列表项的含义分别如下:

%user:用于表示用户模式下消耗的 CPU 时间的比例;

%nice:通过 nice 改变了进程调度优先级的进程,在用户模式下消耗的 CPU 时间的比例;

%system:系统模式下消耗的 CPU 时间的比例;

%iowait:CPU 等待磁盘 I/O 导致空闲状态消耗的时间比例;

%steal:利用 Xen 等操作系统虚拟化技术,等待其它虚拟 CPU 计算占用的时间比例;

%idle:CPU 空闲时间比例。

【例 2】
如果想要查看系统磁盘的读写性能,可执行如下命令:


[root@lanan ~]# sar -d 3 5


image.png 

此输出结果中,各个列表头的含义如下:

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命令,等等


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: