LoaRunner性能测试系统学习教程:磁盘监控(5)( 三 )


如果需要测试磁盘写能力 , 使用以下命令
time dd if=/dev/zero of=/test.dbfbs=8k count=300000
因为/dev/zero是一个伪设备 , 它只产生空字符流 , 对它不会产生I/O , 所以I/O都会集中在of文件中 , of文件只用于写 , 所以这个命令相当于测试磁盘的写能力 。 其中300000表示写的次数 。
LoaRunner性能测试系统学习教程:磁盘监控(5)文章插图
如果需要测试磁盘读能力 , 使用以下命令
time ddif=/dev/sda1 of=/dev/null bs=8kcount=300000
因为/dev/sda1是一个物理分区 , 对它的读取会产生I/O , /dev/null是伪设备 , 相当于黑洞 , of到该设备不会产生I/O , 所以 , 这个命令的I/O只发生在/dev/sdb1上 , 也相当于测试磁盘的读能力 。 其中300000表示读的次数 。
LoaRunner性能测试系统学习教程:磁盘监控(5)文章插图
如果需要测试磁盘同时读写能力 , 使用以下命令
time dd if=/dev/sda1 of=/test1.dbf bs=8kcount=300000
这个命令下 , 一个是物理分区
一个是实际的文件 , 对它们的读写都会产生I/O(对/dev/sda1是读 , 对/test1.dbf是写) , 假设他们都在一个磁盘中 , 这个命令就相当于测试磁盘的同时读写能力 。 其中300000表示读的次数 。
LoaRunner性能测试系统学习教程:磁盘监控(5)文章插图
一般来说 , 高的%iowait表明系统存在一个应用程序问题、缺少内存问题或低效的I/O子系统配置 , 例如 , 应用程序的问题可能是由于许多I/O请求 , 而不是处理许多数据 。 理解I/O瓶颈并且要清楚解决瓶颈问题的关键在于提高I/O子系统的效率 。 磁盘的灵敏度可以以下几种方式出现 , 并具有不同的解决方法 , 一些典型的解决方案如下:

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