转:https://blog.csdn.net/xusensen/article/details/54606401#sar%E7%AE%80%E4%BB%8B

Linux使用sar进行性能分析

sar简介

sar(System Activity Reporter, 系统活动情况报告): 是用于监控Linux系统各个性能的优秀工具,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等。

sar命令常用格式

sar [ options ] [ <interval> [ <count> ] ] 

其中: 
interval: 采样周期,单位是秒; 
count:采样次数,默认值是连续采样; 
options:命令行选项。

sar命令的选项很多,下面只列出常用选项: 
-A:所有报告的总和 
-u:输出整体CPU使用情况的统计信息 
-v:输出inode、文件和其他内核表的统计信息 
-d:输出每一个块设备的活动信息 
-r:输出内存和交换空间的统计信息 
-b:显示I/O和传送速率的统计信息 
-a:文件读写情况 
-c:输出进程统计信息,每秒创建的进程数 
-R:输出内存页面的统计信息 
-y:终端设备活动情况 
-w:输出系统交换活动信息

sar常用性能数据分析

下文将说明如何使用sar获取以下性能分析数据: 
- 整体CPU使用统计 
- 各个CPU使用统计 
- 内存使用情况统计 
- 整体I/O情况 
- 各个I/O设备情况 
- 网络统计

整体CPU使用统计(-u)

使用-u选项,sar输出整体CPU的使用情况,不加选项时,默认使用的就是-u选项。以下命令显示采样时间为3s,采样次数为2次,整体CPU的使用情况: 
sar 3 2 (或者 sar -u 3 2)

[root@HB05-uhost-130-157 tmp]# sar 3 2
Linux 2.6.32-279.19.31.el6.ucloud.x86_64 (HB05-uhost-130-157) 01/17/2017 _x86_64_ (32 CPU) 11:58:50 PM CPU %user %nice %system %iowait %steal %idle
11:58:53 PM all 13.25 0.00 3.16 3.72 0.00 79.87
11:58:56 PM all 12.69 0.00 3.04 4.77 0.00 79.50
Average: all 12.97 0.00 3.10 4.25 0.00 79.69
[root@HB05-uhost-130-157 tmp]# sar -u 3 2
Linux 2.6.32-279.19.31.el6.ucloud.x86_64 (HB05-uhost-130-157) 01/17/2017 _x86_64_ (32 CPU) 11:59:02 PM CPU %user %nice %system %iowait %steal %idle
11:59:05 PM all 22.24 0.00 3.60 8.14 0.00 66.02
11:59:08 PM all 21.26 0.00 4.28 6.95 0.00 67.51
Average: all 21.75 0.00 3.94 7.55 0.00 66.77

14

输出项说明: 
CPU:all表示统计信息为所有CPU的平均值。 
%usr:CPU在用户态执行进程的时间百分比。 
%nice:CPU在用户态模式下,用于nice操作,所占用CPU总时间的百分比。 
%system:CPU处在内核态执行进程的时间百分比。 
%iowait:CPU用于等待I/O操作占用CPU总时间的百分比。 
%steal:管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟CPU的百分比。 
%idle:CPU空闲时间百分比。 
1. 若 %iowait 的值过高,表示硬盘存在I/O瓶颈 
2. 若 %idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量 
3. 若 %idle 的值持续低于1,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU

各个CPU使用统计(-P)

“-P ALL”选项指示对每个内核输出统计信息: 

其中”CPU”列输出0,1,2,3,4,5指示对应的cpu核。也可针对单独一个内核显示,“-P 1”指示显示第二个内核的统计信息。

内存使用情况统计(-r)

使用-r选项可显示内存统计信息,以下命令显示以1秒为采样时间,显示2次内存信息: 
sar -r 1 2 

参数参数 意义
kbmemfree Amount of free memory available in kilobytes.
kbmemused Amount of used memory in kilobytes. This does not take into account memory used by the kernel itself.
%memused Percentage of used memory
kbbuffers Amount of memory used as buffers by the kernel in kilobytes.
kbcached Amount of memory used to cache data by the kernel in kilobytes.
kbcommit Amount of memory in kilobytes needed for current workload. This is an estimate of how much RAM/swap is needed to guarantee that there never is out of memory.
%commit Percentage of memory needed for current workload in relation to the total amount of memory (RAM+swap). This number may be greater than 100% because the kernel usually overcommits memory.

