linux sar命令学习性能分析

sar命令来进行性能分析
sar(System ActivityReporter系统活动情况报告)是目前Linux上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,
包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等,sar命令有sysstat安装包安装,
本文主要以CentOS 7.2_x64系统为例,介绍sar命令
用法: sar [ 选项 ] [ <时间间隔> [ <次数> ] ]

选项:

-A:显示所有的报告信息;
-b:显示I/O速率;
-B:显示换页状态;
-c:显示进程创建活动;
-d:显示每个块设备的状态;
-e:设置显示报告的结束时间;
-f:从指定文件提取报告;
-i:设状态信息刷新的间隔时间;
-P:报告每个CPU的状态;
-R:显示内存状态;
-u:显示CPU利用率;
-v:显示索引节点,文件和其他内核表的状态;
-w:显示交换分区状态;
-x:显示给定进程的状态。

 

1. CPU资源监控
例如,每10秒采样一次,连续采样3次,观察CPU 的使用情况,并将采样结果以二进制形式存入当前目录下的文件test中,需键入如下命令:sar -u -o test 10 3
Linux 3.10.0-327.el7.x86_64 (web)     11/15/2018     _x86_64_    (6 CPU)
10:33:37 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
10:33:47 AM     all      0.05      0.00      0.05      0.00      0.05     99.85
10:33:57 AM     all      0.07      0.00      0.08      0.00      0.12     99.73
10:34:07 AM     all      0.05      0.00      0.05      0.00      0.07     99.83
Average:        all      0.06      0.00      0.06      0.00      0.08     99.81
--all 表示统计信息所有CPU的平均值
--%user 表示在用户级别(application)运行使用CPU总时间的百分比
--%nice 表示在用户级别,用于nice操作,所占用CPU总时间的百分比
--%system:在核心级别(kernel)运行所使用 CPU 总时间的百分比。
--%iowait:显示用于等待I/O操作占用 CPU 总时间的百分比。
--%steal:管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。
--%idle:显示 CPU 空闲时间占用 CPU 总时间的百分比。

2. inode、文件和其他内核表监控
例如,每10秒采样一次,连续采样3次,观察核心表的状态,需键入如下命令:sar -v 10 3
Linux 3.10.0-327.el7.x86_64 (web)     11/15/2018     _x86_64_    (6 CPU)
10:40:32 AM dentunusd   file-nr  inode-nr    pty-nr
10:40:42 AM    288384      3808    251522         1
10:40:52 AM    288384      3744    251522         1
10:41:02 AM    288384      3776    251522         1
Average:       288384      3776    251522         1
--dentunusd:目录高速缓存中未被使用的条目数量
--file-nr:文件句柄(file handle)的使用数量
--inode-nr:索引节点句柄(inode handle)的使用数量
--pty-nr:使用的pty数量

3. 内存和交换空间监控
例如,每10秒采样一次,连续采样3次,监控内存分页:sar -r 10 3
Linux 3.10.0-327.el7.x86_64 (web)     11/15/2018     _x86_64_    (6 CPU)
02:10:56 PM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
02:11:06 PM   2370880   3036348     56.15      1204    613624   7776196     21.21   1800424    501168         4
02:11:16 PM   2370864   3036364     56.15      1204    613624   7776196     21.21   1800432    501164         4
02:11:26 PM   2370792   3036436     56.16      1204    613624   7776160     21.21   1800432    501164         4
Average:      2370845   3036383     56.15      1204    613624   7776184     21.21   1800429    501165         4
--kbmemfree:这个值和free命令中的free值基本一致,所以它不包括buffer和cache的空间.
--kbmemused:这个值和free命令中的used值基本一致,所以它包括buffer和cache的空间.
--%memused:这个值是kbmemused和内存总量(不包括swap)的一个百分比.
--kbbuffers和kbcached:这两个值就是free命令中的buffer和cache.
--kbcommit:保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM+swap).
--%commit:这个值是kbcommit与内存总量(包括swap)的一个百分比.
--Kbactive:活动内存量(以千字节计算)(最近使用的内存,通常不会被收回,除非绝对必要)
--kbinact:不活动内存量(以千字节计算的内存(最近使用的内存),更有资格被用于其他目的)。
--kbdirty:以KB为单位的内存量等待写入磁盘

