上期我们讲到LoaRunner性能测试内存监控,这期我们讲LoaRunner性能测试磁盘监控。

磁盘监控

在介绍磁盘监控前,先介绍固定磁盘存储管理的性能,固定磁盘存储器的结构层次如图所示。

每个单独的磁盘驱动器称为一个物理卷(PV)它们各有一个名称,例如/dev/hdisk0,如果物理卷在使用,那么它属于一个卷组(VG)卷组中所有物理卷划分成相同大小(如果卷组包含的物理卷小于4GB,则缺省值是4MB,对于更大的磁盘该值为8MB或更多)的物理分区(PP)。

根据空间分配的用途,每个物理卷可以分成五个区域,根据磁盘驱动器的不同,每个区域中物理分区的数量也不同。在每个卷组中定义一个或多个逻辑卷(LV),每个逻辑卷由一个或多个逻辑分区组成,每个逻辑分区至少对应一个物理分区,如果指定为逻辑卷制作镜像,就需要分配额外的物理分区存储每个逻辑分区的额外副本,虽然逻辑分区是连续编号的,但底层的物理分区不必连续或邻接。 逻辑卷为系统用途提供服务(例如页面调度),但是每个容纳常规系统数据或用户数据或程序的逻辑卷都包含一个单独的日志文件系统(JFS或增强型JFS),每个JFS由页大小(4096字节)块的池组成。当数据要写入某个文件中时,会为这个文件分配一个或多个额外的块,这些块彼此和与先前分配给这个文件的其它块之间可能邻接也可能不邻接。

图中显示了一个文件系统中可能发生的糟糕情况,这个文件系统已经使用了很长时间且没有重新组织过,文件/op/filename物理记录在很多块上,这些块在物理位置上相互远离,不是邻接的,顺序读取这个文件将导致许多费时的寻道操作。虽然操作系统的文件在概念上是一个顺序且邻接的字节字符串,但物理实现可能非常不同,在一个文件系统中对逻辑卷的多次扩展和分配/释放/再分配活动可能出现磁盘分段,当一个文件系统的可用空间由大量小块空间组成,那么就会出现碎片,就不可能在邻接的块中写出新的文件。

在高度碎片化的文件系统中访问文件可能导致大量的寻道操作和较长的I/O响应时间(寻道等待时间决定I/O响应时间),例如,如果顺序访问文件,那么由大量广泛分散的小块组成的文件布局比文件块紧密相连的布局需要更长的寻道时间,当文件缓存在内存中时,文件布局对于I/O性能的影响减小,在操作系统中打开一个文件时,它被映射到虚拟内存中一个永久数据段,这个段代表该文件的虚拟缓冲区,文件的块直接映射到段的页面中,VMM管理段页面,根据需要读取文件块到段页面中(当它们被访问时)。有几种环境会导致VMM将一页写回到磁盘上文件中相应的块,但如果某块最近已经被访问,VMM通常会在内存中保留该页,因此,频繁访问的页倾向于在内存中停留较长时间,所以不需要物理磁盘访问就可以满足对相应块的逻辑文件访问,在某些地方,用户或系统管理员可以选择在逻辑卷中重新组织文件布局以及在物理卷中重新组织逻辑卷布局,从而减少磁盘碎片以及更均匀地分配总的I/O负载。

关于磁盘的监控应该重点考虑以下几方面的内容:第一:查找当前最活跃的文件、文件系统和逻辑卷 a)“热”文件系统是定位在一个物理驱动器上还是分散在多个物理驱动器上; b)调页空间是否支配磁盘应用? c)是否有足够的内存来高速缓存那些由正在运行进程使用的文件页面? d)应用程序是否执行许多同步(非高速缓存)的文件I/O? 第二:查看使用率最高的物理卷 第三:测试磁盘读写时间 一般的在对磁盘配置或调整参数做出重要改动之前,需要先对当前的配置和性能进行监控,得到一条评估的基线数据。 在系统处于工作负载高峰时期或者运行一个关键应用程序时,可以使用带间隔时间参数的iostat命令来开始评估。 iostat53报告如图所示。

