IBM性能测试文档.docx
- 文档编号:30017483
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:11
- 大小:21.13KB
IBM性能测试文档.docx
《IBM性能测试文档.docx》由会员分享,可在线阅读,更多相关《IBM性能测试文档.docx(11页珍藏版)》请在冰豆网上搜索。
IBM性能测试文档
ServeRAID-MR10MSAS/SATA阵列卡性能分析
适用机型:
所有服务器
文档内容:
概述
ServeRAID-MR10M设计支持各种不同的商业应用,包括数据库,邮件服务器,文件服务器和web服务器,对于流媒体应用也可以获得良好的性能。
本文介绍了在MicrosoftWindowsServer2003和Linux环境下使用Iometer和ddbenchmark工具来测试ServeRAID-MR10M性能的方法,并且会与IBMMegaRAID8480控制器进行性能的对比。
本文分四个部分,第一部分简单介绍了测试工具和测试负载的概念,第二部分描述了测试的硬件和软件环境,第三部分提供了测试结果并且对结果进行了分析,第四部分根据性能图表分析了ServeRAID-MR10M的产品定位。
测试工具和负载
Iometer工具
Iometer是一个由Intel开发的、在IntelOpenSourceLicense维护下的硬盘性能测试工具,Iometer是系统下对存储子系统的读写性能进行测试的软件。
可以显示磁盘系统的最大IO能力、磁盘系统的最大吞吐量、CPU使用率、错误信息等。
用户可以通过设置不同的测试的参数,有存取类型(如sequential,random)、读写块大小(如64K、256K),队列深度等,来模拟实际应用的读写环境进行测试。
Iometer操作简单,可以录制测试脚本,可以准确有效的反映存储系统的读写性能,为各大服务器和存储厂商所广泛采用。
如果需要更详细的信息请访问
Iometer是一个生成磁盘工作负载并记录测试结果的工具,主要用于测试服务器的磁盘和网络子系统,这里请注意不是用于测试个人桌面系统的磁盘和网络子系统,单线程的copy工具经常被用来测试服务器的磁盘子系统,可能有两个原因导致这种情况,首先copy工具很容易掌握,并且不占用大量的系统资源。
其次,在大家进行磁盘benchmark测试的时候,并没有很好的理解服务器架构和桌面架构的不同。
其实copy工具对笔记本和台式机来说是一个适合的磁盘性能测试工具,但是并不适合应用在服务器环境中。
个人电脑系统是设计在一个时刻只完成一个任务,在这方面个人电脑系统做的很好。
事实上,在执行copy命令的时候,配置单个硬盘的个人电脑通常比一个配置多个硬盘磁盘阵列的服务器可以获得更好的性能。
造成性能差距的原因是两种机器不同的设计理念,服务器是设计在同一时间并行的处理多个任务的,copy是一个单线程的工具,它必须等一个I/O操作完成后才能进行下一个I/O操作,因此多个磁盘的磁盘阵列方式并不能被有效的利用。
使用Iometer工具测试服务器磁盘性能是一个很好的选择。
使用Iometer工具可以同时并行的发起多个I/O的请求,这种方式可以充分的利用磁带阵列中的所有磁盘的性能,与一个高性能的SMP应用利用磁盘阵列的方式类似。
Iometer还提供了一个叫“outstandingI/Os”的参数,通过设置这个参数可以增加一个windows环境下磁盘子系统的负载,在本文中的测试结果都是通过增加“outstandingI/Os”队列的数量所取得的,这个数量通常都超过了我们生产环境中的值。
在Linux环境中,可以通过增加多个“dynamoengines”来增加磁盘子系统的负载,本文中的结果也都是通过调整“dynamoengines”的数量来测得的。
在本文中我们使用的测试结果包括On-LineTransactionProcessing
workload,StreamingReadsworkload,Single-ThreadedSequentialReadworkload,StreamingWritesworkload,Single-ThreadedSequentialWriteworkload,RandomReadsworkload,andtheRandomWritesworkload。
下面会介绍一下这些测试结果。
On-LineTransactionProcessingWorkload
On-LineTransactionProcessing(OLTP)workload是模拟一个数据库事务处理的工作负载。
它定义了100%的随机访问,67%的读操作和33%的写操作。
使用transferrequestsize为4K,8K,16K,32K和64K。
在Windows下outstandingI/Os设为1到128。
在Linux下dynamoengines设为1到128。
StreamingReadsWorkload
TheStreamingReads是类似与一个读敏感的流媒体应用,它定义了100%的顺序访问和100%的读操作,transferrequestsize是32K,64K,128K,256K,512K,1M和2M。
在Windows下outstandingI/Os设为1到128。
Single-ThreadedSequentialReadsWorkload
Single-ThreadedSequentialReads是测试读取单个文件的性能测试,虽然单个文件复制的benchmark不适合服务器的性能测试,但是仍然有一些用户会选择进行这个测试。
它定义了100%顺序访问,100%读操作,transferrequestsize是64K,128K,256K,512K,1M和2M。
在Windows下outstandingI/Os设为1。
在Linux下dynamoengines设为1。
RandomReadsWorkload
RandomReadsworkload定义了100%的随机访问和100%的读操作,transferrequestsize是4K和8K。
在Windows下outstandingI/Os设为1到128。
在Linux下dynamoengines设为1到128。
RandomWritesWorkload
RandomReadsworkload定义了100%的随机访问和100%的写操作,transferrequestsize是4K和8K。
在Windows下outstandingI/Os设为1到128。
在Linux下dynamoengines设为1到128。
ddFileCopyBenchmark
dd文件拷贝工具在linux上是一个很流行的评估I/O性能的工具,虽然dd命令测试方法并不适合服务器环境下的负载,但还是有一些客户选择使用它,下面我们介绍一下dd工具的测试方法,
在裸设备上运行dd命令测试
dd读测试
timeddif=/dev/sdb1of=/dev/nullbs=64K
timeddif=/dev/sdb1of=/dev/nullbs=256K
timeddif=/dev/sdb1of=/dev/nullbs=512K
timeddif=/dev/sdb1of=/dev/nullbs=1M
dd写测试
timeddif=/dev/zeroof=/dev/sdb1bs=64K
timeddif=/dev/zeroof=/dev/sdb1bs=256K
timeddif=/dev/zeroof=/dev/sdb1bs=512K
timeddif=/dev/zeroof=/dev/sdb1bs=1M
在ext3文件系统上的测试,
mountext3分区
mount/dev/sda1/drive1
运行dd测试
timeddif=/dev/zeroof=/drive1/testfile.txtbs=64K
timeddif=/drive1/testfile.txtof=/dev/nullbs=64K
rm/drive1/testfile.txt
timeddif=/dev/zeroof=/drive1/testfile.txtbs=256K
timeddif=/drive1/testfile.txtof=/dev/nullbs=256K
rm/drive1/testfile.txt
timeddif=/dev/zeroof=/drive1/testfile.txtbs=512K
timeddif=/drive1/testfile.txtof=/dev/nullbs=512K
rm/drive1/testfile.txt
timeddif=/dev/zeroof=/drive1/testfile.txtbs=1M
timeddif=/drive1/testfile.txtof=/dev/nullbs=1M
rm/drive1/testfile.txt
测试环境
ServeRAID-MR10M测试使用IBMSystemx3655,配置两个双核AMDOpteron2218(2.60GHz)和2GB系统内存。
Windows测试环境使用MicrosoftWindowsServer2003Enterprisex64EditionwithSP1,windows阵列卡驱动版本为2.17.0.64。
Linux环境为SUSELinuxEnterpriseServer10(SLES10)withSP1(64-bit),Linux下驱动版本为00.00.03.13-2。
ServeRAID-MR10M微码版本为1.12.122-0393
EXP3000存储扩展柜ESM微码版本是0178,36.415rpmSAS硬盘微码版本为BA19,测试环境示意图如下:
Windows环境测试结果分析
本文中的测试结果都是在特定的操作系统和环境下得到的,在你的操作系统环境下得到的结果可能有很大的不同。
下表是分别在12,24,48和120块36.4GB、转速15k的SAS硬盘上,在平均响应时间为15ms和峰值的结果,在结果中我们看到IOps和MBps的测试值和响应时间有一定的联系,然而大多数服务器应用并不一直等待磁盘I/O操作的完成,从而影响整个系统的性能,所以平均响应时间15ms应该更接近我们实际应用中的环境。
RAID-5WindowsOLTPWorkloadResults
表1是RAID5OLTP负载在不同transferrequest下的测试结果,所有测试的配置条件都是相同的,只利用整个磁盘容量的8%进行测试,启用缓存write-back,I/Opolicy设为direct,stripesize设为128K。
表1显示出OLTP负载的性能随着ServeRAID-MR10M上配置硬盘数量的增加而上升。
ServeRAID-MR10M支持扩展到216个硬盘,对于数据库应用,可以持续添加硬盘直到性能提升被控制器所限制,在表1的测试中120个硬盘已经达到了通过增加硬盘数量提升性能的峰值。
图1显示出在配置48块硬盘的情况下ServeRAID-MR10M和MegaRAID8480在8KOLTP测试中性能相近,ServeRAID-MR10M的IOps峰值稍高,而MegaRAID8480在低延时的情况下IOps稍高一点。
在OLTP测试中ServeRAID-MR10M相比MegaRAID8480有很大的优势,因为MegaRAID8480不支持安装超过48块硬盘,所以在配置超过48块硬盘的情况下就只能选择ServeRAID-MR10M。
根据图示我们发现ServeRAID-MR10M的性能峰值超过配置48块硬盘的MegaRAID8480102%。
RAID-5WindowsStreamingReadsandStreamingWritesWorkloadResults
图2是ServeRAID-MR10M和MegaRAID8480在不同requestsize下RAID-5streamingreads测试的性能图表
在图2中我们可以总结出3点,第一,在RAID-5streamingread性能测试中ServeRAID-MR10M的峰值比MegaRAID8480高68%,性能的提升是因为ServeRAID-MR10M的I/O处理器和内部总线进行了改进,所以ServeRAID-MR10M比MegaRAID8480更适合流媒体应用。
第二,ServeRAID-MR10M达到测试的峰值必须充分利用可用端口,这意味着为了达到RAID-5streamingread测试的峰值至少需要两个EXP3000扩展柜(每个SAS端口连接一个)。
第三,对于ServeRAID-MR10M,RAID-5streamingread的峰值在blockI/O为32K-64K的条件下即可达到,而一些竞争友商的阵列卡需要在block为128K或者更大的情况下才能达到。
图3是ServeRAID-MR10M和MegaRAID8480在RAID-5single-threadedreadperformance测试中的对比,在测试中我们发现在禁用read-ahead的情况下,两种阵列卡的性能测试结果是基本上相同。
MegaRAID8480阵列卡无论是否启用read-aheadRAID-5single-threadedreadperformance测试的性能都不会有明显的提升。
但是由于ServeRAID-MR10M在read-ahead算法上做了很大的改进,所以当开启read-ahead功能后测试结果有99%到393%的提升。
阵列卡默认的设置是禁用read-ahead的,因为大部分应用在这种情况下可以获得比较好的性能,开启这个参数对于单线程的顺序读取应用可以有很大的性能提升。
根据图4我们可以看到,在RAID-5streamingwrite测试中,ServeRAID-MR10M的性能比MegaRAID8480高45%到72%,ServeRAID-MR10M性能是大幅提升主要来自控制器内存速度的改进,另外ServeRAID-MR10MRAID-5streamingwrite的峰值在连接一个单独EXP3000扩展柜的情况下就可以实现。
图5显示出,在单线程写操作测试中,ServeRAID-MR10M性能比MegaRAID8480有37%到51%的提高。
一些习惯用copy文件测试去衡量性能的人会对这个测试更感兴趣。
另外如果启用ServeRAID-MR10Mread-ahead,此测试性能会有2%到15%的降低。
RAID-5WindowsRandomReadsandRandomWritesWorkloadResults
表2包含了ServeRAID-MR10M不同负载下随机读取的性能测试结果,随机读写性能指标通常用来衡量类似产品之间的性能高低,而且这些测试与一些典型的生产环境也很接近。
根据表2我们可以看到,随着配置在ServeRAID-MR10M上硬盘数量的增加,随机读写的性能也持续增加。
ServeRAID-MR10M支持最大配置216块硬盘,所以针对随机读写的负载,可以不断的添加硬盘来提升性能,直到性能提升受到控制器自身限制。
当配置超过120块硬盘的情况下性能的提升将受到控制器的限制,而不再受硬盘数量的限制。
图6显示在配置48个硬盘的情况下,ServeRAID-MR10M和MegaRAID8480在8K随机读负载下的性能很接近,ServeRAID-MR10M的IOps峰值略高,而MegaRAID8480在低延迟下IOps值稍微高一些。
因为MegaRAID8480不能支持超过48块硬盘,所以ServeRAID-MR10M在超过48个硬盘的情况下性能要明显的高于MegaRAID8480,它的峰值要高于配置48块硬盘的MegaRAID848051%。
图7显示在配置48个硬盘的情况下,ServeRAID-MR10M和MegaRAID8480在8K随机写负载下的性能很接近,ServeRAID-MR10M的IOps峰值略高,而MegaRAID8480的写操作延时会低一些。
因为MegaRAID8480不能支持超过48块硬盘,所以ServeRAID-MR10M在超过48个硬盘的情况下性能要明显的高于MegaRAID8480,它的峰值要高于配置48块硬盘的MegaRAID8480154%。
RAID-5LinuxOLTPWorkloadResults
下面介绍了Linux的测试环境,使用SUSELinuxEnterpriseServer10SP264-bit操作系统,在一些测试用ext3文件系统代替默认的raiser文件系统,一些测试使用”blcokdev”命令调整Linux系统的read-ahead设定,加入“readahead=16M”参数,用”blockdev–setra16384/dev/sdb”命令来增加每个阵列中的read-ahead设定。
表3是ServeRAID-MR10M在不同的requestsize下的OLTP测试结果,在所有配置中,每12个硬盘配置一个阵列,仅有磁盘总容量的8%被使用,负载同时的应用到多个阵列上,启用write-back缓存,I/Opolicy设为direct,stripesize是128K。
在表中我们分别可以看到平均响应时间是15ms和峰值的测试值,对比windows下的测试结果我们可以发现不同,在windows环境中平均响应时间是15ms的值只稍稍低于测试的峰值。
图8对比了Linux和Windows环境下配置120个硬盘的OLTP测试结果,Windows下的测试结果明显高于Linux下的结果,Windows下的响应时间也更低一些。
RAID-5LinuxSequentialReadsandSequentialWritesIometerWorkloadResults
图9-12列举了ServeRAID-MR10M在不同的requestsize下使用Iometer测试工具,RAID-5Linuxsequentialperformance的性能。
根据图9和10我们可以得出一些结论,第一,当使用一个单独的阵列的情况下无法达到测试的峰值,至少需要2个阵列配置。
第二,在使用blockdev设置Linux的read-ahead为16384后,读测试的性能有所提高。
第三,Windows读测试的峰值比Linux高59%到112%。
根据图11和12我们可以得出一些结论,第一,当使用一个单独的阵列的情况下无法达到测试的峰值,至少需要2个阵列配置。
第二,在使用blockdev设置Linux的read-ahead为16384后,写测试的性能没有明显增加。
第三,Windows写测试的峰值比Linux高于34%到68%。
RAID-5LinuxSequentialReadsandSequentialWritesddWorkloadResults
图13-15列举了ServeRAID-MR10M在不同的requestsize下使用dd测试工具,RAID-5Linuxsequentialperformance的性能,dd测试工具是一个单线程的读写操作工具。
根据图13和14我们可以得到的结论,第一,当使用一个进程去测试一个单独的阵列时,是无法得到测试的峰值的,对于dd测试,应该配置多个阵列来得到峰值。
第二,在顺序读测试中,我们无法简单的分析出使用ext3文件系统和使用raw裸设备之间的性能优劣。
对于单个阵列,ext3文件系统的性能好于raw裸设备,而使用dd并行对两个阵列进行测试的情况下,raw裸设备的性能又好于ext3文件系统。
当同时对十个阵列进行测试的情况就更加复杂,对于64K和256Ktransfersizes,ext3文件系统的性能好于raw裸设备,而对于512K和1Mtransfersizesraw裸设备的性能又好于ext3文件系统。
所以当需要决定选择文件系统或者裸设备能在dd测试顺序读测试中获得更好的性能时,建议两种方法都进行测试,这样可以选择出在当前配置中哪种文件系统可以获得更好的性能。
第三,当transfersizes为512K或更高,单个阵列,两个阵列配置裸设备的情况下,dd顺序读测试在配置Linuxread-ahead为16384后可以获得更好的性能。
还应该注意的是此测试的峰值是在配置10个阵列使用默认的Linuxread-ahead设置的情况下获得的。
因此,使用更大的Linuxread-ahead可能在绝大多数情况下获得性能的提升,但不是在任何配置下都可以,只有在实际测试中才能确认在当前配置下哪种Linuxread-ahead对性能是更有利的。
最后我们看到Windows下的Iometer测试结果比Linuxdd测试结果要高22%到202%。
根据图5我们可以得出以下结论,第一,RAID5dd顺序写测试的峰值是在使用raw裸设备的情况下得到的,使用ext3文件系统无法达到测试的峰值,在ddRAID5顺序写测试中,使用raw裸设备的测试结果普遍高于使用ext3文件系统的。
第二,在使用单个阵列进行测试时,如果将Linuxread-ahead设为16384,性能会有少量的下降。
但是在对多个阵列同时进行测试的情况下,使用16384的Linuxread-ahead可以获得性能的提升。
最后,Linuxdd顺序写测试使用raw裸设备的峰值要稍微高于WindowsIometer测试的结果,大约高4%左右。
RAID-5LinuxRandomReadsandRandomWritesWorkloadResults
表4包含了随机读8K,32K,64K和随机写8K,32K,64K负载的测试数据,随机读写性能指标通常用来衡量类似产品之间的性能高低,而且这些测试与一些典型的生产环境也很接近。
与表2在Windows下随机读的测试结果不同.Linux下随机读测试的平均响应时间为15秒和峰值时的测试值有很大的距离。
在随机写测试中这两个值在8K负载下相差不大,但是在32K和64K测试中差距就很大了。
GettingtheBestOut-of-the-BoxWritePerformance
像任何其他使用电池的电气设备一样,ServeRAID-MR10M阵列卡的电池在正常运行前必须进行充分的充电。
ServeRAID-MR10M电池的初始化操作包括一次电池的完全充电,一次完全放电和另外一次完全充电,这个初始化操作将花费数个小时的时间才能完成。
电池初始化的操作将影响ServeRAID-MR10M的写操作性能,因为默认的情况下在电池完成初始化进入完全操作状态之前,write-back缓存功能是禁用状态。
如果需要在电池初始化之前实现好的写测试性能,有下面两个选择:
第一是在系统配置ServeRAID-MR10M后,让电池在前一天晚上通宵进行初始化操作,然后第二天早上开始收集性能数据。
当电池完全初始化后将自动开启write-back缓存功能,所以写测试的性能将可以充分发挥。
第二是在MegaRAIDStorageManager开启“UseWr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- IBM 性能 测试 文档