专栏
天翼云开发者社区

Sar命令学习

2024-02-28 15:23:23 31阅读

1. 概述

sar是非常全面的分析工具,可分析文件读写、系统调用使用情况、磁盘IO、CPU相关使用情况、内存使用情况、进程活动等。

特点:可连续进行系统采样,获取大量的取样数据,取样数据和分析结果可存入文件,使用时消耗资源较少。

[root@3w-master-az2 ~]# sar --help
Usage: sar [ options ] [ <interval> [ <count> ] ]
Main options and reports (report name between square brackets):
	-B	Paging statistics [A_PAGE]
	-b	I/O and transfer rate statistics [A_IO]
	-d	Block devices statistics [A_DISK]
	-F [ MOUNT ]
		Filesystems statistics [A_FS]
	-H	Hugepages utilization statistics [A_HUGE]
	-I { <int_list> | SUM | ALL }
		Interrupts statistics [A_IRQ]
	-m { <keyword> [,...] | ALL }
		Power management statistics [A_PWR_...]
		Keywords are:
		CPU	CPU instantaneous clock frequency
		FAN	Fans speed
		FREQ	CPU average clock frequency
		IN	Voltage inputs
		TEMP	Devices temperature
		USB	USB devices plugged into the system
	-n { <keyword> [,...] | ALL }
		Network statistics [A_NET_...]
		Keywords are:
		DEV	Network interfaces
		EDEV	Network interfaces (errors)
		NFS	NFS client
		NFSD	NFS server
		SOCK	Sockets	(v4)
		IP	IP traffic	(v4)
		EIP	IP traffic	(v4) (errors)
		ICMP	ICMP traffic	(v4)
		EICMP	ICMP traffic	(v4) (errors)
		TCP	TCP traffic	(v4)
		ETCP	TCP traffic	(v4) (errors)
		UDP	UDP traffic	(v4)
		SOCK6	Sockets	(v6)
		IP6	IP traffic	(v6)
		EIP6	IP traffic	(v6) (errors)
		ICMP6	ICMP traffic	(v6)
		EICMP6	ICMP traffic	(v6) (errors)
		UDP6	UDP traffic	(v6)
		FC	Fibre channel HBAs
		SOFT	Software-based network processing
	-q	Queue length and load average statistics [A_QUEUE]
	-r [ ALL ]
		Memory utilization statistics [A_MEMORY]
	-S	Swap space utilization statistics [A_MEMORY]
	-u [ ALL ]
		CPU utilization statistics [A_CPU]
	-v	Kernel tables statistics [A_KTABLES]
	-W	Swapping statistics [A_SWAP]
	-w	Task creation and system switching statistics [A_PCSW]
	-y	TTY devices statistics [A_SERIAL]

-A:所有报告的总和

-n:统计网络信息

-u:输出CPU使用情况的统计信息

-v:输出inode、文件和其他内核表的统计信息

-d:输出每一个块设备的活动信息

-r:输出内存和交换空间的统计信息

-b:显示I/O和传送速率的统计信息-R:输出内存页面的统计信息

-y:终端设备活动情况

-w:输出系统交换活动信息

-B:显示换页状态;

-e:设置显示报告的结束时间

-f:从指定文件提取报告

-i:设状态信息刷新的间隔时间

-p:报告每个CPU的状态-q:平均负载分析

使用方式:

sar [options] [-A] [-o file] [ <interval> [ <count> ] ]
其中:interval为采样间隔,count为采样次数,默认值是1; -o file表示将命令结果以二进制格式存放在文件中,file 是文件名

2. 统计内存使用情况

每隔两秒查看一次内存信息,共五次

sar -r 2 5

kbmemfree 空闲的物理内存大小

