虚拟化是云计算的重要核心技术,将一台服务器的计算、存储等资源进行池化部署,就可以更有效的利用物理服务器的资源,将那些可能沉睡的性能充分挖掘出来,能够充分利用已有的投资,也便于规划资源的使用。
虚拟化可以将计算资源充分挖掘,通常在虚拟化平台中有三大块资源可以池化分割——处理器、内存和存储。
计算资源虚拟化技术最为成熟,甚至可以将一个逻辑处理器核心按频率进行切割使用。
内存虚拟化暂时还没有什么动态分割又不影响性能的虚拟化技术,通常做法是按物理容量进行分割。
存储池化也是目前流行的技术之一,通常由外部存储来支持此类需求。
联想SR950,虚拟化的天堂
企事录在拿到联想SR950参数表的时候,确实很惊讶,因为这台测试样机显然是为内存型数据库应用所配置的,4路的Xeon 8176处理器配满了24通道48条内存,单条32GB DDR4-2666的内存总容量高达1.5TB。
在内存如此大的服务器平台上充满了各种诱人的企业级应用组合方式,而满配24通道的内存也让我们对SR950在虚拟化环境中的性能充满了好奇。于是这就引出了如下的测试方案——SR950虚拟化业务平台综合性能测试。
如果只看技术参数,SR950有112核、224线程的计算能力,1.5TB的物理内存,已经足以媲美一些大中型行业关键业务应用环境下所有服务器的性能总和了,经过和工程师的沟通,我们基于SR950的配置,组合如下一套虚拟机环境:
✦一个64核512GB的大型虚拟机,足以应对Oracle或者SQL server这样的大型数据库应用,结合NVMe SSD后,整套数据库环境还会有非常高的性能表现。
✦两个32核128GB的高配置虚拟机,可以满足大型行业应用对计算和内存资源的需求。
✦两个16核64GB的高配虚拟机,可以支持ERP或者CRM这样的应用环境。
✦4个8核32GB的虚拟机,可以提供MySQL等常用数据库较好的性能支持。
✦剩余的计算资源被划分为4核16GB的小型虚拟机,既能满足企业小规模业务的资源开销,也可以支撑VDI等虚拟桌面的应用。
以上虚拟环境基于一台SR950物理服务器的硬件资源,通过VMWareESXI 6.5来支持虚拟化应用环境。
SR950的资源在EXSI 6.5管理界面中的截图
虚拟化系统环境下的性能分析
传统企业级用户有两类系统,一类就是从Windows家族一路升级换代的Windows Server用户,他们使用的是诸如SQL Server这样的关键业务数据库,传统的行业应用也大都是基于Windows Server的,因此我们先基于Windows Server 2012R2环境对SR950虚拟化的整体环境进行了测试,测试的项目主要基于虚拟主机的计算性能和内存带宽性能,因为存储环节大都由外置的设备支持,与服务器性能无关,因此本次测试中不涉及存储性能。
Windows Server 2012 R2
虽然在Windows Server 2012 R2环境中较少用到64核以上的计算环境,但是随着SQL Server的发展,也具有了内存型数据库的应用场景,因此对计算和内存的资源开销也较传统应用大了许多,因此企事录在联想SR950的虚拟化测试中也引入了最大64核512GB内存的大型虚拟机的测试环境。
✦计算性能篇
对多核虚拟机的性能测试工具有很多,在Windows环境下用户常用Cine Bench R15来进行多核计算性能的分析测试。
上图是在联想SR950的虚拟机环境中的CR15测试截图,可以看出,SR950所配置的处理器是Xeon 8176,主频为2.1GHz,64核/线程,测试环境为Windows Server 2012R2 64位版本。
64核虚拟机在Windows Server 2012R2环境下的计算性能达到了6701,性能相当出色。结合其他规格的虚拟主机性能来看,在EXS 6.5环境下的虚拟机计算性能是一个线性增长的趋势。
上图是在Windows Server 2012 R2 64位系统下,不同规格虚拟机的多核计算性能的总结表,性能呈线性增长。
注:在EXSI 6.5框架下,所有的虚拟主机的主频都是Xeon8176的原始主频2.1GHz。
✦内存带宽篇
SR950基于英特尔最新的Skylake计算平台,它具有四颗Xeon 8176处理器,每颗处理器都支持6通道的DDR4-2666内存,SR950整机的内存通道数高达24通道。
上图是近两年来服务器平台的内存带宽的对比,数据来源英特尔。
注:Xeon 8180和Xeon8176在内存支持的规格上完全一致,只是处理器主频略有不同。
参考公式:
英特尔至强处理器的理论内存带宽峰值可通过下列公式进行计算:
理论峰值 (GB/s) [每插座] = (MT/s) * 8 字节/时钟* <通道数量> /1000
上图为不同规格虚拟机在WindowsServer 2012 R2 64位系统下的内存带宽性能综合表
从图中可以看出,物理机SR950的高内存带宽配置给虚拟机带来了充足的内存带宽性能,在64核512GB内存的高配虚拟机环境下,内存读带宽达到了220GB/s;即便是配置最低的4核16GB规格虚拟机,也具有接近50GB/s的内存读带宽,这已经接近物理机的四通道内存的带宽性能了,可以提供给用户更好的虚拟机使用体验。
虚拟主机能具有如此强大的内存带宽,受益于物理服务器是四路的SR950,服务器本身具有强大的内存带宽,在ESXI 6.5支持下,可以为虚拟主机提供强大的内存带宽,满足各类大型应用对计算和内存的需求。
Linux系统性能测试
Linux已经是目前大型企业级应用使用最多的操作系统了,因此我们也基于同样的虚拟主机配置,但是重新部署了一套基于Linux CentOS 7.3的测试环境,使用UnixBench和Stream两套工具分别测试主机计算性能和内存带宽。
✦计算性能篇
在进行UnixBench测试前要先做一个说明,UnixBench 5.1.3是一个在云计算领域中大量使用的主机性能测试工具,但此工具在测试16个以上线程的时候支持的并不好,因此官方也有相关声明,暂不支持16个以上核心的主机性能测试。我们的Linux环境下的性能测试因此也截止到16个计算核心的虚拟主机。
可以看到,从4核16GB的虚拟主机到16核64GB的中大型虚拟主机,UnixBench的成绩基本线性增长。
✦内存测试篇
而基于Stream的内存带宽性能则进一步展示了在SR950的24通道内存的强悍平台支持下,虚拟主机能获得出色的内存带宽表现。
4核16GB的入门级虚拟主机的内存带宽超越了我们参照的单路Xeon E3处理器的服务器,而64核512GB的大型虚拟主机的内存带宽达到了260GB/s的性能,基本等同于12个物理DDR4内存通道的性能。
并发高负载的压力测试
将联想SR950 224核的计算性能都发挥出来是一件困难的事情,因为它已经超越了常见的各类应用的支持上限,之前企事录在进行物理机的Oracle 12c性能测试时,350W TPM的优异成绩背后也只让SR950发挥了30%的性能,因此我们希望通过虚拟主机环境,让更多的压力可以通过较低核数的虚拟主机来发挥出来。
这就是混合部署环境下的部署方案,当然,太低的配置我们这里就不参与了,因为这些配置也是企业级用户中高端压力环境的典型配置。
先看看多虚拟主机并发内存带宽测试的情况,相比只进行单虚拟机测试的成绩有所下降,但是可以看出即便是80%以上的内存都在进行内存带宽的压力测试时,同配置的虚拟机的性能还是比较一致的。并没有出现想象中资源争夺后高低差异明显的状态,显示出作为平台的SR950在强压力测试环境下,也能有稳定的表现。
注:32线程以上的多核性能只供参考,并不是实际性能的表现。
前文介绍过,UnixBench 5.1.3官方并不支持16线程以上的主机性能测试,但是通过第三方补丁后可以运行,但是多线程性能会有明显的偏低现象,但是从虚拟主机单线程的性能分析32线程以上的成绩。因此依然选择了UnixBench来进行混合部署环境下的压力测试,因为这样能够比较好的看出来重负荷的计算压力下虚拟主机计算性能的真实表现。
实测压力结果还是比较出色的,因为即便在整机计算资源消耗90%以上的时候,16核64GB虚拟主机的性能依然有独立测试环境下的90%的成绩,考虑到虚拟化层的开销,可以说在所有资源都使用状态下仍然能获得这样的测试性能是非常出色的。
虚拟化测试总结
用一台联想SR950就能撑起如此大规模的一套虚拟化计算平台,这既得益于英特尔的skylake家族多计算核心,大内存带宽的特性,更重要的是体现了联想SR950作为高端x86服务器平台的实力,即便面对如此大型的虚拟化混合应用,也能稳定支撑,可靠运行。