4. 内存分页监控
例如,每10秒采样一次,连续采样3次,监控内存分页:sar -B 10 3
Linux 3.10.0-327.el7.x86_64 (web)     11/15/2018     _x86_64_    (6 CPU)
02:14:29 PM  pgpgin/s pgpgout/s   fault/s  majflt/s  pgfree/s pgscank/s pgscand/s pgsteal/s    %vmeff
02:14:39 PM      0.00      0.10   1151.40      0.00    568.00      0.00      0.00      0.00      0.00
02:14:49 PM      0.00      0.00    824.40      0.00    447.00      0.00      0.00      0.00      0.00
02:14:59 PM      0.00      0.00   1488.30      0.00    930.90      0.00      0.00      0.00      0.00
Average:         0.00      0.03   1154.70      0.00    648.63      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)的百分比

5. I/O和传送速率监控
例如,每10秒采样一次,连续采样3次,报告缓冲区的使用情况,需键入如下命令:sar -b 10 3
Linux 3.10.0-327.el7.x86_64 (web)     11/15/2018     _x86_64_    (6 CPU)
02:19:14 PM       tps      rtps      wtps   bread/s   bwrtn/s
02:19:24 PM      0.00      0.00      0.00      0.00      0.00
02:19:34 PM      0.00      0.00      0.00      0.00      0.00
02:19:44 PM      0.00      0.00      0.00      0.00      0.00
Average:         0.00      0.00      0.00      0.00      0.00
--tps:每秒钟物理设备的 I/O 传输总量
--rtps:每秒钟从物理设备读入的数据总量
--wtps:每秒钟向物理设备写入的数据总量
--bread/s:每秒钟从物理设备读入的数据量,单位为 块/s
--bwrtn/s:每秒钟向物理设备写入的数据量,单位为 块/s

6. 进程队列长度和平均负载状态监控
例如,每10秒采样一次,连续采样3次,监控进程队列长度和平均负载状态:sar -q 10 3
Linux 3.10.0-327.el7.x86_64 (web)     11/15/2018     _x86_64_    (6 CPU)
02:21:26 PM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
02:21:36 PM         0       627      0.00      0.01      0.05         0
02:21:46 PM         2       627      0.00      0.01      0.05         0
02:21:56 PM         0       627      0.00      0.01      0.05         0
Average:            1       627      0.00      0.01      0.05         0
--runq-sz:运行队列的长度(等待运行的进程数)
--plist-sz:进程列表中进程(processes)和线程(threads)的数量
--ldavg-1:最后1分钟的系统平均负载(System load average)
--ldavg-5:过去5分钟的系统平均负载
--ldavg-15:过去15分钟的系统平均负载
--blocked:当前阻塞的任务数,等待I / O完成

7. 系统交换活动信息监控
例如,每10秒采样一次,连续采样3次,监控系统交换活动信息:sar -W 10 3
Linux 3.10.0-327.el7.x86_64 (web)     11/15/2018     _x86_64_    (6 CPU)
02:34:31 PM  pswpin/s pswpout/s
02:34:41 PM      0.00      0.00
02:34:51 PM      0.00      0.00
02:35:01 PM      0.00      0.00
Average:         0.00      0.00
--pswpin/s:每秒系统换入的交换页面(swap page)数量
--pswpout/s:每秒系统换出的交换页面(swap page)数量

8. 设备使用情况监控
例如,每10秒采样一次,连续采样3次,报告设备使用情况,需键入如下命令:sar -d 10 3 –p
Linux 3.10.0-327.el7.x86_64 (web)     11/15/2018     _x86_64_    (6 CPU)
02:36:28 PM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
02:36:38 PM      xvda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
02:36:38 PM centos-root      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
02:36:38 PM centos-swap      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
02:36:38 PM centos-opt      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
02:36:38 PM centos-srv_ftp_wit_ftpd      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
02:36:38 PM centos-srv_ftpd_log      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
02:36:38 PM centos-srv_other      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

02:36:38 PM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
02:36:48 PM      xvda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
02:36:48 PM centos-root      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
02:36:48 PM centos-swap      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
02:36:48 PM centos-opt      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
02:36:48 PM centos-srv_ftp_wit_ftpd      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
02:36:48 PM centos-srv_ftpd_log      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
02:36:48 PM centos-srv_other      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

02:36:48 PM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
02:36:58 PM      xvda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
02:36:58 PM centos-root      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
02:36:58 PM centos-swap      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
02:36:58 PM centos-opt      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
02:36:58 PM centos-srv_ftp_wit_ftpd      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
02:36:58 PM centos-srv_ftpd_log      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
02:36:58 PM centos-srv_other      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

Average:          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
Average:         xvda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:    centos-root      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:    centos-swap      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:    centos-opt      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:    centos-srv_ftp_wit_ftpd      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:    centos-srv_ftpd_log      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:    centos-srv_other      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
参数-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% 时,表示设备带宽已经占满。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值