Linux使用sar进行性能分析
转: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:
1 http://www.thegeekstuff.com/2011/03/sar-examples/
2 http://www.cnblogs.com/bangerlee/articles/2545747.html
3 http://www.cnblogs.com/xianghang123/archive/2011/08/25/2153591.html
4 http://www.chinaz.com/server/2013/0401/297942.shtml
Linux使用sar进行性能分析的更多相关文章
- 【转贴】使用sar进行性能分析
使用sar进行性能分析 https://www.cnblogs.com/bangerlee/articles/2545747.html 很早之前就看过 但是自己一直没用过.. 2012-06-12 0 ...
- Linux C++程序进行性能分析工具gprof使用入门
性能分析工具 软件的性能是软件质量的重要考察点,不论是在线服务程序还是离线程序,甚至是终端应用,性能都是用户体验的关键.这里说的性能重大的范畴来讲包括了性能和稳定性两个方面,我们在做软件测试的时候也是 ...
- 【Linux资源管理】使用sar进行性能分析
sar可用于监控Linux系统性能,帮助我们分析性能瓶颈.sar工具的使用方式为”sar [选项] intervar [count]”,其中interval为统计信息采样时间,count为采样次数. ...
- 使用sar进行性能分析
sar可用于监控Linux系统性能,帮助我们分析性能瓶颈.sar工具的使用方式为”sar [选项] intervar [count]”,其中interval为统计信息采样时间,count为采样次数. ...
- Linux下用火焰图进行性能分析【转】
转自:https://blog.csdn.net/gatieme/article/details/78885908 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原 ...
- 使用VisualVM进行性能分析及调优(转)
VisualVM 是一款免费的\集成了多个 JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优.这些功能包括生成和分析海量数据.跟踪内存泄漏.监控垃圾回 ...
- [转]设置Android手机以使用ARM Streamline进行性能分析(二)
原文因为arm社区改版访问不到了,原作者鲍方,原文地址,这篇是从google cache里挖出来的,希望能帮到要对cocos2dx优化的各位 Posted by Fang Bao, Leave C ...
- [转]程序进行性能分析工具gprof使用入门
性能分析工具 软件的性能是软件质量的重要考察点,不论是在线服务程序还是离线程序,甚至是终端应用,性能都是用户体验的关键.这里说的性能重大的范畴来讲包括了性能和稳定性两个方面,我们在做软件测试的时候也是 ...
- 【Java VisualVM】使用 VisualVM 进行性能分析及调优
转载:https://blog.csdn.net/lmb55/article/details/79267277 一.概述 开发大型 Java 应用程序的过程中难免遇到内存泄露.性能瓶颈等问题,比如文件 ...
随机推荐
- Android签名打包详解
一. Android签名有什么作用? 应用程序升级:如果你希望用户无缝升级到新的版本,那么你必须用同一个证书进行签名.这是由于只有以同一个证书签名,系统才会允许安装升级的应用程序.如果你采用 ...
- Python开发基础-Day25-28FTP项目(待补充)
optparse C:\Users\Mr.chai>python C:/Users/Mr.chai/Desktop/PythonProject/DAY/day27/LuffyFTP/client ...
- iOS 9音频应用播放音频之第一个ios9音频实例2
iOS 9音频应用播放音频之第一个ios9音频实例2 ios9音频应用关联 iOS9音频应用中对于在主视图上添加的视图或控件,在使用它们时必须要与插座变量进行关联.ios9插座变量其实就是为主视图中的 ...
- 关于django 京东淘宝 混合搜索实现原理
混合搜索在各大网站如京东.淘宝都有应用,他们的原理都是什么呢?本博文将为你介绍它们的实现过程. 混合搜索的原理,用一句话来说就是:关键字id进行拼接. 混合搜索示例: 数据库设计: 视频方向: 1 2 ...
- FastReport.Net使用:[20]条码控件使用
在日常生活中,条码用的越来越多,“扫一扫”目前是非常的流行.报表设计也要跟上时代,打印出条码,方便信息流转. FastReport对条码的支持很不错,支持很多类型的条码,还包括二维码. 几个常见问题 ...
- [BZOJ4196][NOI2015]软件包管理器(树链剖分)
4196: [Noi2015]软件包管理器 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 2166 Solved: 1253[Submit][Sta ...
- 20162325 金立清 S2 W6 C15
20162325 2017-2018-2 <程序设计与数据结构>第6周学习总结 教材学习内容概要 队列是先进先出(FIFO)的集合 队列是保存重复编码k值的一种有效结构 实现模拟时常用队列 ...
- 扩展gcd codevs 1200 同余方程
codevs 1200 同余方程 2012年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description 求关 ...
- [转]Intent和IntentFilter详解
Intent Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述,Android则根据此Intent的描 ...
- 【转】2012年7月12 – 腾讯公司 WEB高级应用开发工程师 最新面试题
腾讯面试(WEB高级应用开发工程师<PHP>)非答案啊!!! 开始正题之前,容博主啰嗦两句吧,呵呵.(你也可跳过直接到红色字体看题!) 腾讯一直是我很敬重的企业,尽管小企鹅在战略上饱受争议 ...