注意:如果在Linux未发现该命令,那么需要先安装sysstat包安装命令为rpm–ivhsysstat-7.0.2-3.el5.i386sysstat包中包括iostat、mpstat、sar和sa四个工具。

关于CPU统计信息列(%usr、%sys、%idle和%iowait)提供了CPU使用的情况,该信息也在vmstat命令输出信息中存在,其对应的列名为us、sy、id和wa。在运行一个应用程序的系统上,I/O等待时间的高百分比可能与工作负载有关,在具有很多进程的系统上,一些可能在运行,而另一些可能在等待I/O,在这种情况下,%iowait可能很小或者为零,因为正在运行的进程“隐藏”了一些等待时间,但是%iowait并不代表磁盘可能不存在瓶颈。如果iostat命令表明CPU受限的情况不存在,并且%iowait时间大于20%,则可能出现I/O或磁盘受限情况,这一情况可能在缺少实内存的情况下由过多调页产生,也可能是由于不平衡的磁盘负载、碎片数据或应用模式而产生,对一个不平衡负载来说,同样的iostat报告提供了必要的信息,但是有关文件系统或逻辑卷,即逻辑资源来说,必须有使用诸如filemon或fileplace工具来获取信息。 如果需要指定磁盘名称,可以使用-d选项。 例如:iostat–dsda1,报告如图所示。

-tps表示每秒钟物理磁盘传送的次数,一次传送是从设备驱动程序到物理磁盘的一次I/O处理请求,多重逻辑请求可以组合成单一的磁盘I/O请求,传送的大小是不确定的。-Blk_read/s显示在测量间隔中每秒钟从物理卷中读取的数据量(以KB/s为单位)。-Blk_wrtn/s显示在测量间隔中每秒写入物理卷的数据量(以KB/s为单位)。-Blk_read显示在测量间隔中总的从物理卷中读取的数据量(以KB为单位)。-Blk_wrtn显示在测量间隔中总的写入物理卷的数据量(以KB为单位)。

使用vmstat命令也可以监控磁盘的性能,关于vmstat命令的使用在cpu章节中进行了详细的介绍,这里就不详细介绍了,关于vmstat命令输入报告中需要重点关注in列的内容,in列的内容表示评估间隔中(每秒)发生的硬件或设备中断的次数,中断的示例为磁盘请求完成和10毫秒的时钟中断,即一秒钟发生100次中断。sar命令是用来收集关于系统的统计数据的标准UNIX命令,通过该命的-d选项,可以详细的查看磁盘I/O的统计信息。例如sar –d 3 3的报告如图所示。

%busy服务传送请求时,时间设备繁忙程度。avque那段时间内所有从适配器到设备的未完成请求的平均数,可能有附加的I/O操作在设置驱动程序队列中,如果存在瓶颈,这个数字将是一个很好的指示符。r+w/s进出设备的读/写传送次数,这同iostat命令中的tps列内容一致。blks/s以512字节为单位传送的字节数。Avwait事物等候服务的平均次数(队列长度),传送请求在队列中空等候的平均时间(以毫秒为单位)。avserv平均每次搜索的毫秒数,设备服务每次传送请求的平均时间(包括搜索时间、转动等待时间和数据传送时间)(以毫秒为单位)。如果需要测试磁盘写能力,使用以下命令time dd if=/dev/zero of=/test.dbfbs=8k count=300000因为/dev/zero是一个伪设备,它只产生空字符流,对它不会产生I/O,所以I/O都会集中在of文件中,of文件只用于写,所以这个命令相当于测试磁盘的写能力。其中300000表示写的次数。

