IBM公司已进行的基准测试可以解释在真实世界虚拟化环境中是如何执行事务处理的。
当去年年底事务处理委员会(TPC)抛出TPC-VMS服务器虚拟化基准测试规范时,就有人抱怨该规范并不符合最终用户的实际需求:他们把运行了事务处理工作负载的虚拟化服务器与裸机进行比较,并基于此给出了其开销。
但是,IBM公司有时候是很大度的,因此它在Red Hat的KVM虚拟机管理程序上进行了一个TPC-C测试,而不是TPC-VMS。
在基于双插槽Xeon E5服务器上安装KVM,IBM并没有采取任何TPC-VMS动作,这是刻意选择并用于混淆物理和虚拟服务器之间比较的,从而确定虚拟化费用。这种比较是很重要的,特别是对于诸如事务处理这样I/O密集型的工作负载。
在二十世纪九十年代初,TPC-C在线交易处理基准测试出现时,内存的价格是非常昂贵的,而TPC-C数据库必须存储在磁盘驱动器上。CPU都是适度供电的,其价格也是非常昂贵的,而服务器中I/O子系统的负载都是相当高的。但是,如今的双插槽服务器都配有多个TB级主内存,并具有大量的I/O容量,因此,TPC-C数据库的很大一部分基本上都是在内存中运行。
到底是多大的一部分,无法说出具体的数字。它不是一个SAP HANA内存驻留数据库设置,但有了现代数据库和操作系统中固有的缓存信息,一个运行TPC-C测试的现代服务器要比二十年前本质上的磁盘驱动数据库更接近于HANA实例。当然,这里的磁盘驱动器是用于I/O的,但那也是因为测试要求磁盘容量能按最终用户的要求而扩展。
诸如TPC-C这样的测试推动了多核芯片配备大内存容量和高带宽的发展趋势,这样也就促使这样的高端配置成为了业界标配,也让我们认为是理所当然的。很多人都认为基准测试是无用的,也许他们忘记了它对系统架构和软件设计的影响。但是,如果仔细观察的话就会发现,事实上也需要基准测试来推动实际创新。
当然, 最好的做法还是做好自己的测试。如果所有的数据用于数以百万计的服务器,那么这样一个大数据项目是值得这样做的,这将是真正有趣的事情,可能也是有用的。
在蓝色巨人测试运行KVM的TPC-C设置中,专家们使用了一个配有两个八核Xeon E5-2690处理器、主频达到2.9GHz的System x3650 M4服务器。对于这台机器,IBM增加了768GB的主内存和四个Qlogic 8Gb/秒光纤通道适配器,连接九个DS3524磁盘阵列和一个DS3512磁盘阵列,其中共有44个硬盘驱动器和72 个SSD,共计总容量40.3TB。
这台特殊的服务器运行了Red Hat企业版Linux 6.4、IBM公司的DB2 9.7关系型数据库以及Red Hat的KVM虚拟机管理程序,它能够支持1,040,400个用户,并以每分钟1,320,082次处理吞吐量的速度处理新命令。(即使另外有其他四个必须运行、只使用半数不到CPU资源的工作负载,TPC-C测试的新命令部分还是计算在正式结果中。)
IBM去年夏天Flex x240节点上运行测试,这与在Systemx3650 M4上测试KVM几乎完全相同。
这个Flex x240服务器配有两个主频为2.9GHz的Xeon E5-2690型处理器、相同的768GB主内存、两个8Gb/秒光纤通道卡,连接一组DS35XX磁盘阵列。IBM有三个DS3512磁盘,配有24个磁盘和112个固态硬盘,它支持1,196,160个用户,并以每分钟1,503,544次处理的速度执行新命令,它运行Red Hat 企业版Linux 6.2和DB2 9.7。
与上述的System x3650 M4虚拟化相比,这台Flexx240节点的固态硬盘略重,磁盘驱动器略轻。我们假定,两台服务器上的磁盘不是性能瓶颈,并不是性能差别的实质性原因(当然,你应当拥有足够的磁盘和主内存来驱动CPU),并假定与系统相连的这个磁盘和固态硬盘的总容量达到了TPC-C测试所要求驱动更多用户时的容量限制,那么你可能会误认为Flex x240服务器比System x3650 M4支持更多用户数量,是由于它运行裸机的原因。当然,你还必须假定,RHEL 6.2和6.4之间所造成的性能差异是相当小的。
如果相信这一切假定和假设,那么KVM在单位时间命令处理次数上的开销是12%,而如果你看看用户,这个数字大约是13%左右。
如果像IBM公司只是测试裸机,并在完全相同的服务器(使用VMware的ESXi、Red Hat的KVM以及微软公司的Hyper-V管理程序)上运行相同的工作负载,这一切就值得好好玩味一番了。但同样,这也太容易了,这很容易让公司得出错误的比较结果,从而做出错误的采购决策。
TPC-VMS测试说明了目前TPC测试的三个副本:较旧的TPC-C OLTP基准测试(模拟仓库操作)、TPC-E在线股票经纪基准测试、TPC-H数据仓库测试,以及它在服务器的单一管理程序实例上的TPC-DS决策支持/大数据测试。
顺便说一句,还没有人运行过TPC-VMS测试,IT供应商可能会开始重复IBM公司刚刚完成的事情,并试图让人们看到虚拟化开销。他们很可能会有所发现,或者坦白说他们不会得到什么回报。
配置和管理上的灵活性是值得付出一堆CPU周期资源的,如果不是这样的话,Xen、Hyper-V以及KVM都不会出现。