Linux工具之sar
阅读原文时间:2023年07月10日阅读:1

1、sar简介

sar(System Activity Reporter 系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,

包括:文件的读写情况、系统调用的使用情况、磁盘 I/O、CPU 效率、内存使用状况、进程活动及 IPC 有关的活动等。

2、语法参数

sar [options] [-A] [-o file] t [n]

其中:

t为采样间隔,n为采样次数,默认值是1;

-o file表示将命令结果以二进制格式存放在文件中,file 是文件名。

options 为命令行选项,sar命令常用选项如下:

.png)

-A:所有报告的总和

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

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

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

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

-b:显示I/O和传送速率的统计信息

-a:文件读写情况

-c:输出进程统计信息,每秒创建的进程数

-R:输出内存页面的统计信息

-y:终端设备活动情况

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

3、CPU资源监控

每10秒采样一次,连续采样3次,观察CPU 的使用情况,并将采样结果以二进制形式存入当前目录下的文件3.test中,需键入如下命令:

.png)

输出项说明:

CPU:all 表示统计信息为所有 CPU 的平均值。

%user:显示在用户级别(application)运行使用 CPU 总时间的百分比。

%nice:显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比。

%system:在核心级别(kernel)运行所使用 CPU 总时间的百分比。

%iowait:显示用于等待I/O操作占用 CPU 总时间的百分比。

%steal:管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。

%idle:显示 CPU 空闲时间占用 CPU 总时间的百分比。

1)若 %iowait 的值过高,表示硬盘存在I/O瓶颈

2)若 %idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量

3) 若 %idle 的值持续低于1,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU 。

如果要查看二进制文件test中的内容,需键入如下sar命令:

sar -u -f test

4、内存和交换空间监控

例如,每10秒采样一次,连续采样3次,监控内存分页:

sar -r 10 3

.png)

输出项说明:

kbmemfree:这个值和free命令中的free值基本一致,所以它不包括buffer和cache的空间.

kbmemused:这个值和free命令中的used值基本一致,所以它包括buffer和cache的空间.

%memused:这个值是kbmemused和内存总量(不包括swap)的一个百分比.

kbbuffers和kbcached:这两个值就是free命令中的buffer和cache.

kbcommit:保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM+swap).

%commit:这个值是kbcommit与内存总量(包括swap)的一个百分比.

5、内存分页监控

例如,每10秒采样一次,连续采样3次,监控内存分页:

sar -B 10 3

.png)

输出项说明:

pgpgin/s:表示每秒从磁盘或SWAP置换到内存的字节数(KB)

pgpgout/s:表示每秒从内存置换到磁盘或SWAP的字节数(KB)

fault/s:每秒钟系统产生的缺页数,即主缺页与次缺页之和(major + minor)

majflt/s:每秒钟产生的主缺页数.

pgfree/s:每秒被放入空闲队列中的页个数

pgscank/s:每秒被kswapd扫描的页个数

pgscand/s:每秒直接被扫描的页个数

pgsteal/s:每秒钟从cache中被清除来满足内存需要的页个数

%vmeff:每秒清除的页(pgsteal)占总扫描页(pgscank+pgscand)的百分比

6、I/O和传送速率监控

例如,每10秒采样一次,连续采样3次,报告缓冲区的使用情况,需键入如下命令:

sar -b 10 3

.png)

输出项说明:

tps:每秒钟物理设备的 I/O 传输总量

rtps:每秒钟从物理设备读入的数据总量

wtps:每秒钟向物理设备写入的数据总量

bread/s:每秒钟从物理设备读入的数据量,单位为 块/s

bwrtn/s:每秒钟向物理设备写入的数据量,单位为 块/s

7、系统交换活动信息监控

.png)

输出项说明:

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

pswpout/s:每秒系统换出的交换页面(swap page)数量

8、查看磁盘I/O信息

sar  -d 查看全天

sar  -d  1 2 (每隔1秒,查看2次)

9、sar -n #统计网络信息

-n DEV : 网络接口统计信息

-n EDEV : 网络接口错误

-n IP : IP数据报统计信息

-n EIP : IP错误统计信息

-n TCP : TCP统计信息

-n ETCP : TCP错误统计信息

-n SOCK : 套接字使用

sar -n DEV 1 1: 每间隔1秒统计一次,总计统计1次,下面的average是在多次统计后的平均值

.png)

#IFACE 本地网卡接口的名称

#rxpck/s 每秒钟接受的数据包

#txpck/s 每秒钟发送的数据库

#rxKB/S 每秒钟接受的数据包大小,单位为KB

#txKB/S 每秒钟发送的数据包大小,单位为KB

#rxcmp/s 每秒钟接受的压缩数据包

#txcmp/s 每秒钟发送的压缩包

#rxmcst/s 每秒钟接收的多播数据包  

sar -n EDEV  1 1  #统计网络设备通信失败信息:

.png)

#IFACE 网卡名称

#rxerr/s 每秒钟接收到的损坏的数据包

#txerr/s 每秒钟发送的数据包错误数

#coll/s 当发送数据包时候,每秒钟发生的冲撞(collisions)数,这个是在半双工模式下才有

#rxdrop/s 当由于缓冲区满的时候,网卡设备接收端每秒钟丢掉的网络包的数目

#txdrop/s 当由于缓冲区满的时候,网络设备发送端每秒钟丢掉的网络包的数目

#txcarr/s  当发送数据包的时候,每秒钟载波错误发生的次数

#rxfram   在接收数据包的时候,每秒钟发生的帧对其错误的次数

#rxfifo    在接收数据包的时候,每秒钟缓冲区溢出的错误发生的次数

#txfifo    在发生数据包 的时候,每秒钟缓冲区溢出的错误发生的次数

sar -n SOCK 1 1  #统计socket连接信息

.png)

#totsck 当前被使用的socket总数

#tcpsck 当前正在被使用的TCP的socket总数

#udpsck  当前正在被使用的UDP的socket总数

#rawsck 当前正在被使用于RAW的skcket总数

#if-frag  当前的IP分片的数目

#tcp-tw TCP套接字中处于TIME-WAIT状态的连接数量

########如果你使用FULL关键字,相当于上述DEV、EDEV和SOCK三者的综合 

sar -n TCP 1 3 #TCP连接的统计

.png)

#active/s 新的主动连接

#passive/s 新的被动连接

#iseg/s 接受的段

#oseg/s 输出的段

10、磁盘设备使用情况

例如,每10秒采样一次,连续采样3次,报告设备使用情况,需键入如下命令:

# sar -d 10 3 –p

.png)

参数-p可以打印出sda,hdc等磁盘设备名称,如果不用参数-p,设备节点则有可能是dev8-0,dev22-0

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的百分比,比率越大,说明越饱和.

1. avgqu-sz 的值较低时,设备的利用率较高。

2. 当%util的值接近 1% 时,表示设备带宽已经占满。

11、 常用命令汇总,因版本和平台不同,有部分命令可能没有或显示结果不一致

默认监控: 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)

热门专题

delphi 发送按键

debugview使用教程

android 开机流程什么时候发开机广播

mysql workbench windows安装

beyond compare 和winmerge哪个好用

ip地址excel排序

elipse 一直building

select 时间变字符串

android 摄像头

正则表达式 是否为空怎么判断

unity rectmask2d用法

EBS支持移动加权成本吗

hexo next更改透明度

Unity中Socket和多线程

spring initializer生成的war包能部署吗

pointFeature设置图片

Unity event trigger 设置false

js判断时间戳是否合法

tensorflow调用优化器命令

c#yield函数怎么用

Home

Powered By WordPress

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章