存储 频道

实测为王!探究SSD固态硬盘性能下降谜题

  测试过程

  正如前面提到的,我们先在干净的磁盘上执行基准测试,然后执行I/O密集型压力测试,最后再次执行基准测试,并将前后两次基准测试的结果进行对比,基准测试的设置已经讨论过了,但“折磨”(压力)测试还需要进一步说明。

  I/O密集型测试的目的是为了考验底层存储介质的性能,顺带也测试了文件系统的性能,注意我们要测试的是一块英特尔SSD,从测试结果看各种提高性能的技术究竟对性能有何影响,因此I/O密集型测试也要针对各种文件大小和记录大小进行测试,我们选择的测试工具是IOR,它是一款基于MPI的I/O基准测试工具,支持N-N(N个客户端读/写N个文件)和N-1(N个客户端读/写单个文件)性能测试。根据测试的类型,IOR有很多选项,但最基本的是方法是将文件分解成多个段,段再按顺序分解成块,块上的数据以“t”为单位进行传输(t表示传输大小),下图显示了一个文件是如何用这些参数构造的。

测试过程
图 1 IOR文件布局

  为简单起见,段大小和块大小设为一样,即一个段只包含一个块。

  我们运行了两个IOR命令,每个重复执行10次,第一个IOR命令如下:

  mpirun -np 4 -machinefile ./machinefile ./IOR -a POSIX -b 64k -F -i 10 -s 200000 -t 4k

  其中“mpirun -np 4 -machinefile ./machinefile”全部是MPI命令选项。

  l -np 4:表示进程数为4。

  l -machinefile ./machinefile:指定主机名列表的位置,由于我们是在单机上测试,因此只列出了本系统的主机名,每个测试对应一条,因此总共有4条记录。

  l ./IOR:可执行文件的名称。

  IOR的真正运行参数是放在可执行文件IOR之后的,参数解释如下:

  l -a POSIX:告诉IOR使用POSIX API(不是MPI-IO或其它API)。
  l -b 64k:块大小,这里是64KB。
  l -F:告诉IOR每个进程使用一个文件。
  l -i 10:告诉IOR运行10次测试。
  l -s 200000:告诉IOR段的数量,这里是200000。
  l -t 4k:告诉IOR传输大小,这里是4KB。
  l -vv:告诉IOR输出详细信息。

  IOR将会使用前面的参数执行读和写测试,你可以根据块大小计算出文件的大小,每个段的块数,以及段的数量,下面我们略去了IOR的输出内容。但是从输出结果可以看出文件的总大小是48.83GB,需要注意的是,文件大小必须控制在64GB以内,因为磁盘格式化后的总大小才58.7GB,在前面的部分测试中,IOR在测试系统上运行时用时7分钟。

  第二个IOR命令和第一个类似,但块大小,传输大小和段数量不同,命令如下:

  mpirun -np 4 -machinefile ./machinefile ./IOR -a POSIX -b 1M -F -i 10 -s 14000 -t 256k

  下面我们同样略去了大部分代码,只展示部分输出结果如下:

  Operation Max (MiB) Min (MiB) Mean (MiB) Std Dev Max (OPs) Min (OPs) Mean (OPs) Std Dev Mean (s)Op grep #Tasks tPN reps fPP reord reordoff reordrand seed segcnt blksiz xsize aggsize

  --------- --------- --------- ---------- ------- --------- --------- ---------- ------- -------

  write 197.95 197.68 197.79 0.09 0.06 0.06 0.06 0.00 283.12821 4 4 10 1 0 1 0 0 14000 1048576 262144 58720256000 -1 POSIX EXCEL

  read 242.10 241.06 241.56 0.31 0.07 0.07 0.07 0.00 231.82731 4 4 10 1 0 1 0 0 14000 1048576 262144 58720256000 -1 POSIX EXCEL

  Max Write: 197.95 MiB/sec (207.56 MB/sec)

  Max Read: 242.10 MiB/sec (253.86 MB/sec)

  Run finished: Tue Sep 28 11:57:59 2010

  这次IOR测试使用更大的文件(54.69GB),测试耗时近90分钟。

  和I/O密集型测试一样,这两个IOR命令各运行了10次,但文件大小更大,给磁盘带来的压力也更大。

0
相关文章