首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux sar 命令

linux sar 命令

作者头像
用户5807183
发布2019-09-25 17:04:07
3.3K0
发布2019-09-25 17:04:07
举报
文章被收录于专栏:Linux知识积累Linux知识积累

一、命令使用介绍

sar命令全称 System Activity Report,它非常全能,可以分析linux系统各个维度的指标。包括:

文件的读写情况

系统调用的使用情况

磁盘I/O

CPU效率

内存使用状况(包括内存页面的置换)

进程活动

IPC有关的活动

网卡相关信息

他的命令常用格式如下:

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

其中t为采样间隔,n为采样次数,默认值是1;-o file表示将命令结果以二进制格式存放在文件中,file是文件名;options为命令行选项,sar常用的选项有以下(主要各个维度的对应参数信息):

-A:所有报告的总和

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

-q:输出cpu等待队列的长度相关统计信息

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

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

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

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

-a:文件读写情况

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

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

-y:终端设备活动情况

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

二、系统各个维度的性能分析

1、CPU相关指标

和CPU相关的指标的参数主要有 -P、-u、-q。

1.1、 -P 或者 -u 输出CPU使用情况的统计信息

其中-u是输出cpu总的相关性能指标,-P可以指定输出某一个cpu的指标(会把cpu一个个列出来)

# 获取cpu的一个总的信息(默认就是-u)
sar 2 2 
sar -u 2 2
# 输出更详细一些的报表
sar -u ALL 2 2
# 获取某一个cpu的信息
sar -P 1 2 2
# 获取所有cpu的信息
sar -P ALL 22

输出:

03:47:05 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
03:47:07 PM     all      3.88      0.00      0.19      0.06      0.00     95.87
03:47:09 PM     all      4.06      0.00      0.22      0.11      0.00     95.61
Average:        all      3.97      0.00      0.20      0.09      0.00     95.74

相关指标含义:

%user:CPU处在用户模式下的时间百分比

%nice:CPU处在带NICE值的用户模式下的时间百分比

%system:CPU处在系统模式下的时间百分比

%iowait:CPU等待输入输出完成时间的百分比

%steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比

%idle:CPU空闲时间百分比

1.2、 -q 输出CPU队列的相关统计信息

sar -q 2 2

输出:

03:54:30 PM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15
03:54:32 PM         2      2798      1.79      1.43      1.46
03:54:34 PM         2      2797      1.79      1.43      1.46
Average:            2      2798      1.79      1.43      1.46

相关指标含义:

runq-sz:运行队列的长度(等待运行的进程数);

plist-sz:进程列表中进程(processes)和线程(threads)的数量,很多线程可能在休眠中

ldavg-1:最后1分钟的系统平均负载;

ldavg-5:过去5分钟的系统平均负载;

ldavg-15:过去15分钟的系统平均负载;

2、磁盘相关指标(建议用iostat)

我们可以通过-b、-d来输出磁盘的相关指标。通过

2.1、 -b 输出磁盘基本信息

sar -b 2 2

输出:

04:10:11 PM       tps      rtps      wtps   bread/s   bwrtn/s
04:10:13 PM    101.52      0.00    101.52      0.00    921.83
04:10:15 PM    117.01      0.00    117.01      0.00   1150.52
Average:       109.21      0.00    109.21      0.00   1035.29

相关指标含义:

  • tps:采样期间I/O的请求数,多个逻辑请求会被合并为一个I/O磁盘请求,一次传输的大小是不确定的
  • rtps:采样期间内的io读请求数
  • wtps:采样期间内的io写请求数
  • bread/s:采样期间内的io读的块数
  • bwrtn/s:采样期间内的io写的块数

2.2、-d 输出磁盘更详细的信息

sar -d 2 2

输出:

04:13:39 PM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
04:13:41 PM  dev8-144      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:13:41 PM   dev8-80      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:13:41 PM   dev8-32      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:13:41 PM  dev8-112      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:13:41 PM  dev8-128      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:13:41 PM   dev8-96      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:13:41 PM   dev8-64      1.00      0.00     16.00     16.00      0.01     13.00     13.00      1.30
04:13:41 PM  dev8-160      1.50      0.00     28.00     18.67      0.02     14.67      8.67      1.30
04:13:41 PM   dev8-16      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:13:41 PM   dev8-48      1.00      0.00     12.00     12.00      0.01     12.50     12.50      1.25
04:13:41 PM    dev8-0      2.50      0.00     92.00     36.80      0.02      9.20      9.20      2.30

相关指标含义:

DEV:磁盘设备;

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

3、内存相关指标(-n 参数)

通过 -B、-r、-W 来查看内存的相关指标

3.1、-r 查看内存的使用情况

sar -r 2 2

输出:

05:37:07 PM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit
05:37:09 PM   2717548  46656484     94.50    297688   3473964  70040892    105.88
05:37:11 PM   2717416  46656616     94.50    297692   3473972  70038520    105.88
Average:      2717482  46656550     94.50    297690   3473968  70039706    105.88

相关指标含义:

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

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

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

kbbuffers:这两个值就是free命令中的buffer;

kbcached:这两个值就是free命令中的cache;

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

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

3.2、-B 查看内存分页的情况

sar -B 2 2

输出