整体I/O情况(-b)

使用-b选项,可以显示磁盘I/O的使用情况:Report I/O and transfer rate statistics. 
sar -b 3 2 

输出项说明: 
tps: 每秒向磁盘设备请求数据的次数,包括读、写请求,为rtps与wtps的和。出于效率考虑,每一次IO下发后并不是立即处理请求,而是将请求合并(merge),这里tps指请求合并后的请求计数。 
rtps: 每秒向磁盘设备的读请求次数 
wtps: 每秒向磁盘设备的写请求次数 
bread/s:每秒钟从物理设备读入的数据量,单位为 块/s 
bwrtn/s:每秒钟向物理设备写入的数据量,单位为 块/s

各个I/O设备情况(-d)

使用-d选项可以显示各个磁盘的统计信息,再增加-p选项可以以sdX的形式显示设备名称: 
sar -d -p 3 2 

输出项说明: 
rd_sec/s: 每秒从设备读取的扇区数 
wr_sec/s: 每秒往设备写入的扇区数 
avgrq-sz: 发送给设备的请求的平均大小(以扇区为单位) 
avgqu-sz: 发送给设备的请求队列的平均长度 
await :服务等待I/O请求的平均时间,包括请求队列等待时间 (单位毫秒) 
svctm :设备处理I/O请求的平均时间,不包括请求队列等待时间 (单位毫秒) 
%util :一秒中有百分之多少的时间用于 I/O 操作,即被io消耗的cpu百分比。

备注: 
- 如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。 
- 如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;如果 await 远大于 svctm,说明I/O 队列太长,io响应太慢,则需要进行必要优化。 
- 如果avgqu-sz比较大,也表示有当量io在等待。

网络统计(-n)

使用-n选项可以对网络使用情况进行显示,-n后接关键词”DEV”可显示eth0、eth1等网卡的信息: 
sar -n DEV 1 1 

以上主要输出含义如下: 
IFACE: Name of the network interface for which statistics are reported. 
rxpck/s: Total number of packets received per second. 
txpck/s: Total number of packets transmitted per second. 
rxkB/s: Total number of kilobytes(kB) received per second. 
txkB/s: Total number of kilobytes(kB) transmitted per second. 
rxcmp/s: Number of compressed packets received per second (for cslip etc.). 
txcmp/s: Number of compressed packets transmitted per second. 
rxmcst/s: Number of multicast packets received per second.

sar日志保存(-o)

最后讲一下如何保存sar日志,使用-o选项,我们可以把sar统计信息保存到一个指定的文件,对于保存的日志,我们可以使用-f选项读取:

linux:~ # sar -n DEV 1 10 -o sar.out 
linux:~ # sar -d 1 10 -f sar.out 
相比将结果重定向到一个文件,使用-o选项,可以保存更多的系统资源信息。

References:

http://www.thegeekstuff.com/2011/03/sar-examples/ 
http://www.cnblogs.com/bangerlee/articles/2545747.html 
http://www.cnblogs.com/xianghang123/archive/2011/08/25/2153591.html 
http://www.chinaz.com/server/2013/0401/297942.shtml