kbavail 可立即分配进程的内存大小
kbmemused 使用中的物理内存大小
%memused 物理内存使用率
kbbuffers 内核中作为缓冲区使用的物理内存大小,kbbuffers和kbcached:这两个值就是free命令中的buffer和cache.
kbcached 缓存的文件大小
kbcommit 保证当前系统正常运行所需要的最小内存,即为了确保内存不溢出而需要的最少内存(物理内存+Swap分区)
commit 这个值是kbcommit与内存总量(物理内存+swap分区)的一个百分比的值

free和available在内存含义上有些区别。

Free内存:这是系统中完全未被使用的内存数量。它是系统中真正可用的、没有被任何进程使用的内存。

Available内存:这是系统中可以立即分配给进程的内存数量。它包括free内存和一部分被缓存的内存。available = free + buff/chche(部分可以被释放的缓存)。

-o使用方法:

sar -o /tmp/sar_cpu.txt -r 2 5

以二进制格式将分析对象结果存入到test.txt文件中,不能使用cat、more、less等查看。

查看二进制结果文件

sar -r -f /tmp/sar_cpu.txt

3. 统计CPU使用情况

每隔两秒查看一次cpu信息,共五次

sar -u 2 5

%user #用户空间的CPU使用
%nice 改变过优先级的进程的CPU使用率
%system 内核空间的CPU使用率
%iowait CPU等待IO的百分比
%steal 虚拟机的虚拟机CPU使用的CPU
%idle 空闲的CPU
在以上的显示当中,主要看%iowait和%idle,%iowait过高表示存在I/O瓶颈,即磁盘IO无法满足业务需求,如果%idle过低表示CPU使用率比较严重,需要结合内存使用等情况判断CPU是否瓶颈。

4. 统计磁盘IO使用情况

每隔两秒查看一次磁盘IO情况,共五次

sar -b 2 5

tps 磁盘每秒钟的IO总数,等于iostat中的tps
rtps 每秒钟从磁盘读取的IO总数
wtps 每秒钟从写入到磁盘的IO总数
bread/s 每秒钟从磁盘读取的块总数
bwrtn/s 每秒钟此写入到磁盘的块总数

5. 统计磁盘使用情况

每隔两秒查看一次磁盘使用情况,共五次

sar -d 2 5

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越慢

6. 网络使用分析

sar -n 可用于统计网络信息

sar -n有6个不同的开关,DEV显示网络接口信息,EDEV显示关于网络错误的统计数据,NFS统计活动的NFS客户端的信息,NFSD统计NFS服务器的信息,SOCK显示套接字信息,ALL显示所有5个开关。它们可以单独或者一起使用。

6.1. DEV网络接口信息

每隔两秒查看一次网络接口信息使用情况,共3次

sar -n DEV 2 3

#IFACE 本地网卡接口的名称
#rxpck/s 每秒钟接受的数据包
#txpck/s 每秒钟发送的数据库
#rxKB/S 每秒钟接受的数据包大小,单位为KB
#txKB/S 每秒钟发送的数据包大小,单位为KB
#rxcmp/s 每秒钟接受的压缩数据包
#txcmp/s 每秒钟发送的压缩包
#rxmcst/s 每秒钟接收的多播数据包

sar -n DEV 命令输出的指标中,没有一个直接对应 iptraf-ng 中 "Total rates" 的指标,因为 "Total rates" 通常指的是总的数据传输速率,包括上传和下载。

  • rxkB/s: 表示每秒接收的数据量(单位为KB),即下载速率。
  • txkB/s: 表示每秒发送的数据量(单位为KB),即上传速率。

要得到总的数据传输速率,你可以简单地将 rxkB/stxkB/s 的值相加,即得到接口每秒传输的总数据量(包含上传和下载)。例如:

Total rates (KB/s) = rxkB/s + txkB/s

6.2. SOCK套接字信息

每隔两秒查看一次网络接口信息使用情况,共3次

sar -n SOCK 2 3

totsck 当前被使用的socket总数
tcpsck 当前正在被使用的TCP的socket总数
udpsck 当前正在被使用的UDP的socket总数
rawsck 当前正在被使用于RAW的skcket总数
if-frag 当前的IP分片的数目
tcp-tw TCP套接字中处于TIME-WAIT状态的连接数量

