客户在做CVM的基准线的性能压测,当前反馈AMD机型(腾讯云SA系列)在做内存基准线压测时,内存多核混合赋值带宽达不到预期增长的效果。实际上是基于CPU逻辑下,压测方式无法兼顾到的场景导致的数据差异性。
一、SA3机型介绍
标准型 SA机型基于腾讯云自研星星海服务器,提供可靠、安全、稳定的高性能,采用最新一代 AMD EPYCTM 处理器的实例,提供多种规格,具有超高性价比。此实例提供了平衡的计算、存储、网络资源,是众多应用程序的最佳选择。
标准型 SA3 实例采用 AMD EPYCTM Milan 全新处理器,内存采用最新 DDR4,默认网络优化,最高内网收发能力达1900万pps,最高内网带宽可支持100Gbps。
二、知识普及
【压测工具】:
Stream测试是内存测试中业界公认的内存带宽性能测试基准工具;
【操作说明】:
- Stream官网下载压测源文件:http://www.cs.virginia.edu/stream/FTP/Code/stream.c;
- 云主机安装GCC:yun -y install GCC;
- 编译:参数说明:-O3 是性能最大化编译;fopenmp 开启多核;DSTREAM_ARRAY_SIZE数组大小,建议是按内存值来,同时大于L3 Cache(getconf -a | grep CACHE可以获取)gcc -O3 -mcmodel=medium -fopenmp -DSTREAM_ARRAY_SIZE=$RAMSIZE/32 -DNTIMES=30 -DOFFSET=4096 stream.c -o stream
- 执行:./stream
- 数据解读:一般参考TRIAD系列值
三、问题描述
客户在做基准线的性能压测,当前反馈SA3机型2C4G 内存基准和配置8C16G持平。客户同一时间压测的S6机型,这两个配置数据相差能到一倍以上,具体数据展示如下:
机器配置 | 压测指标 | 标准SA3机型 | 标准S6机型 |
---|---|---|---|
2C4G | MEM | 30490 | 19424 |
4C8G | MEM | 36679 | 32011 |
8C16G | MEM | 38821 | 61160 |
引入问题:SA3机型,随着配置增长,内存带宽没有加大。
四、问题排查
- 压测复现 数据和客户报障接近;
2、测试提供的参考数据
从这里可以看到,SA3的测试值高配置增长幅度不大,且在30 GB/S的范围中。
五、差距原因
AMD和intel在内存控制器的区别,Stream工具进行压测时无法直观对比这两类机型的数据。
AMD机型的CPU的结构/规格决定,单个die(8physical core 16 logical core)是共享到IODIE(内存控制器所在)的带宽的,这个在ROME上是读40G写20G,混合读写模型差不多30多G,MILAN上是读40G写40G,混合读写接近40G。
INTEL架构,没有IODIE/CPUDIE的概念,所有的Core/内存控制器都在一个mesh网络上,所以可以按核心数比较好的scaleup上去,不会有断点,慢慢收敛到整个package的最大能力上。
详情可以参考:https://www.nextplatform.com/2019/08/15/a-deep-dive-into-amds-rome-epyc-architecture/