【IT168 技术】文件系统的种类繁多,市场竞争积累,为维护市场秩序,针对文件系统的基准也相继出台。各大厂商们利用这些基准来宣扬他们的文件系统与别的某个品牌相比多么好,但是我们不能以相同的方法对待文件系统基准,也就是说,我们应该关注SPEC基准,因为它的设计目的就是使得厂商无法篡改数据结果。
文件系统存在一个很大的问题就是,它是SPEC基准的对立面,目前并没有一个成型的、受到厂商一致认同的标准文件系统基准。我曾经是一位基准制订者,并且是一位具有革新精神的基准制订者,所以我很了解厂商可能使用的技俩。现在让我们详细谈谈这个问题,希望这能让你变成一位更加精明的用户。
什么是真正的基准?
这是一个我们应该总在问自己的问题:什么是真正的基准?这是我自己的定义:一项真正的基准必须能够代表你真实的工作负载,以在你所考虑的系统上运行的相同方式运行,并且与该工作负载运行在系统上的相同时间段内。以下是一些关键点:
·它不是你今天运行在那个系统上的工作负载,而是你要运行在新系统上的工作负载
·为了具有完全的代表性,该工作负载应该以在你系统上运行的相同方式运行
内存利用率是文件系统基准的一个重要部分。如果你不是运行像数据库这样的真实应用,而是使用IOZONE这样的基准测试,那么I/O请求可能会被整合成为更少、更大的请求,如果没有真实应用运行的话这是不可能实现的。这将会使内存I/O看上去比在实际条件下的状况更好。
另一个大问题是碎片整理。我所见过几乎所有文件系统都会因为碎片整理——通常是对数据和文件系统元数据的碎片整理——而性能降低,我所知的所有基准都没有把文件系统的碎片整理考虑在内。厂商总是宣称他们的文件系统如何不会受到碎片整理的影响,但是我不相信,而且在实际环境中我也从未看到过能够印证他们说法的现象。大概只有在一种情况下碎片整理不是一个问题,那就是如果你购买了一款系统,然后生产了一些文件,并且从来不对这些文件作任何修改或者不增加任何存储。我从来没有见多这种类型的混合内容环境,而且我估计其他人也没见过这种情况。
这只是其中的两个例子,实际上还有更多,例如底层存储和互连。就我所知,没有人做的是真正的文件系统基准,因为他们没有包括文件系统碎片整理,也没有实际使用内存空间、带宽和CPU的应用。
有关基准的一些技俩
下面是其他一些你需要警惕的基准方面的技俩。
内存利用率
我会详细谈到内存带宽和内存空间。随着PCIe 2.0的出现,现在所有总线就支持5 GB/s的内存带宽。采用了1333 MHz前端总线和FBDIMM的英特尔至强5100系列处理器的内存带宽为21.3 GB/s。因此,一个PCIe 2.0总线可能会占用设备总内存空间的23%,两个PCIe 2.0总线就会占用46%。如果你运行的是实际应用而不是基准测试,应用占用带宽,这样,不占用带宽地运行一个文件系统是与实际工作负载不相符的。
由于应用负载的不同,大多数文件系统的内存利用率是不同的,因此就无法判断文件系统将I/O请求缓存在内存中是如何处理这些请求的。最近我看到了一家厂商为了展示他们文件系统惊人的性能而发布的一系列基准。如果你仔细阅读硬件规格和基准描述的话,你会发现,有足够的内存让数据库完全利用内存空间。因此,当作为后台程序同步文件的时候才会运行I/O,或者由缓存来异步处理。对比之下,这家厂商的确令人质疑,尤其是他们的文件系统并不支持直接I/O。
存储子系统
除了像在基准测试时使用光纤通道或者SAS驱动器、在对比系统时使用SATA驱动器等这样的明显有些过分的测试方法,还有其他一些需要关注的问题。一些文件系统在一定大小范围内做直接写入或者读取I/O。如果厂商很守规矩,使用比内存和大型I/O请求(常见于数据库)更大的文件,但是这个文件系统是针对小型块分配和读写设计的,并不支持直接I/O。如果分区很小,那么就要将大型请求进行分割,然后使用RAID-1帮助拉近与其他在这种测试下占据优势的系统的差距。
文件系统可调
有些文件系统默认可以根据某些I/O请求的大小和线程数进行调节。有些厂商表示,他们使用的不是那些可能导致对比文件系统表现糟糕的调节选项。当然,有些文件系统有上百个可调节选项,选择一个适合对比的选项可能会很难,但是很多厂商对默认调节选择了并不适合的选项,这可能会得出不同的基准结果。
I/O测试
大多数厂商并没有将实际应用作为他们I/O基准的一部分。虽然有些厂商这么做了,但是不管在I/O基准还是应用方面这都是有欺骗性的。我没有遇到过嵌入了专门针对文件系统的调节选项的专有应用,但是你必须警惕有些数据库、文件系统基准和其他应用有专门嵌入的文件系统调节选项。IOZONE是一项常见的基准,它能针对VxFS文件系统和HP-UX操作系统作文件系统性能变化,不是说IOZONE是一项糟糕的测试,但是这意味着你在使用任何I/O测试的时候小心可能存在的问题,不管是数据库或者其他一些基准。
FUD因素
任何营销团队的目标就是散布关于你是否做出了正确决策的FUD(恐惧、不确定、怀疑,即心理恐怖战术)。最近我看到的不少文件系统基准就是很好的例子,因为很多这些系统在帮助你查看它在真实环境中有怎样表现方面并不会有太大用处。最近比较流行使用SPC-1和性价比数据。仔细阅读基准数据,谨防可能存在的问题,了解你自己的真正需求。