05:39:43 PM  pgpgin/s pgpgout/s   fault/s  majflt/s  pgfree/s pgscank/s pgscand/s pgsteal/s    %vmeff
05:39:45 PM      0.00     56.57   4540.91      0.00   1527.27      0.00      0.00      0.00      0.00
05:39:47 PM      0.00     50.25   4522.11      0.00   1455.78      0.00      0.00      0.00      0.00
Average:         0.00     53.40   4531.49      0.00   1491.44      0.00      0.00      0.00      0.00

相关指标含义:

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)的百分比;

3.3、-W 查看SWAP交换的统计信息

sar -W 2 2

输出:

05:41:40 PM  pswpin/s pswpout/s
05:41:42 PM      0.00      0.00
05:41:44 PM      0.00      0.00
Average:         0.00      0.00

相关指标含义:

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

4、网络相关指标

使用姿势:

# keyword 表示不同的几个开关。包括:DEV | EDEV | NFS | NFSD | SOCK
# 每个开关输出的信息都不一样
sar -n {keyword} or {ALL}
  • DEV : 显示网络接口信息
  • EDEV : 显示关于网络错误的统计数据
  • NFS : 显示NFS客户端信息
  • NFSD : 显示NFS服务器信息
  • SOCK : 显示套接字信息

4.1、网络接口相关信息

sar -n DEV 2 2 

输出:

05:48:11 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
05:48:13 PM        lo      7.50      7.50      0.69      0.69      0.00      0.00      0.00
05:48:13 PM       em1      5.00      8.00      0.60      0.94      0.00      0.00      0.00
05:48:13 PM       em2     19.00      8.00      2.50      1.44      0.00      0.00      2.00
05:48:13 PM       em3      0.00      0.00      0.00      0.00      0.00      0.00      0.00
05:48:13 PM       em4      0.00      0.00      0.00      0.00      0.00      0.00      0.00
05:48:13 PM     bond0     24.00     16.00      3.09      2.37      0.00      0.00      2.00

相关指标含义:

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

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

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

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

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

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

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

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

4.2、网络错误的统计数据

sar -n EDEV 2 2

输出:

05:49:25 PM     IFACE   rxerr/s   txerr/s    coll/s  rxdrop/s  txdrop/s  txcarr/s  rxfram/s  rxfifo/s  txfifo/s
05:49:27 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
05:49:27 PM       em1      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
05:49:27 PM       em2      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
05:49:27 PM       em3      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
05:49:27 PM       em4      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
05:49:27 PM     bond0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

相关指标含义:

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

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

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

coll/s:每秒冲突数;

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

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

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

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

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

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

4.3、 查看套接字相关信息

sar -n SOCK 2 2

输出:

05:51:14 PM    totsck    tcpsck    udpsck    rawsck   ip-frag    tcp-tw
05:51:16 PM       436       277         5         0         0         0
05:51:18 PM       435       276         5         0         0         0
Average:          436       276         5         0         0         0

相关指标含义:

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

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

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

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

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

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

三、其他

1、关于输出二进制文件和读取sa二进制文件

通过-o参数,可以将性能报告输出到指定的文件中。不过这个文件是二进制的,需要查看具体的信息还是需要通过sar命令来打开解析。

# 输出到指定的文件
sar -o /tmp/sa.test 2 2
# 解析某个sar二进制文件
sar -f /tmp/sa.test

2、关于sysstat包

sar、sa1和sa2命令都是sysstat包的一部分。它是Linux包含的性能监视工具集合。

sar:显示数据

sa1和sa2:收集和保存数据用于以后分析。sa2shell脚本在/var/log/sa目录中每日写入一个报告。sa1shell脚本将每日的系统活动信息以二进制数据的形式写入到文件中。

我们可以在/etc/cron.d/下sysstat文件中找到sar默认的cron作业,如下:

# Run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib64/sa/sa1 1 1
# 0 * * * * root /usr/lib64/sa/sa1 600 6 &
# Generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib64/sa/sa2 -A

这样我们就可以按照我们的需求,进行输出定制化了。

sar不止上面说的几个程序:

sar:收集、报告或存储信息(CPU、内存、磁盘、中断、网卡、TTY、内核表等等);

sadc:系统数据收集器,给sar做后台服务;

sa1:收记并存储二进制数据到每天的文件;这是设计来给cron执行一个sadc的前台程序;

sa2:生成总结报表;

sadf:以多种格式显示数据(CSV, XML, JSON, etc.),还可以用来生成SVG(Scalable Vector Graphics)图表。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Linux知识积累 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 二、系统各个维度的性能分析
    • 1、CPU相关指标
      • 1.1、 -P 或者 -u 输出CPU使用情况的统计信息
      • 1.2、 -q 输出CPU队列的相关统计信息
    • 2、磁盘相关指标(建议用iostat)
      • 2.1、 -b 输出磁盘基本信息
      • 2.2、-d 输出磁盘更详细的信息
    • 3、内存相关指标(-n 参数)
      • 3.1、-r 查看内存的使用情况
      • 3.2、-B 查看内存分页的情况
      • 3.3、-W 查看SWAP交换的统计信息
    • 4、网络相关指标
      • 4.1、网络接口相关信息
      • 4.2、网络错误的统计数据
      • 4.3、 查看套接字相关信息
  • 三、其他
    • 1、关于输出二进制文件和读取sa二进制文件
    相关产品与服务
    腾讯云 BI
    腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档