【工程师笔记】第六期:一项Xeon E5-2600 v4测试数据的背后

企业动态

 [[168827]]

做技术的朋友可能有过类似这样的感觉——每天都会遇到新的问题,或者学到新的知识。然而一个人的时间和精力毕竟有限,不是所有的岗位都能做到总是亲力亲为,每人最擅长的领域也各不相同。为了使工程师自己踩过的坑、那些实用的心得体会也能给大家带来帮助,把经验记录和分享出来就显得尤为可贵,这就是我们开设《工程师笔记》专栏的目的。

[[168828]]

Intel新一代服务器处理器Xeon E5-2637 v4标称的内存带宽76.8GB/s,达到了该系列的***水平,不过在实测中它与有的同门兄弟相比却有一些差距。类似的情况也出现在E5-2623 v4几款上面,这是为什么呢?

[[168829]]

在准备撰写本文的过程中,我想起10多年前的一个故事,也是与Intel Xeon(至强)CPU相关的

搞服务器比较早的朋友可能还记得,Intel***代服务器专用处理器是Pentium Pro,当年我见过单Socket 8插槽的Pentium Pro主板(华硕P6NP5)。当桌面产品线升级到Pentium II和Pentium III时,开始出现相对应采用Slot 2插槽的Xeon产品线。Pentium II Xeon和早期的Pentium III Xeon L2 Cache容量有1-2MB,当时CPU的工艺还难以将如此大容量SRAM和CPU内核集成到一个Die上面。

从133MHz前端总线的Pentium III Xeon开始,Intel直接将on-die 256KB二级缓存的Pentium III设计拿过来用。不过当时的用户也不傻,比如Pentium III Xeon 700 2MB的价格高达1万多,而Pentium III Xeon 866/933 256KB大约在5-6千元。

相比之下,同样256KB 缓存的Pentium III 933只有2千多。那时候我还真碰上一位用户就要选择Xeon 933,理由是他了解到性能比普通Pentium III高出5%。

从那往后到Pentium 4与Intel Xeon的一段时间内,除了单双路和CPU封装/主板不同之外,服务器与桌面CPU规格上差别确实不大。一对一的性能差距,有时就是Intel将L2 Cache时序设置不同这样的原因。

[[168830]]

硬件设计上的不同,会反映在有些性能测试中。CPU Cache会影响到处理器访问内存的效率,包括缓存***率等。在本文中我们讨论内存带宽测试,目的就是分析影响到该性能的CPU参数,由于今天的CPU比当初要复杂很多,所以得出结论不会那么简单。

在4月1日那天,Intel正式发布了新一代双路服务器处理器Intel Xeon E5-2600 v4,随之而来的有更先进的工艺、更多的核心、更高的处理能力和能效比等。当然若干项基准测试纪录又一次被刷新了。

各种漂亮的数据我不想一一列举,上图来自一份戴尔文档的“Memory subsystem performance”部分,可以看到在相同的PowerEdge 13G服务器平台上v4处理器测出的内存带宽比v3更高。这一点倒是不意外,因为Xeon E5-2600 v4内存支持到DDR4 2400,而v3只能到DDR4 2133。

而我也听不少用户反映过,说他们的应用对内存带宽不敏感,只要配置的容量够了就行。这个确实与应用类型有关,哪些用户需要更多在意这个指标呢?

上图的Linpack浮点计算性能测试,是HPC(高性能计算)行业所公认的。我们看到,在相同主频、核心数、内存频率以及功耗的情况下,BDW(Broadwell,Xeon E5-2667 v4)的核心效率比上一代Xeon E5-2667 v3提高了13%。

而在将Xeon E5v4的内存频率提高到DDR4 2400之后,性能又有进一步提高。初步结论就是高内存带宽对高性能计算应用是有价值的。

真正引发我们撰写本文的,是上面这个对比图表。首先我标出了一个小错误,E5-2630 v4是10核心而不是8核,它与大部分型号的L3 Cache配置都是2.5MB per Core。而在这一代产品中也有一个例外,E5-2667 v4、E5-2643 v4和E5-2637 v4这三款频率优化型CPU的L3 Cache大于这个比例。

我最初看到这个对比时有些不解之处:测试结果并不完全按照理论内存带宽排列,而是有些意外之处(红圈部分)。同时我们也注意到图中还有关于内存控制器数量的描述,从最左边的E5-2699 v4到E5-2650(L) v4这些12核及以上的CPU都是2个内存控制器,右边的10核及以下的只有1个内存控制器。

上图截自http://ark.intel.com网站,正如我们在本文开头所述,单内存控制器(同样支持4通道DDR4 2400)的E5-2667 v4、E5-2643 v4和E5-2637 v4,标称内存带宽与双内存控制器的型号同为76.8GB/s。

接下来我们就想探究影响这一测试结果的原因,先列出几种可能性(多选):

a.内存频率

b.内存控制器数量?

c.QPI带宽?

d.L3 Cache容量?

e.环形总线(Ring bus)瓶颈?

f.CPU核心数量 or 主频?

首先第1点不用问了,第2点根据对比数字和戴尔文档中的标识也可以基本确认;接下来就是看下列几个疑点与c/d/e/f中的哪些项目相关:

1.E5-2637 v4(4核心)测试内存带宽落后于另外2款DDR4 2400单内存控制器的CPU;

2.E5-2623 v4(4核心)测试内存带宽落后于另外3款DDR4 2133单内存控制器的CPU;

3.E5-2603 v4(6核心)测试内存带宽落后于同为DDR4 1866单内存控制器的E5-2609 v4。

注:Xeon E5-2623 v4官网标称的内存带宽,与其它DDR4 2133单内存控制器的CPU同为68.3GB/s。

[[168831]]

由于要分析性能瓶颈,我们就需要对测试工具及其产生的压力负载进行了解。为此我请教了一位朋友——戴尔解决方案顾问杨小雷,下面是他发的一条微博。

通过与这位朋友的交流我还得知:STREAM工具测出来的带宽要在BIOS里设置本地访问的模式,就是它下面标的OSB+DIR snoop。所以理论上的内存带宽是每个CPU理论***带宽的2倍。这是Broadwell的默认模式,Xeon E5-2600 v4的新特性,以前没有的。

这样一来QPI带宽的因素也可以排除了。关于“snoop”,让我回想起2008年撰写过的Intel Xeon 5400服务器/工作站平台:

“Snoop Filter(探听过滤器)是一种特殊的缓存,用于存储CPU二级缓存的索引信息(只是包括其标签和状态,不包括数据),有助于减少处理器的前端总线发生数据堵塞的情况,提高前端总线的效率。Snoop Filter的容量要大于或等于每个CPU二级缓存容量之和才能发挥***的作用,5400系列处理器的二级缓存从5300系列的8MB增加到12MB,相应的5400芯片组中Snoop Filter也由5000X的16MB增加到24MB。”

如今发生了一些变化,CPU整合了内存控制器(IMC),多处理器Xeon平台也从SMP变成了NUMA架构。如果我没理解错的话,类似于Snoop Filter的功能现放在CPU上实现,而L3 Cache的部分功能就是包含每个Core的L1 Cache和L2 Cache数据,以保证缓存的全局一致性访问。

这结论看似顺理成章,但并不是每一次拍脑袋都能正确,所以我们才要建立在实测数据分析的基础上。另外,还有没有读者不了解为什么Xeon E5会有单/双两种不同的内存控制器数量?

Broadwell EP即Xeon E5-2600 v4的代号,其实从v2开始Intel超过10核心就采用2个(对)环形总线和双内存控制器(总数还是4通道)的设计。

与上图有所出入的是,最右边的单内存控制器(LCC)也包括10核心的Xeon E5-2640 v4和Xeon E5-2630L v4。前文中我们确认了将内存控制器连接到环形总线的Home Agent在DDR4 2400这样高频率下可能成为瓶颈。

接下来就靠数字分析了,在这里省略掉我思考的过程。根据前面列出的Xeon E5-2600 v4全线内存带宽对比,4核10MB L3 Cache的2623 v4表现***;另外2款较低的E5-2637 v4(4核心)E5-2603 v4(6核心)都是15MB L3 Cache;而在L3 Cache达到20MB之后,STREAM测试的数值基本上就是内存频率的反映了。

 

[[168833]]

Intel Xeon E5-2600 v4系列中的几款频率优化型CPU,由于减少了核心数量,相应的内存控制器数量和L3 Cache也受到影响,尽管它们仍支持较高的内存频率,但实际带宽性能表现受到一定影响。大多数HPC应用讲究计算的并行度和能耗比,估计不会选择这几款;而在意单线程性能的应用(如:工作站),对内存带宽不见得敏感。

而另一方面,Intel将E5-2667 v4、E5-2643 v4和E5-2637 v4这三款CPU的L3 Cache加大,客观上减少了实际内存带宽下降的幅度。

最终把问题搞清楚,又客串了一把工程师的小编我也该补补脑了:)而真正的专家是在文中提到的那位朋友,同时也要感谢下我的另一位朋友乔峰。

 

 

 

 

 

责任编辑:润月 来源: 51CTO
相关推荐

2012-03-12 10:31:17

XeonE5-2600

2013-09-03 18:10:56

英特尔Xeon E5-260数据中心

2011-10-18 10:52:19

Android

2017-06-08 14:43:00

开发者

2016-11-21 16:17:42

CIO 论坛

2011-04-06 19:31:08

大话IT云计算

2011-09-19 16:25:10

51CTO移动技术沙龙phoneclub

2013-07-15 15:26:14

IT半小时

2015-12-21 18:24:21

2018-08-10 14:04:12

白熊视频CTO脱口秀

2013-10-17 10:13:42

Red Hat Ent英特尔处理器

2011-10-19 13:32:33

开发

2011-05-23 14:53:46

PHP51技术沙龙

2016-04-14 11:05:29

Intel

2013-09-12 09:11:43

E5-2600 v2英特尔云数据中心

2017-03-31 19:08:52

润乾BOSS团大数据产业生态联盟

2011-05-24 10:45:56

开发

2017-06-07 15:16:35

2014-10-10 17:16:43

微软创投加速器

2012-03-08 16:06:37

点赞
收藏

51CTO技术栈公众号