6.3. ALL综合所有信息

每隔两秒查看一次所有信息使用情况,共3次

sar -n ALL 2 3

7. 常用命令

默认监控: sar 5 5     //  CPU和IOWAIT统计状态 
(1) sar -b 5 5        // IO传送速率
(2) sar -B 5 5        // 页交换速率
(3) sar -c 5 5        // 进程创建的速率
(4) sar -d 5 5        // 块设备的活跃信息
(5) sar -n DEV 5 5    // 网路设备的状态信息
(6) sar -n SOCK 5 5   // SOCK的使用情况
(7) sar -n ALL 5 5    // 所有的网络状态信息
(8) sar -P ALL 5 5    // 每颗CPU的使用状态信息和IOWAIT统计状态 
(9) sar -q 5 5        // 队列的长度(等待运行的进程数)和负载的状态
(10) sar -r 5 5       // 内存和swap空间使用情况
(11) sar -R 5 5       // 内存的统计信息(内存页的分配和释放、系统每秒作为BUFFER使用内存页、每秒被cache到的内存页)
(12) sar -u 5 5       // CPU的使用情况和IOWAIT信息(同默认监控)
(13) sar -v 5 5       // inode, file and other kernel tablesd的状态信息
(14) sar -w 5 5       // 每秒上下文交换的数目
(15) sar -W 5 5       // SWAP交换的统计信息(监控状态同iostat 的si so)
(16) sar -x 2906 5 5  // 显示指定进程(2906)的统计信息,信息包括:进程造成的错误、用户级和系统级用户CPU的占用情况、运行在哪颗CPU上
(17) sar -y 5 5       // TTY设备的活动状态
(18) 将输出到文件(-o)和读取记录信息(-f)
  • 1
  • 1
  • 0
0 评论
0/1000
评论(0) 发表评论
贰拾画生

贰拾画生

13 篇文章 0 粉丝
关注

Sar命令学习

2024-02-28 15:23:23 31阅读

1. 概述

sar是非常全面的分析工具,可分析文件读写、系统调用使用情况、磁盘IO、CPU相关使用情况、内存使用情况、进程活动等。

特点:可连续进行系统采样,获取大量的取样数据,取样数据和分析结果可存入文件,使用时消耗资源较少。

[root@3w-master-az2 ~]# sar --help
Usage: sar [ options ] [ <interval> [ <count> ] ]
Main options and reports (report name between square brackets):
	-B	Paging statistics [A_PAGE]
	-b	I/O and transfer rate statistics [A_IO]
	-d	Block devices statistics [A_DISK]
	-F [ MOUNT ]
		Filesystems statistics [A_FS]
	-H	Hugepages utilization statistics [A_HUGE]
	-I { <int_list> | SUM | ALL }
		Interrupts statistics [A_IRQ]
	-m { <keyword> [,...] | ALL }
		Power management statistics [A_PWR_...]
		Keywords are:
		CPU	CPU instantaneous clock frequency
		FAN	Fans speed
		FREQ	CPU average clock frequency
		IN	Voltage inputs
		TEMP	Devices temperature
		USB	USB devices plugged into the system
	-n { <keyword> [,...] | ALL }
		Network statistics [A_NET_...]
		Keywords are:
		DEV	Network interfaces
		EDEV	Network interfaces (errors)
		NFS	NFS client
		NFSD	NFS server
		SOCK	Sockets	(v4)
		IP	IP traffic	(v4)
		EIP	IP traffic	(v4) (errors)
		ICMP	ICMP traffic	(v4)
		EICMP	ICMP traffic	(v4) (errors)
		TCP	TCP traffic	(v4)
		ETCP	TCP traffic	(v4) (errors)
		UDP	UDP traffic	(v4)
		SOCK6	Sockets	(v6)
		IP6	IP traffic	(v6)
		EIP6	IP traffic	(v6) (errors)
		ICMP6	ICMP traffic	(v6)
		EICMP6	ICMP traffic	(v6) (errors)
		UDP6	UDP traffic	(v6)
		FC	Fibre channel HBAs
		SOFT	Software-based network processing
	-q	Queue length and load average statistics [A_QUEUE]
	-r [ ALL ]
		Memory utilization statistics [A_MEMORY]
	-S	Swap space utilization statistics [A_MEMORY]
	-u [ ALL ]
		CPU utilization statistics [A_CPU]
	-v	Kernel tables statistics [A_KTABLES]
	-W	Swapping statistics [A_SWAP]
	-w	Task creation and system switching statistics [A_PCSW]
	-y	TTY devices statistics [A_SERIAL]

