X86服务器如何满足内存计算需求
通过上面的分析,我们知道,为优化海量数据实时处理的内存计算模式对于底层服务器提出了更高的要求:CPU够不够快?内存够不够大?系统够不够稳定可靠?实际上,英特尔与SAP早在10多年前就已经开始合作,不断共同推动IA架构服务器上SAP应用的性能。下面我们就来看看最新的英特尔至强E7又是如何针对SAP HANA进行优化的。
▲图2 至强E7与至强7500的对比
首先是处理器的性能。早期处理器性能的提升主要依赖于主频的提高,即CPU在每个时钟周期内可以执行更多的指令。但由于能耗与散热条件的限制,这种方法在2005年左右碰到了障碍。于是业界开始转向多核处理器的设计,即每个处理器内包含多个相互独立的计算内核。在多核处理器之前,英特尔开发了超线程技术,允许一个处理内核可以在同一时间执行两条指令线程,从而更好地利用CPU的片上资源。今天,多核、多线程、高可扩展的SMP架构,为x86服务器奠定了运行SAP应用的基础。
与上一代至强7500相比,至强E7的内核数量由8核(16线程)增加到了10核(20线程);同时得益于QPI总线架构,基于至强E7的服务器可以从双路扩展到四路、八路,直至256路。这些技术进步使得SAP HANA可以在单一系统内获得更多的计算资源,其性能指标可以随硬件升级而线性扩展,用户甚至可以通过部署1000以上内核的系统实现更复杂的实时分析。
其次是内存的性能。对于SAP内存计算应用来说,内存子系统的性能是否强壮显得非常重要。一方面,64位操作系统的普及,使得今天的x86服务器内存可以超过32位的4个GB,理论上达到几乎无限制的18 Exabyte(即180亿GB);另一方面,随着平台技术的发展,以及每GB内存价格的下降,服务器系统内存容量越来越大。今天服务器的内存容量已经可以用TB来计算,每1TB即1000GB。
具体到至强E7来看,则主要通过大容量缓存、更高内存带宽、以及更大容量的内存来满足这一需求。比如,至强7500的三级缓存是24MB,至强E7达到了30MB,这使得SAP HANA应用中,CPU计算内核可以直接从缓存中读取更多的数据,访问速度因此更快。在内存方面,以四路服务器为例,至强7500系统可以支持16GB内存条,最大内存容量为1TB,而至强E7系统可以支持32GB的内存条,系统内存容量扩大到2TB。
当然,在SAP HANA应用中,快速的I/O也很关键,至强E7通过QPI互连总线,大大提高CPU与内存之间、CPU与CPU之间以及节点之间的数据传输速率,降低延迟。
再次是高可用性。面向海量数据进行实时分析的系统,其对稳定可靠性的要求是不言而喻的。在这方面,新的至强E7服务器平台在安全可靠性(RAS)方面也提供了更多的支持。比如Double Device Data Correction(DDDC)就对SAP HANA非常有用,允许当内存同时出现两个错误时,也可以恢复。又比如Machine Check Architecture Recovery(MCA Recovery)技术使得SAP HANA可以与操作系统一起,从许多无法纠正的内存错误中恢复,在许多场合下可以不用停机就能恢复数据。在至强E7中,类似这样的RAS技术还有20多条。
在一个针对32亿条POS机销售记录的复杂模型中,英特尔与SAP进行了联合测试,测试表明,跟上一代的至强7500相比,至强E7的性能提高了1.37倍。另外,同样基于至强E7平台,英特尔超线程技术性能提升1.21倍,NUMA技术提供1.07倍,睿频加速(Turbo Boost)技术性能提升1.04倍,如下图所示:
▲图3