Linux使用sar进行性能分析的更多相关文章

  1. 【转贴】使用sar进行性能分析

    使用sar进行性能分析 https://www.cnblogs.com/bangerlee/articles/2545747.html 很早之前就看过 但是自己一直没用过.. 2012-06-12 0 ...

  2. Linux C++程序进行性能分析工具gprof使用入门

    性能分析工具 软件的性能是软件质量的重要考察点,不论是在线服务程序还是离线程序,甚至是终端应用,性能都是用户体验的关键.这里说的性能重大的范畴来讲包括了性能和稳定性两个方面,我们在做软件测试的时候也是 ...

  3. 【Linux资源管理】使用sar进行性能分析

    sar可用于监控Linux系统性能,帮助我们分析性能瓶颈.sar工具的使用方式为”sar [选项] intervar [count]”,其中interval为统计信息采样时间,count为采样次数. ...

  4. 使用sar进行性能分析

    sar可用于监控Linux系统性能,帮助我们分析性能瓶颈.sar工具的使用方式为”sar [选项] intervar [count]”,其中interval为统计信息采样时间,count为采样次数. ...

  5. Linux下用火焰图进行性能分析【转】

    转自:https://blog.csdn.net/gatieme/article/details/78885908 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原 ...

  6. 使用VisualVM进行性能分析及调优(转)

    VisualVM 是一款免费的\集成了多个 JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优.这些功能包括生成和分析海量数据.跟踪内存泄漏.监控垃圾回 ...

  7. [转]设置Android手机以使用ARM Streamline进行性能分析(二)

    原文因为arm社区改版访问不到了,原作者鲍方,原文地址,这篇是从google cache里挖出来的,希望能帮到要对cocos2dx优化的各位   Posted by Fang Bao, Leave C ...

  8. [转]程序进行性能分析工具gprof使用入门

    性能分析工具 软件的性能是软件质量的重要考察点,不论是在线服务程序还是离线程序,甚至是终端应用,性能都是用户体验的关键.这里说的性能重大的范畴来讲包括了性能和稳定性两个方面,我们在做软件测试的时候也是 ...

  9. 【Java VisualVM】使用 VisualVM 进行性能分析及调优

    转载:https://blog.csdn.net/lmb55/article/details/79267277 一.概述 开发大型 Java 应用程序的过程中难免遇到内存泄露.性能瓶颈等问题,比如文件 ...

随机推荐

  1. 使用ApplicationContext

    ApplicationContext覆盖了BeanFactory的所有功能,并提供了更多的特,容器创建时就创建了singleton Bean 相对BeanFactory而言,ApplicationCo ...

  2. Host aggregate分区

    问题描述:生产区一期环境增加4台计算结点,希望被大数据租户独占1. 该大数据用户创建的虚拟机必须被调度到这4个计算结点2. 其他租户创建虚拟机禁止调度到这4台机器 标黄的需要自行根据情况修改解决方案: ...

  3. android bitmap recycle

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 不需要位图的时候,就可以手动调用recycle. 2.3之前 位图对象 存在 java的 ...

  4. hdu 3949 XOR 线性基 第k小异或和

    题目链接 题意 给定\(n\)个数,对其每一个子集计算异或和,求第\(k\)小的异或和. 思路 先求得线性基. 同上题,转化为求其线性基的子集的第k小异或和. 结论 记\(n\)个数的线性基为向量组\ ...

  5. POJ3710 Christmas Game 博弈论 sg函数 树的删边游戏

    http://poj.org/problem?id=3710 叶子节点的 SG 值为0:中间节点的SG值为它的所有子节点的SG值加1后的异或和. 偶环可以视作一个点,奇环视为一条边(连了两个点). 这 ...

  6. 各种背包的dp刷题板

    [p1332][NYOJ skiing] 滑雪  (dp+搜索) [p1312] [vjios1448 路灯改建计划] 关灯问题 (背包预处理的分组背包) f[i][j]表示给把前i个灯分为j组可以获 ...

  7. 【二分图最大匹配】【匈牙利算法】zoj3988 Prime Set

    题意:给你n个正整数,一对和为素数的数为一个合法数对.你选不超过K个合法数对,使得你选的数对涉及到的数的数量最大化.输出这个值. 所有1之间是可以任意两两配对的. 把奇数放在左侧,偶数放在右侧. 考虑 ...

  8. 压测工具Webbench

    webbench最多可以模拟3万个并发连接去测试网站的负载能力,安装使用也特别方便,并且非常小. 1.系统:Linux 2.编译安装: [root@~]$wget http://blog.s135.c ...

  9. 今天测试了一下 sqlalchemy 性能

    self.db.query(Users).filter(Users.Id==1).first() < self.db.execute('SELECT *  FROM `users` WHERE ...

  10. python开发_搜索本地文件信息写入文件

    功能:#在指定的盘符,如D盘,搜索出与用户给定后缀名(如:jpg,png)相关的文件 #然后把搜索出来的信息(相关文件的绝对路径),存放到用户指定的 #文件(如果文件不存在,则建立相应的文件)中 之前 ...