沫言|Dell EMC PowerEdge R7525服务器实战( 三 )


从上图来看 , 不同NUMA设置下 , R7525的内存总带宽还是有明显差异的 。 比如在NUMA设置为4(即R7525中有8个NUMA)的情况下 , 内存总带宽最高 , 接近了190GB/s , 与AMD公布的204GB/s相差不大 。 而在NUMA为0的情况下 , 内存带宽几乎降低了一半 。 同时从上图也可看出 , 在内存带宽的测试中 , L3 Cache as NUMA Domain的启用或关闭 , 对测试结果并没有明显的影响 。
接下来是关于内存延迟方面的测试 , 设置不同的NUMA选项 , 这意味着核心在访问内存时有两种选择:
1、访问本地内存 , 例如NUMA内核心只访问所在NUMA的内存
2、访问远程内存 , 例如8 NUMA设置下 , NUMA 1内的核心访问其他NUMA中的内存
同时 , 不同NUMA设置下 , E企研究院再加上L3 Cache as NUMA Domain的启用或关闭 , 来评估这一选项对内存延迟的影响 。
沫言|Dell EMC PowerEdge R7525服务器实战上图显示了在L3 Cache as NUMA Domain启用或关闭情况与不同NUMA设置下 , 核心访问本地内存的延迟情况 。 从测试结果来看 , 如同内存带宽的情况一样 , 在NUMA设置为4(即8 NUMA)情况下 , 访问本地内存的延迟最低;同时 , L3 Cache as NUMA Domain在关闭状态下 , 更利于访问本地内存的延迟 。
需要注意的是 , 这里的“本地内存”是相对NUMA设置而言 , 例如当NUMA设置为0时 , 在任意核心看来 , 所有的内存都是本地内存 , 哪怕是跨CPU访问内存 。 所以从上图可以看到 , 当NUMA设置为0时 , 内存的访问延迟显著高于其他NUMA设置 。 而在远程访问方面 , 我们得到了一些不同的结果 , 如下图所示:
沫言|Dell EMC PowerEdge R7525服务器实战图注:上图显示了在L3 Cache as NUMA Domain启用或关闭情况与不同NUMA设置下 , 核心访问本地内存的延迟情况 。 首先从测试结果来看 , L3 Cache as NUMA Domain的启用或关闭 , 对于内存的远程访问没有影响 。 当NUMA设置为0时 , 内存远程访问的平均延迟最低 , 明显低于其他NUMA设置 。 而其他NUMA设置下 , 内存远程访问的平均延迟并没有明显差异从测试结果来看 , EPYC处理器中的多个内存控制器仍存在一定局部性 , 即NUMA依然存在 。 因为不管是在内存总带宽还是内存延迟方面 , 当NUMA设置为4时 , 其性能总是优于其他NUMA设置 。 从AMD的一些公开资料 , 我们找到了答案 。
沫言|Dell EMC PowerEdge R7525服务器实战图注:在IEEE 2020大会上 , AMD的演讲揭示了其不同内存延迟的奥秘 。 在第二代EPYC处理器中 , 依旧具有4个内存控制器 , 每2个CCD共享一个内存控制器 , 而且4个内存控制器采用环形连接 , 对角线上的两个内存控制器并没有直接连接 , 这就是为什么NUMA设置为4的情况下 , 其本地内存访问延迟低于NUMA为2或1时的延迟
关键应用场景 R7525优化到位
在了解了EPYC处理器的特点之后 , E企研究院就可以基于R7525服务器设计一系列的应用场景测试 。 从我们的这款R7525的特点来看 , 其核多(双路32核64线程)主频高(基频3.0GHz , 最高可达3.3GHz) , 内存多(双路16通道 , 32个内存插槽 , 配置16条16GB内存 , 每通道一条) , 容量大(共256GB) , 并且PCIe通道多(可支持24片NVMe SSD , 且无收敛) , 其能支撑很多应用场景 , 但权衡选择之后 , 我们认为以数据库为代表的关键应用场景更适合评估R7525的性能特点 , 因此我们构建了一个单实例的Oracle数据库场景 , 设置不同NUMA选项 , 以及分别启用或关闭L3 Cache as NUMA Domain选项来评估R7525服务器在Oracle数据库下的性能 。 E企研究院设计了一个类似电子商务网站的场景来模拟贴近真实的用户场景 , 这一网站应用主要由“新用户注册、更新用户详细信息、浏览商品、提交订单、处理订单、浏览订单(包括取消订单)”等六大常见用户行为组成 , 传递到数据库层面(DML) , 即产生包括“select(查询)、insert(插入)、update(更新)、commit(提交)、rollback(回滚)”等数据库最常见的操作 , 这也是OLTP数据库最核心的功能 。 六大用户行为按一定比例混合 , 就会形成不同的数据库DML操作 , 不同的用户数(相当于web服务器端)的并发行为形成数据库负载 , 从而测试数据库性能 。 以下为不同NUMA设置下的数据库性能: