本节书摘来华章计算机《vsphere性能设计:性能密集场景下cpu、内存、存储及网络的最佳设计实践》一书中的第2章 ,第2.4.2节,[美] 克里斯托弗·库塞克(christopher kusek) 著 吕南德特·施皮斯(rynardt spies)姚海鹏 刘韵洁 译, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
如第7章所述,存储通常对整个虚拟机的性能影响最大。一个机构可以购买具有最强cpu、巨大容量ram的服务器,但是如果存储能力不能满足性能需求,那么所有虚拟机都将受到影响。正因如此,在投入生产环境之前,拥有一个用来测试和验证存储平台性能的工具集是十分重要的。
iometer
生成存储i/o最知名的工具应该就是iometer。iometer深受大家喜爱,因为它可以生成特定类型的i/o来模拟应用的负载配置。可以将i/o配置成随机或者连续、读或写,还可以选择使用特定的块大小。所以iometer不仅是一个可以生成i/o活动的工具,且它生成的i/o能够非常接近地模拟实际应用生成的i/o。并且由于它只是一个运行在windows或linux下的应用程序,所以iometer可以方便地在物理或虚拟服务器上使用。
iometer通过在虚拟机上生成一个测试文件,然后针对这个文件运行i/o测试。这个测试文件是定义在分区里的,所以需要在开始测试之前把千兆字节转化为分区。在maximum disk size方框中填入合适的分区的数量,如图2-14所示。这个例子中,使用16777216个分区来生成一个8gb的测试文件。要确保在targets下选择了适当的磁盘(如果虚拟机有多个虚拟磁盘)并选择了适当的worker数量。每个worker都是一个产生i/o的线程,worker的总数不应该超过分配给虚拟机的vcpu的数量。
iometer测试文件的大小
当运行一个测试文件时,为iometer测试文件选择合适的大小是很重要的。一个常见的错误是,如果运行一个太小的iometer测试文件,会导致不正确的结果。当一个操作系统(如windows)读一个文件时,为了更快地读取它会复制文件的一部分(或整个文件)到ram中。对于iometer测试来说,这样就会使结果偏离,因为是从ram中读取而不是从磁盘中读取。
根据经验产生的iometer测试文件的大小应该至少是配置的ram大小的两倍。这样就消除了操作系统在ram中缓存文件的可能性,消除了对结果的影响。

接下来,要为测试定义接入参数,来确定想要产生的i/o类型。例如,如图2-15所示,正在用一个16kb的块产生一个新的接入参数,读和写的比例分别是60%和40%。这些i/o会分成60%随机和40%顺序。如果这个i/o配置符合你的期望,那么运行这个测试你就能知道在这个预期负载下存储的性能。你还可以调整与特定存储阵列相匹配的队列深度。第7章将讨论更多有关队列深度的细节。
一旦测试配置完成,就可以简单地选择屏幕上方的绿色标记来启动。选择results display标签可以看到实时结果。滑动update frequency滑块到一个较低的值,如1或2,如图2-16所示。为了有一个更形象(也更有趣)的视图,选择每行末尾的“>”按钮,可以弹出一个计速器视图,如图2-17所示。
iometer带有一些默认接入参数,但是最好定义一个与你的环境最相符的参数。尽管可以简单地生成尽可能多的i/o进行测试,来观察存储基础设施极限,但是测试中可能没有那么多的值,除非你试图出售存储阵列。毕竟,如果测试与实际的存储i/o配置文件不准确匹配,最终数据将是没有用的。
当测试完成之后,你不仅可以知道能够生成的iops的数量,还可以知道记录下来的延迟。一般来说,iops的值越高,性能越好,只要iops的延迟在合理范围即可。可接受的延迟值取决于使用的存储类型,但对大部分工作负载来说,5~10毫秒是可接受的延迟。
应用类型多种多样,所以根据应用类型的不同i/o负载也不同。在使用iometer之前了解你期望的i/o配置文件是很重要的。输出结果好坏取决于你的测试数据,所以在使用iometer之前要得到期望的i/o配置文件的准确描述。如果你不确定i/o配置文件是怎样的,请与应用所有者或者软件供应商联系。或者如果你只是希望测试存储阵列的界限,你可以配置iometer来尝试驱动存储的最大iops数量。
有关iometer的更多信息以及工具下载,请访问www.iometer.org。
i/o分析器
i/o分析器是vmware用来测量虚拟环境中存储性能的一个虚拟工具。i/o分析器使用iometer来产生i/o负载。它还可以把存储i/o轨迹作为输入来产生一个自动的负载或者更接近真实应用的工作负载。
i/o分析器提供了一个简单易用的图形界面来在虚拟基础设施中运行iometer测试。它的功能超过iometer,可以让你回放实际工作负载的轨迹,并且有定时功能,可以在一天的特定时间运行测试。
i/o分析器与简单地运行iometer还有一点不同,它可以看到esxtop。如果你给esxi主机授权,i/o分析器可以显示iometer的测试结果以及相关的esxtop组件。在一个画面中可以看到两个工具的结果,可以大大节省时间,这是使用i/o分析器的一大好处。
轻松地运行iometer测试并查看结果是i/o分析器的关键好处。这个工具由vmware免费提供,有一个vmware labs fling,是性能工具箱中的便捷工具。