使用sar进行性能分析

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

 

下文将说明如何使用sar获取以下性能分析数据:

  1. 整体CPU使用统计
  2. 各个CPU使用统计
  3. 内存使用情况统计
  4. 整体I/O情况
  5. 各个I/O设备情况
  6. 网络统计

 

整体CPU使用统计(-u)

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

linux:/ # sar -u 1 2
Linux 2.6.16.60-0.21-smp (linux)     06/08/1211:37:07        CPU     %user     %nice   %system   %iowait    %steal     %idle
11:37:08        all      0.00      0.00      0.25      0.00      0.00     99.75
11:37:09        all      0.00      0.00      0.25      0.00      0.00     99.75
Average:        all      0.00      0.00      0.25      0.00      0.00     99.75

以上主要的统计项的解析如下:

%user: 用户态下CPU使用时间比率

%system: 内核态下CPU使用时间比率

%iowait: CPU等待I/O占用时间比率

%idle: CPU空闲时间比率

 

各个CPU使用统计(-P)

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

linux:~ # sar -P ALL 1 1
Linux 2.6.16.60-0.21-smp (linux)     06/08/1214:04:37        CPU     %user     %nice   %system   %iowait    %steal     %idle
14:04:38        all      0.50      0.00      0.12      0.00      0.00     99.38
14:04:38          0      0.00      0.00      0.00      0.00      0.00    100.00
14:04:38          1      0.00      0.00      0.00      0.00      0.00    100.00
14:04:38          2      0.00      0.00      0.00      0.00      0.00    100.00
14:04:38          3      0.00      0.00      1.00      0.00      0.00     99.00

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

 

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

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

linux:~ # sar -r  1 2
Linux 2.6.16.60-0.21-smp (linux)     06/08/1214:22:50    kbmemfree kbmemused  %memused kbbuffers  kbcached kbswpfree kbswpused  %swpused  kbswpcad
14:22:51     11727480   4564652     28.02    174460   3995108   8393920         0      0.00         0
14:22:52     11727480   4564652     28.02    174460   3995108   8393920         0      0.00         0
Average:     11727480   4564652     28.02    174460   3995108   8393920         0      0.00         0

上面输出的内存单位为”kb”,各项的名称可自解析其含义。

 

整体I/O情况(-b)

使用-b选项,可以显示磁盘I/O的使用情况:

linux:~ # sar -b 1 2
Linux 2.6.16.60-0.21-smp (linux)     06/08/1214:50:33          tps      rtps      wtps   bread/s   bwrtn/s
14:50:34         0.99      0.00      0.99      0.00      7.92
14:50:35         4.00      0.00      4.00      0.00    136.00
Average:         2.49      0.00      2.49      0.00     71.64

以上各列的含义为:

tps: 每秒向磁盘设备请求数据的次数,包括读、写请求,为rtps与wtps的和。出于效率考虑,每一次IO下发后并不是立即处理请求,而是将请求合并(merge),这里tps指请求合并后的请求计数。

rtps: 每秒向磁盘设备的读请求次数

wtps: 每秒向磁盘设备的写请求次数

bread: 每秒从磁盘读的bytes数量

bwrtn: 每秒向磁盘写的bytes数量

 

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

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

linux:~ # sar -d -p 1 1
Linux 2.6.16.60-0.21-smp (linux)     06/08/1215:43:34          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
15:43:35          sda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
15:43:35          sdb      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
15:43:35          sdc      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

以上输出中DEV列以sdX的方式显示了设备名称。

 

网络统计(-n)

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

linux:~ # sar -n DEV 1 1
Linux 2.6.16.60-0.21-smp (linux)     06/08/1215:50:22        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
15:50:23           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
15:50:23         eth0     23.76      1.98      1.59      0.26      0.00      0.00      0.00
15:50:23         eth1      0.00      0.00      0.00      0.00      0.00      0.00      0.00
15:50:23         eth2      7.92      0.00      0.60      0.00      0.00      0.00      0.00

以上主要输出含义如下:

IFACE: 网络接口名称

rxpck/s: 每秒收包的数量

txpck/s: 每秒发包的数量

rxkB/s: 每秒收的数据量(kB为单位)

txkB/s: 每秒发的数据量(kB为单位)

 

sar日志保存(-o)

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

linux:~ # sar -n DEV 1 10 -o sar.out
linux:~ # sar -d 1 10 -f sar.out

相比将结果重定向到一个文件,使用-o选项,可以保存更多的系统资源信息。

 

Reference: 10 Useful Sar(Sysstat) Examples for UNIX/Linux Performance Monitoring

 

 

转载于:https://www.cnblogs.com/bangerlee/archive/2012/06/12/2545747.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/494954.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

斯坦福证明神经网络能直接在光学芯片上训练

来源:全球人工智能摘要:据报道,美国斯坦福大学的研究人员已经证明,可以直接在光学芯片上训练人工神经网络。据报道,美国斯坦福大学的研究人员已经证明,可以直接在光学芯片上训练人工神经网络。这一重大突破…

蘑菇阵(动态规划)

题目: 现在有两个好友甲和B,住在一片长有蘑菇的由n * m个个方格组成的草地,A在(1,1),B在(N,M)。现在甲想要拜访B,由于她只想去乙的家,所以每次她只…

用Keil-MDK开发TQ2440裸机程序入门教程——LED流水灯实现