如果需要测试磁盘读能力,使用以下命令time ddif=/dev/sda1 of=/dev/null bs=8kcount=300000因为/dev/sda1是一个物理分区,对它的读取会产生I/O,/dev/null是伪设备,相当于黑洞,of到该设备不会产生I/O,所以,这个命令的I/O只发生在/dev/sdb1上,也相当于测试磁盘的读能力。其中300000表示读的次数。

如果需要测试磁盘同时读写能力,使用以下命令time dd if=/dev/sda1 of=/test1.dbf bs=8kcount=300000这个命令下,一个是物理分区一个是实际的文件,对它们的读写都会产生I/O(对/dev/sda1是读,对/test1.dbf是写),假设他们都在一个磁盘中,这个命令就相当于测试磁盘的同时读写能力。其中300000表示读的次数。

一般来说,高的%iowait表明系统存在一个应用程序问题、缺少内存问题或低效的I/O子系统配置,例如,应用程序的问题可能是由于许多I/O请求,而不是处理许多数据。理解I/O瓶颈并且要清楚解决瓶颈问题的关键在于提高I/O子系统的效率。磁盘的灵敏度可以以下几种方式出现,并具有不同的解决方法,一些典型的解决方案如下:

  • 限制在特定的物理磁盘上活动逻辑卷和文件系统的数目,该方法是为了在所有的物理磁盘驱动器中平衡文件I/O;
  • 在多个物理磁盘间展开逻辑卷,该方法在当有一些不同的文件被存取时特别有用;
  • 为一个卷组创建多个Journaled文件系统(JFS)日志并且把它们分配到特定的文件系统中(最好在快速写高速缓存驱动器中),这对应用程序创建、删除或者修改大量文件特别是临时文件来说十分有用;
  • 如果iostat命令的输出结果表明负载的I/O活动没有被均衡地分配到系统磁盘驱动器中,并且一个或多个磁盘驱动器的使用率经常在70-80之间或更高,就得考虑重组文件系统,例如备份和恢复文件系统以便减少碎片,碎片将引起驱动器过多地搜索并且可能产生大部分响应时间过长;
  • 如果有迹象表明一小部分文件被一次又一次地读取,可以考虑附加的实存是否允许那些文件更加有效地缓存;
  • 如果负载的存取模式是随机占主导地位,可以考虑增加磁盘并把将那些随机存取的文件分布到更多更好多的磁盘中;
  • 如果负载的存取模式是顺序占主导地位并且涉及多个磁盘驱动器,可以考虑增加一个或多个磁盘适配器,也可以适当地考虑构建一个条带状逻辑卷来适应大型并且性能关键的顺序文件;
  • 使用快速写高速缓存设备;
  • 使用异步I/O;

