比较机器的磁盘性能

我正在将旧的Linux机器上运行的应用程序移动到虚拟机上。 作为这个的一部分,我需要certificate虚拟机至less有容量(即CPU速度,内存,磁盘,磁盘速度,networking速度等),否则这些举动将减慢应用程序的速度。

所以,作为其中的一部分,我需要一种分析磁盘性能的方法。 我了解性能是部分特定于应用程序(即顺序/随机读取/写入的数量和相对比率等)。

我知道有hdparam -t命令,它有时间从磁盘的第一部分顺序读取。 然而,有没有一种工具可以给磁盘一个顺序/随机活动和某种得分的锻炼? 有没有更好的磁盘性能工具?

有很多,但我只会谈论两个。

IOMETER

IOMeter是一个function非常强大的基准testing工具。 在讨论新存储系统的性能时,您经常会发现主要基准站点正在使用它。 Anandtech使用它已经很长时间了,可能仍然是整个基准testing套件中的一个工具。

IOZONE

我个人最喜欢的是, IOZone的function比IOMeterless,但使用起来更方便。 你可以用很less的标志得到一个相当好的基准,并且可以调整它以得到你正在寻找的东西。 它还具有吞吐量testing模式,可以同时产生多个同时testing线程,以便您了解一个大型过程锤击存储与大量锤击存储的过程之间的差异。


当涉及到相关性的时候,这两种工具都可以吹出水面。 HDParm不处理足够的数据,不能完全排除系统内存的影响。

在对虚拟空间进行基准testing时,请注意,存储性能必然要比专用存储更难以预测。 这两个testing都可以使您和存储之间的I / O通道饱和,这意味着一些其他经历高I / O的虚拟机可能会甩掉您的数字,而您的基准testing也会作为回报。

如我所说,IOZone易于使用。 这会给你一个真正的坚实的IO锻炼:

 iozone -a -s 8G 

这将在8GB的文件上做一个完整的基准testing系列。 你想要的文件大于内存中的RAM,所以可能会更小或更大,这取决于你在做什么。

命令行实用程序bonnie++在以足够标准的方式分析硬盘驱动器IO性能方面做了相当不错的工作,这对于跨机器进行比较,在虚拟环境内外进行比较以及在更改硬件规格时都很有用。