觉得此编文章很详实,故转载之,来自http://www.amobbs.com/thread-5281512-1-1.html 开发板也差不多买了半年了, 以前照着教程用的是软件是ADS,在win7下老是崩溃, 后来才知道ADS早就不提供支持了, ADS的公司怎样怎样了...(此处省略300..) 然后我就捣鼓着怎…

关于量子计算,你应该知道的七个事实

来源:资本实验室摘要:在很多人眼中,量子计算机被认为能够完成经典计算机所不能完成的任务。聚焦前沿科技创新与传统产业升级在很多人眼中,量子计算机被认为能够完成经典计算机所不能完成的任务。事实上,如果量子计算机…

幸运袋子(详解)

题目分析 一个袋子里面有n个球,每个球上面都有一个号码(拥有相同号码的球是无区别的)。如果一个袋子是幸运的当且仅当所有球的号码的和大于所有球的号码的积。 例如:如果袋子里面的球的号码是{1, 1, 2, 3},这个袋子就是幸运的,因为…

wcf 例子

开发环境是vs2005 (需要安装对wcf和wpf的扩展支持)。1建立控制台应用程序作为服务端。///这是接口[ServiceContract(Namespace "http://Microsoft.ServiceModel.Samples")]public interface ICalculator{[OperationContract]double Add(doubl…

机器学习帮助人类找到最硬的过渡金属氮化物

来源:中国科学杂志社摘要:南京大学物理学院孙建教授和王慧田教授领导的研究团队发展了机器学习加速晶体结构搜索的方法,并用其预测了一种超硬的钨氮化合物。机器学习算法在很多领域取得了令人瞩目的进步,从而广受人们关注&#xf…

WEB攻防实战篇,思维导图

转载于:https://www.cnblogs.com/sin4/archive/2012/06/16/2551603.html

二维数组按行和按列遍历的效率

按行遍历的效率大概是是按列遍历的0.5倍 在c语言中,数组在内存中是按行存储的,按行遍历时可以由指向数组第一个数的指针一直向后遍历,由于二维数组的内存地址是连续的,当前行的尾与下一行的头相邻,所以可以直接到下一行…

解读《自适应机器人交互白皮书》:机器人交互需要突破性技术

来源:机器人创新生态摘要:7月11日雷克大会,英特尔中国研究院机器人交互实验室研发总监任海兵在演讲时,就白皮书中的内容进行了重点解读。个人服务机器人在近年来随着人工智能的快速发展开始得到不少关注。个人服务机器人是否真正能…

最长升序子串1231

题目与解析 给定n个数字,在这n个数字中找出最长上升子序列。 那么什么是上升子序列呢? 上升子序列就是在一个数列中递增的部分,不一定是连续的,比如说 图中的24678和24679都是数列24635798的上升子序列 解题思路 就按图上2 4 …

php使用接口实现工厂设计模式

php实现工厂设计模式,使用接口实现,表面上接口没有什么用,因为php是类型自动转换的。实现上使用接口可以约束类的定义,从而实现一致的访问。 接口在php只能起到约束类的定义作用,虽不像c#/java那么直观,但基…

大数据生态圈常用组件(一):数据库、查询引擎、ETL工具、调度工具等

你的闺蜜在减肥,隔壁老王在练腰,你还不赶紧来学习 整理了当年使用过的一些,大数据生态圈组件的特性和使用场景,若有不当之处,请留言斧正,一起学习成长。 组件名属性标签特性使用场景价格成本Mysql 关系型数…

科学革命与科学教科书

来源:《出版科学》2018年第4期摘要:借助科学哲学的反思,加上科学家和出版人的创新实践,一定能够出现既能促进常规科学研究、又能为科学革命做出某些准备的新型科学教科书。《科学革命的结构》托马斯 • 库恩著,金吾伦、…

barcode4j

Barcode4J由Java语言编写而成,可以灵活的生成条形码。它采用Apache License V2.0许可,这使得它很容易在商业中被使用。它可以让您生成各种流行的一维和二维条码,包括DataMatrix 和 PDF417。以各种格式输出,包括SVG, EPS, bitmaps和…

浅析段错误和栈溢出

什么段 我们在学习微机原理的时候就遇到过段,它代表在一个可执行文件中各种的类型信息存放的地方。   正文段:text用于存储指令;   数据段:data用于存储已初始化的全局变量;   bss段:用来存放程序中未…

大数据生态圈常用组件(二):概括介绍、功能特性、适用场景

三更灯火五更鸡,正是男儿读书时。 小编整理了一些常用的大数据组件,使用场景及功能特性,希望对后浪有所帮助。 分类名称简介功能特点使用场景大数据存储HDFSHDFS是一个分布式的文件系统,它具有高度的容错,高吞吐量&am…

物联网可应用于十大行业嘛?

来源:亿欧智库摘要:近些年来,全球经济增长乏力,物联网已变成了各国经济发展的新动力。基于此,亿欧智库近日将发布一份新的报告《2018物联网行业应用研究报告》,报告总结出了物联网的十大应用行业&#xff0…

ubuntu下查看window下文本文件乱码的解决方法

在Ubuntu中,在英文的locate下面查看一些从window系统生成的文本文件,有可能用gedit打开时出现的都是乱码,今天用gedit -h看了一下,里面有一个选项是--encoding,于是在终端中运行 gedit --encodinggbk打开gedit&#xf…

浅析死锁

什么是死锁? 死锁就是两个或多个进程在执行的过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞现象,当进程处于这种状态时,如果没有外力的作用,这些进程都无法继续向前进行。这是操作系统层面的一个错误&#xff…