2.2.2 vscsiStats
另一个重要的性能工具是vscsiStats。这个工具是ESXi的内置工具,并且允许你收集个人虚拟机I/O统计数据。esxtop在ESXi的主机层面收集实时数据,相比较而言,vscsiStats仅用来收集硬盘信息,下至个人虚拟硬盘层面。并且,由于esxtop不只用于存储性能监控数据,因此它不能给出虚拟机存储性能的整体视图。
vscsiStats工具可以用来排除性能问题,也能用于基准测试和性能测试。它返回虚拟机中关于I/O大小的信息,延时统计信息,以及VM生成的I/O是随机的还是序列化的。你可以获得所有这种信息而不用掌握关于虚拟机中运行原理的知识。因为vscsiStats只是简单地收集性能数据,所以你不用成为虚拟机中运行的应用或客户端操作系统方面的专家也可以收集这些数据。表2-3列出了vscsiStats可以收集的直方图数据的类型。
vscsiStats在ESXi控制台中的运行方式和esxtop相似。运行vscsiStats –l 将会得到一个列表,其中包含在ESXi主机中运行的所有虚拟机,包括每个虚拟机的wordGroupID和每个虚拟硬盘的handleID。如果你想收集某个拥有多个虚拟硬盘的虚拟机中的单个虚拟硬盘存储性能统计数据,那么这些数据非常有用。vscsiStats –l的输出如下:
Virtual Machine worldGroupID: 95174, Virtual Machine Display Name: VM1, Virtual
Machine Config File: /vmfs/volumes/707a93d0-63f06c9b/VM1/VM1.vmx, {
Virtual SCSI Disk handleID: 8197 (scsi0:0)
Virtual SCSI Disk handleID: 8198 (scsi1:0)
既然你有每个虚拟硬盘的worldGroupID和handleID,就可以配置vscsiStats来运行和收集想要的数据。为了启用vscsiStats来收集数据,记录前一个例子的worldGroupID(本例中为95174),并按如下命令输入。本例中,你将收集到每个虚拟硬盘的统计数据,但可以包含handleID来指明要监控的虚拟硬盘:
vscsiStats -s -w 95174
vscsiStats默认只运行30分钟。如果运行它的时间长于30分钟,只需要再一次键入之前的命令,它就会再运行30分钟。因为这类数据收集可以是多源的,所以它不要运行太长时间,否则可能影响主机上其他虚拟机的性能。
一旦运行30分钟,就可以查看收集到的数据。你只用挑选你想报告的直方图数据,并发出命令来查看它。如果要查看vscsiStats延时数据,使用以下命令:
vscsiStats -w 95174 -p latency
vscsiStats默认只简单地输出到屏幕,如图2-8所示。这个视图不是很有用,尤其是如果你要处理很多数据。正如esxtop一样,你可以把数据输出到CSV文件中,这样就可以用你更熟悉的工具,如Microsoft Excel,来处理它。
要想导出vscsiStats数据到Excel,你只需要在命令中输入配置参数和想要的直方图数据。例如,你想查看虚拟机的延时统计数据,并保存到CSV文件latency.csv。为了查看虚拟机的延时统计数据,并保存到CSV文件,使用以下命令:
vscsiStats -w 95174 -p latency -c >latency.csv
在Excel中打开数据后,展开A、B列来找到想要的数据。假设你想看监控期间内的所有读入I/O延时。在CSV中,在A列中查找“Histogram: latency of Read IOs in Microseconds (us)”。在其下,你将在A列中看到“Frequency”,B列中看到“Histogram Bucket Limit”,如图2-9中高亮部分所示。
如果你选择了Frequency 和 Histogram Bucket Limit下的所有东西,并插入了一个图,但是图无法正确显示,因为Excel不能恰当地选择横纵坐标轴,但是这很容易修复。使用下述过程就可以在Excel中产生vscsiStats数据的图:
1)选择想画图的数据(图2-9中高亮部分部分),切换到功能区的Insert标签页,选择Column,选择2D或3D列图。
2)在图插入后,单击右键并选择Select Data。
3)在Legend Entries (Series)中,单击Histogram Bucket Limit 并单击Remove按钮。
4)单击Horizontal (Category) Axis Labels下的Edit按钮,仅选择Histogram Bucket Limit下的数据,并单击OK按钮。
5)一旦在Legend Entries (Series)下仅显示Frequency,以及在Horizontal (Category) Axis Labels下仅有从Histogram Bucket Limit中选出的数据,如图2-10所示,单击OK按钮可以显示合适的图。
正如你所见,vscsiStats是一个用于详细理解虚拟机存储性能的特性强大的工具。vscsiStats在使用vSphere 5.5中的vFlash Read Cache时极为有用,具体细节将在第7章介绍。