该工具发布背景
近年来,国产服务器CPU产业的逐渐发展,但由于专业性较差,与国外存在40年以上技术差距,一些服务器CPU厂商利用信息差来制造一些非专业的数据夸大并虚假宣传混淆视听,成功达到劣币驱良币的目标,本着正本清源驱除劣币以正视听让国产服务器CPU产业达到良性竞争的目标,四川墨道科技放出部分专业的异数OS服务器CPU效能分析工具,让更多业内人士能够更加准确的认识分辨国产服务器CPU性能,以此帮助落后40年的国产服务器CPU开发商能够找到自身产品缺陷不足来提高优化产品。
差距40年的依据是什么?
甲骨文公司成立于1977年,其产品Oracle垄断全球高端市场40年,阿里自2012年开始去IOE战略,截至2023年,其核心产品OceanBase在当今最强大的服务器CPU加持下,其TPS性能仅相当于2010年Oracle RAC(甲骨文自研的CPU)性能的三分之一,因此有理由相信在服务器领域,中美差距至少在40年。
这个工具测的什么?
服务器CPU和桌面CPU实际上有非常大的不同,桌面CPU通常注重IPC和频率,但服务器CPU则受到存储墙约束而更看重多核numa互联访存效率,为何会这样?因为CPU的IPC性能差距通常不会高于1个数量级,但是numa互联访存效率则会导致CPU的IPC利用效率下降2到3个数量级,因此专业的服务器开发商通常都不关心CPU的IPC和频率,而更关心numa互联效率及其优化方案,因此异数OS的这个服务器CPU分析工具并不测试CPU的IPC,而主要测试项目是CPU Diff,当然这个CPU Diff和其他测试工具有不同点,他的主要目标是更加深入的揭露一些CPU厂的作弊行为,CPU厂一般处于自身利益考虑,只放出最小延迟的CPU Diff,这个Diff是不负责任并有害的,因为最小延迟测试同一时间只启动两个CPU核做延迟测试,其他核都是空载空闲的,这与实际云环境不同,云环境一般多核访存负载都很高,并且无法做针对性的numa优化,这时测到的CPU延迟会成十倍甚至百倍的增加,从而使IPC下降到甚至不足百分之一,因此CPU厂通常为了掩盖问题真像而只提供最小互联延迟,并让这个成绩好看,这种行为甚至能忽悠到很多专业的服务器开发商,但这个成绩在更多时候可能要反着理解才有意义,因为一些做了numa分布式内存解决方案的cpu,最小延迟表现可能是很差的,但拥塞延迟效率却会提高,反而是一些没有做numa分布式内存的cpu,最小延迟数据很好看,但拥塞延迟完全不能入眼。
因此异数OS的 CPU Diff工具提供了拥塞延迟测试数据,拥塞延迟是所有CPU核同时启动延迟测试得到的CPU延迟数据,之后通过拥塞延迟与最小延迟的比值来得到拥塞延迟效率,单位为千分之一,该值体现服务器CPU全核负载下的真正效率,这个效率可用于分析云上实际部署后的性能,比如拥塞效率是千分之十,则说明一个100核的服务器CPU在访存满载时性能不如一个单核CPU。
12700H win平台例子
打开工具选择第10项,CPU Diff,测得12700H测得的延迟表现,以此举例说明,Core-MinLatencyTest是最小延迟测试,单位是ns他的成绩几乎和CPU厂发布的最小延迟数据一致,Core-ThrongLatencyTest是拥塞延迟测试,数值超过999ns时显示溢出,Throng efficiency是拥塞访存效率,他是Core-ThrongLatencyTest成绩和Core-MinLatencyTest成绩的比值,单位是千分之一,如果Core-ThrongLatencyTest数值显示溢出,可用Throng efficiency反推拥塞延迟,可以看出12700H的最小延迟测试成绩很优秀,无论大核小核都只有40ns到50ns延迟,但在拥塞延迟测试中,大核延迟则增加了10倍,小核延迟增加了20倍,这说明你的游戏客户端或者服务器在做粒子物理仿真时开更多的核是无意义的,开2到4个CPU核甚至只开1个核反而更优,小核12访问小核19最小延迟45ns,但拥塞延迟已超过999溢出,拥塞延迟效率千分之39,因此反推出拥塞延迟为1153ns,通过对比最小延迟分布和拥塞延迟分布可以发现最小延迟分布仅有1个梯度,而拥塞延迟分布有3个梯度,拥塞延迟梯度分布更加符合numa互联瓶颈的分布梯度,因此更加符合云服务器实际有负载时的场景情况。
平台支持
该测试工具目前支持x64 arm64 sw64三种指令集,采用静态链接编译,不开放源代码,因此不存在编译优化,操作系统优化,libc优化作弊等问题,另外在linux上需要开启numa巨页支持,一些国产服务器CPU可能由于不专业所以没有做好numa巨页支持,这需要服务器CPU厂自己解决。numa巨页支持属于服务器必不可少的选项,在很多基础软件中都有大量使用,比如大多数的数据库软件,numa 巨页的开启方法见后面两张图,分别是申威sw1621,阿里云安培32核arm的,其他平台可以照抄或自行研究。
下载链接
Github下载地址