-A:所有报告的总和

-n:统计网络信息

-u:输出CPU使用情况的统计信息

-v:输出inode、文件和其他内核表的统计信息

-d:输出每一个块设备的活动信息

-r:输出内存和交换空间的统计信息

-b:显示I/O和传送速率的统计信息-R:输出内存页面的统计信息

-y:终端设备活动情况

-w:输出系统交换活动信息

-B:显示换页状态;

-e:设置显示报告的结束时间

-f:从指定文件提取报告

-i:设状态信息刷新的间隔时间

-p:报告每个CPU的状态-q:平均负载分析

使用方式:

sar [options] [-A] [-o file] [ <interval> [ <count> ] ]
其中:interval为采样间隔,count为采样次数,默认值是1; -o file表示将命令结果以二进制格式存放在文件中,file 是文件名

2. 统计内存使用情况

每隔两秒查看一次内存信息,共五次

sar -r 2 5

kbmemfree 空闲的物理内存大小

kbavail 可立即分配进程的内存大小
kbmemused 使用中的物理内存大小
%memused 物理内存使用率
kbbuffers 内核中作为缓冲区使用的物理内存大小,kbbuffers和kbcached:这两个值就是free命令中的buffer和cache.
kbcached 缓存的文件大小
kbcommit 保证当前系统正常运行所需要的最小内存,即为了确保内存不溢出而需要的最少内存(物理内存+Swap分区)
commit 这个值是kbcommit与内存总量(物理内存+swap分区)的一个百分比的值

free和available在内存含义上有些区别。

Free内存:这是系统中完全未被使用的内存数量。它是系统中真正可用的、没有被任何进程使用的内存。

Available内存:这是系统中可以立即分配给进程的内存数量。它包括free内存和一部分被缓存的内存。available = free + buff/chche(部分可以被释放的缓存)。

-o使用方法:

sar -o /tmp/sar_cpu.txt -r 2 5

以二进制格式将分析对象结果存入到test.txt文件中,不能使用cat、more、less等查看。

查看二进制结果文件

sar -r -f /tmp/sar_cpu.txt

3. 统计CPU使用情况

每隔两秒查看一次cpu信息,共五次

sar -u 2 5

%user #用户空间的CPU使用
%nice 改变过优先级的进程的CPU使用率
%system 内核空间的CPU使用率
%iowait CPU等待IO的百分比
%steal 虚拟机的虚拟机CPU使用的CPU
%idle 空闲的CPU
在以上的显示当中,主要看%iowait和%idle,%iowait过高表示存在I/O瓶颈,即磁盘IO无法满足业务需求,如果%idle过低表示CPU使用率比较严重,需要结合内存使用等情况判断CPU是否瓶颈。

4. 统计磁盘IO使用情况

每隔两秒查看一次磁盘IO情况,共五次

sar -b 2 5

tps 磁盘每秒钟的IO总数,等于iostat中的tps
rtps 每秒钟从磁盘读取的IO总数
wtps 每秒钟从写入到磁盘的IO总数
bread/s 每秒钟从磁盘读取的块总数
bwrtn/s 每秒钟此写入到磁盘的块总数

5. 统计磁盘使用情况

每隔两秒查看一次磁盘使用情况,共五次