directoryinfo 读取 映射磁盘_LoaRunner性能测试系统学习教程:磁盘监控(5)相关推荐

  1. 测试服务器最大链接数_LoaRunner性能测试系统学习教程:probe监控(3)

    上期我们讲到LoaRunner性能测试Tomcat监控,这期我们讲LoaRunner性能测试probe监控. probe监控 这是一款 Tomcat 管理和监控工具,前身是 Lambda Probe. ...

  2. 怎么查看linux日志里请求量最高的url访问最多的_LoaRunner性能测试系统学习教程:日志文件分析(8)...

    上期我们讲到LoaRunner性能测试MPM相关参数,这期我们讲LoaRunner性能测试日志文件分析. 日志文件分析 为了有效地管理web服务器,以及获取有关服务器活动和性能相关的数据反馈.Apac ...

  3. 保护站点上已存在另一个具有相同实例 UUID的虚拟机_LoadRunner性能测试系统学习教程:工具介绍(上)...

    在使用LoadRunner进行性能测试时,需要先了解LoadRunner的工作原理.工作过程和内部结构,这样可以对其有一个整体的了解和概要的认识. 主要包括以下内容: LoadRunner简介 Loa ...

  4. LoadRunner性能测试系统学习教程:Analysis分析器(1)

    分析器顾名思义就是对测试结果数据进行分析的组件,它是LoadRunner三大组件之一,其重要性不言而喻.在Controller组件执行场景的过程中,LoadRunner会将数据收集起来并保存到数据库中 ...

  5. CocosCreator知识库amp;amp;lt;二amp;amp;gt;关于TiledMap的系统学习教程(阶段性更新)

    CocosCreator知识库<二>关于TiledMap的系统学习教程<26/12/2017>(长期更新,看不懂先大致总体搞一遍,然后回头细看)                 ...

  6. linux系统如何修改磁盘名称,Linux系统怎么修改磁盘参数(名称,盘符等等

    匿名用户 1级 2017-02-26 回答 1.  mknod 用法:mknod  设备名称   [bcp][Major][Minor] 设备种类, b   :   设置设备名称为外部的外部的存储设备 ...

  7. win7系统打开计算机怎么不显示磁盘分区,win7系统怎么隐藏磁盘分区

    对磁盘分区进行隐藏设置保护一些重要文件,那么大家会知道win7系统怎么隐藏磁盘分区吗?今天学习啦小编与大家分享下win7系统隐藏磁盘分区的具体操作步骤,有需要的朋友不妨了解下. win7系统隐藏磁盘分 ...

  8. ubuntu入门与系统学习教程

    1.终端操作: https://blog.csdn.net/hello_new_life/article/details/75099249?utm_medium=distri bute.pc_rele ...

  9. win7磁盘清理_win7系统怎么清理磁盘 win7系统清理磁盘方法【详解】

    我们都知道电脑使用一段时间之后就会产生很多磁盘垃圾,这些磁盘垃圾如果没有清理就会影响用户的正常使用,不过有很多用户都不知道怎么清理磁盘,那么win7系统如何清理磁盘呢?今天为大家带来win7系统清理磁 ...

最新文章

  1. 华人一作登ICCV 2021,实时超分新SOTA!AutoML显神威:1%参数量,超清视频70倍加速...
  2. 家用机器人风口来临,但巨头围猎背后的前景不容乐观
  3. windows下ffmpeg使用dxva2加速硬件解码
  4. ESP8266 Flash
  5. 16 | 基础篇:怎么理解内存中的Buffer和Cache?
  6. 二叉树的中序遍历_Go 刷 leetcode从前序与中序遍历序列构造二叉树
  7. python 制作抽奖箱_用Excel函数制作抽奖箱
  8. 吴恩达深度学习CNN作业:Convolutional Neural Networks: Application
  9. 3D中obj文件操作
  10. 来一发,网页下拉刷新
  11. Birth-Death process 生灭过程
  12. 【SVM分类】基于布谷鸟算法优化支持向量机SVM实现数据分类附matlab代码
  13. mine 规范_2016国家最新设计及验收标准名称汇编GB
  14. mcc460_最新MCC和MNC国家代码运营商对应表
  15. 解析 Github 的默认头像
  16. 色彩RGBA值写作代码
  17. 数学分析模型(一):数据的无量纲处理方法及示例(附完整代码)
  18. python series转置储存到excel_P9:pythonpandas玩转excel文件
  19. 程序员面试的奇葩问题
  20. ALTER SYSTEM ARCHIVELOG CURRENT挂起案例

热门文章

  1. RS100项目进展更新
  2. 四叶草社交平台——十天冲刺(5)
  3. python3之time模块
  4. (转)SQLServer实例讲解
  5. transform你不知道的那些事
  6. node.js项目中常量的配置 - 个人文章 - SegmentFault 思否
  7. javascript --- [有趣的条件]双等号的隐式调用和数据劫持
  8. 浅谈javaweb三大框架和MVC设计模式
  9. 07、08 条件渲染、列表渲染
  10. Webpack进阶(一) tree shaking与不同mode