sar命令简介


发布于 2016-07-02 / 35 阅读 / 0 评论 /
sar命令是一个非常实用的工具,用于监控和分析Linux系统上的各种性能指标。它由sysstat工具提供,能够提供关于系统活动的详细报告,包括CPU使用情况、内存使用、磁盘I/O、网络等性能数据。

sar是sysstat包提供的命令,如果要使用sar命令,则需先安装sysstat工具。而如果要通过sar查看历史统计数据,则需先启动sysstat。

sysstat服务安装:yum install -y sysstat

sysstat配置文件:/etc/sysconfig/sysstat

sysstat服务启动:systemctl start sysstat

sar命令行格式:sar [options] [interval [count]]

如果无interval参数,则展示历史统计信息;如果有,则展示当前状态信息。

interval以秒为单位。

sar的日志文件保存在/var/log/sa/目录下。

1.CPU使用情况

命令:sar -u [-P {<cpu id> [,…] | ALL}] [interval [count]]

此命令展示的信息如下:

(1)CPU:CPU标识符,all表示平均。

(2)%user:用户空间的CPU使用率。

(3)%nice:改变过优先级的进程的CPU使用率。

(4)%system:内核空间的CPU使用率。

(5)%iowait:CPU等待IO的时间百分比。

(6)%steal:虚拟机的CPU使用占宿主机的比例。

(7)%idle:空闲的CPU的时间比例。

2.系统负载

命令:sar -q [interval [count]]

展示信息如下:

(1)runq-sz:运行队列的进程数

(2)plist-sz:进程列表中的进程和线程的数量

(3)ldavg-1:最近1分钟CPU平均负载

(4)ldavg-5:最近5分钟CPU平均负载

(5)ldavg-15:最近15分钟CPU平均负载

(6)blocked:当前阻塞的进程数

3.内存使用情况

命令:sar -r [interval [count]]

展示的信息如下(内存单位为KB):

(1)kbmemfree:空闲的物理内存大小

(2)kbmemused:已用物理内存大小

(3)%memused:已用物理内存的比率

(4)kbbuffers:内核中作为缓冲区的物理内存大小

(5)kbcached:缓存的文件大小

(6)kbcommit:保证当前系统正常运行所需的最小内存

(7)commit:kbcommit与内存总量(物理内存+Swap分区)的百分比

(8)kbactive:活跃的内存大小

(9)kbinact:不活跃的内存大小

(10)kbdirty:等待写入磁盘的内存大小

4.磁盘IO统计

命令:sar -d [interval [count]]

展示的信息如下:

(1)DEV:磁盘设备名称

(2)tps:每秒物理磁盘I/O发生的次数

(3)rd_sec/s:每秒读扇区的次数

(4)wr_sec/s:每秒写扇区的次数

(5)avgrq-sz:平均每次设备I/O操作的数据大小(扇区)

(6)avgqu-sz:磁盘请求队列的平均长度

(7)await:从请求磁盘操作到系统完成处理,每次请求的平均消耗时间,包括请求队列等待时间,毫秒。

(8)svctm:系统处理每次请求的平均时间,不包括在请求队列中消耗的时间。

(9)%util:I/O请求时间占CPU的百分比

通过“cat /proc/partitions”命令可查看磁盘分区情况。通过major和minor字段组合成设备名称。

5.网络IO统计

命令:sar -n {<keyword> [,…] | ALL} [interval [count]]

keyword有以下取值:

(1)DEV:显示网络接口信息

(2)EDEV:显示网络错误的统计数据

(3)NFS:统计活动的NFS客户端信息

(4)NFSD:统计NFS服务器的信息

(5)SOCK:套接字信息

(6)ALL:以上所有

5.1.DEV信息

主要有以下字段信息。

(1)IFACE:LAN接口网络设备的名称;

(2)rxpck/s:每秒钟接收的数据包;

(3)txpck/s:每秒钟发送的数据包;

(4)rxkB/s:每秒钟接收的字节数;

(5)txkB/s:每秒钟发送的字节数;

(6)rxcmp/s:每秒钟接收的压缩数据包;

(7)txcmp/s:每秒钟发送的压缩数据包;

(8)rxmcst/s:每秒钟接收的多播数据包; ● ●

5.2.EDEV信息

主要有以下字段信息。

(1)IFACE:LAN接口网络设备的名称;

(2)rxerr/s:每秒钟接收的坏数据包;

(3)txerr/s:每秒钟发送的坏数据包;

(4)coll/s:每秒冲突数;

(5)rxdrop/s:因为缓冲充满,每秒钟丢弃的已接收数据包数;

(6)txdrop/s:因为缓冲充满,每秒钟丢弃的已发送数据包数;

(7)txcarr/s:发送数据包时,每秒载波错误数;

(8)rxfram/s:每秒接收数据包的帧对齐错误数;

(9)rxfifo/s:接收的数据包每秒FIFO过速的错误数;

(10)txfifo/s:发送的数据包每秒FIFO过速的错误数

5.3.SOCK信息

主要有以下字段信息。

(1)totsck:使用的套接字总数量;

(2)tcpsck:使用的TCP套接字数量;

(3)udpsck:使用的UDP套接字数量;

(3)rawsck:使用的RAW套接字数量;

(5)ip-frag:当前的IP分片的数目;

(6)tcp-tw:TCP套接字中处于TIME-WAIT状态的连接数量

6.系统swap分区统计

命令:sar -W [interval [count]]

interval以秒为单位。

展示的信息如下:

(1)pswpin/s:每秒从swap到系统的交换页面(swap page)数量

(2)pswpott/s:每秒从系统交换到swap的交换页面(swap page)数量

7.IO和传递速率统计

命令:sar -b [interval [count]]

展示的信息如下:

(1)tps:磁盘每秒IO总数

(2)rtps:每秒从磁盘读取的IO数量

(3)wtps:每秒写入到磁盘的IO数量

(4)bread/s:每秒从磁盘读取的块总数

(5)bwrtn/s:每秒写入磁盘的块总数

8.统计结果保存到文件

一般来说,如果启动了sysstat,则会自动把信息输出到/var/log/sa目录下(可根据sysstat配置进行修改)。

保存命令:sar [options] -o <filename>

查看命令:sar -f <filename>

读取sar日志文件命令案例:sar -r -f /var/log/sa/sa04