sar -d 2 5

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越慢

6. 网络使用分析

sar -n 可用于统计网络信息

sar -n有6个不同的开关,DEV显示网络接口信息,EDEV显示关于网络错误的统计数据,NFS统计活动的NFS客户端的信息,NFSD统计NFS服务器的信息,SOCK显示套接字信息,ALL显示所有5个开关。它们可以单独或者一起使用。

6.1. DEV网络接口信息

每隔两秒查看一次网络接口信息使用情况,共3次

sar -n DEV 2 3

#IFACE 本地网卡接口的名称
#rxpck/s 每秒钟接受的数据包
#txpck/s 每秒钟发送的数据库
#rxKB/S 每秒钟接受的数据包大小,单位为KB
#txKB/S 每秒钟发送的数据包大小,单位为KB
#rxcmp/s 每秒钟接受的压缩数据包
#txcmp/s 每秒钟发送的压缩包
#rxmcst/s 每秒钟接收的多播数据包

sar -n DEV 命令输出的指标中,没有一个直接对应 iptraf-ng 中 "Total rates" 的指标,因为 "Total rates" 通常指的是总的数据传输速率,包括上传和下载。

  • rxkB/s: 表示每秒接收的数据量(单位为KB),即下载速率。
  • txkB/s: 表示每秒发送的数据量(单位为KB),即上传速率。

要得到总的数据传输速率,你可以简单地将 rxkB/stxkB/s 的值相加,即得到接口每秒传输的总数据量(包含上传和下载)。例如:

Total rates (KB/s) = rxkB/s + txkB/s

6.2. SOCK套接字信息

每隔两秒查看一次网络接口信息使用情况,共3次

sar -n SOCK 2 3

totsck 当前被使用的socket总数
tcpsck 当前正在被使用的TCP的socket总数
udpsck 当前正在被使用的UDP的socket总数
rawsck 当前正在被使用于RAW的skcket总数
if-frag 当前的IP分片的数目
tcp-tw TCP套接字中处于TIME-WAIT状态的连接数量

6.3. ALL综合所有信息

每隔两秒查看一次所有信息使用情况,共3次

sar -n ALL 2 3

7. 常用命令

默认监控: sar 5 5     //  CPU和IOWAIT统计状态 
(1) sar -b 5 5        // IO传送速率
(2) sar -B 5 5        // 页交换速率
(3) sar -c 5 5        // 进程创建的速率
(4) sar -d 5 5        // 块设备的活跃信息
(5) sar -n DEV 5 5    // 网路设备的状态信息
(6) sar -n SOCK 5 5   // SOCK的使用情况
(7) sar -n ALL 5 5    // 所有的网络状态信息
(8) sar -P ALL 5 5    // 每颗CPU的使用状态信息和IOWAIT统计状态 
(9) sar -q 5 5        // 队列的长度(等待运行的进程数)和负载的状态
(10) sar -r 5 5       // 内存和swap空间使用情况
(11) sar -R 5 5       // 内存的统计信息(内存页的分配和释放、系统每秒作为BUFFER使用内存页、每秒被cache到的内存页)
(12) sar -u 5 5       // CPU的使用情况和IOWAIT信息(同默认监控)
(13) sar -v 5 5       // inode, file and other kernel tablesd的状态信息
(14) sar -w 5 5       // 每秒上下文交换的数目
(15) sar -W 5 5       // SWAP交换的统计信息(监控状态同iostat 的si so)
(16) sar -x 2906 5 5  // 显示指定进程(2906)的统计信息,信息包括:进程造成的错误、用户级和系统级用户CPU的占用情况、运行在哪颗CPU上
(17) sar -y 5 5       // TTY设备的活动状态
(18) 将输出到文件(-o)和读取记录信息(-f)
文章来自专栏

朝花夕拾

3 篇文章 1 订阅
0 评论
0/1000
评论(0) 发表评论
  • 1
    点赞
  • 1
    收藏
  • 0
    评论