Legacy 7-zip
虽然独立的压缩和解压缩不是真实世界的基准(至少就服务器而言),但服务器必须作为更大角色的一部分来执行这些任务(例如数据库压缩、网站优化)。话虽如此,我们建议你对这些基准持怀疑态度,因为它们在整体计划中并不重要。我们仍然使用7zip 9.2,大家可以与旧得多的结果进行比较。
现代内核的压缩几乎完全依赖于缓存、内存延迟和TLB效率。对于AMD的EPYC CPU来说,这绝对不是理想的情况,但是EPYC 7742的性能比Naples高77%。这比预期的效果要好。
解压缩依赖于不太常见的整数指令(移位、乘法)。AMD的Zen2内核可以更好地处理这些指令,因为内核翻倍的结果不低于127%,可以获得更好的性能。
尽管这个基准并不重要,但是AMD公司制作这个图表的方式给人留下了深刻的印象。我们从未见过AMD以如此大的优势主导基准。
在人们指责我们选择用最好的眼光来看待AMD之前,先把这个基准作为我们的综合测试之一,旨在展示核心执行端口的潜力。它并不真正代表任何真实世界的性能,而是为那些请求这些数据的人的合成。
Java性能
SPECjbb 2015基准指数使用的模型基于一家全球超市公司,该公司拥有处理销售点请求、在线购买和数据挖掘操作的IT基础设施。它使用最新的Java 7,并利用了XML、压缩通信和具有安全性的消息传递。
我们用四组事件注入器和后端测试SPECjbb。我们使用“多虚拟机”测试的原因是它更接近现实:一台服务器上有多个虚拟机是非常常见的做法。
Java版本是OpenJDK 1.8.0_222。我们使用旧的JDK 8作为最新的JDK 11,它已经删除了一些不推荐使用的JAVA EE模块,而SPECJBB 1.01需要这些模块。我们应用了相对基本的调优来模拟现实世界的使用,同时目标是在一台内存为128 GB的服务器中安装所有东西:
我们断断续续地测试了大量页面。
下图显示了我们的多虚拟机SPECJbb测试的最大吞吐量。由于该测试几乎与我们在ThunderX2审查中使用的测试相同(JDK8 1.8.0_166),还包括Cavium的服务器中央处理器。
但是我们不能这个结果官方发布的SPECJBB2015结果进行比较,因为我们的测试与官方运行规范略有不同。我们相信我们的结果有着和大多数专业用户一样的意义,因为他们不会追求性能的最后下降。使用这些超优化的设置可能会导致不可修复且难以调试不一致的错误,最多只能导致次优的性能,因为它们只特定于SPECJBB。这根本不值得,专业人士会坚持在真实的非高性能计算世界中进行基本而可靠的优化。在高性能计算世界中,如果出现错误,您只需重新运行您的作业。但在其他地方,这会让很多用户非常不开心。
EPYC 7742性能卓越,比英特尔最好的Xeon处理器高出48%。
请注意,小页面(4 KB)的EPYC中央处理器性能优于大页面(2 MB)。AMD的小页面TLB是巨大的,因此页表遍历(PTW)很少有大页面。如果PTW的数量已经很少了,你就不能从增加页面尺寸中得到多少优势。
那么Cavium呢?32核ThunderX2采用16纳米制程技术。所以不要低估他们,Cavium有一个独一无二的机会,因为他们把ThunderX3的FFN转移到TSMC 的7纳米FFN。
为了公平对待AMD,我们可以通过使用numactl和将JVM绑定到某些CPU来提高性能。然而,大家很少想这样做,并且更希望用这种额外的性能来换取在需要时能够启动新的JVM并让服务器来处理它的灵活性。这就是为什么大家会购买那些核心数量巨大的服务器。因为我们生活在微服务、docker容器的世界,而不是21世纪初。
但是如果真的那样做了呢?AMD提供了一些数字,并将其与ThinkSystem SR650(双英特尔8280) 官方公布的SPEJBB数据进行了比较。
AMD通过每个节点使用4个JVM来实现335600,将它们绑定到“虚拟NUMA节点”。
就像英特尔一样,AMD使用甲骨文JDK,但这些破纪录的数字还有更多。只有基准测试人员才能使用的几个技巧来提升SPECJBB:
禁用p状态并将操作系统设置为最大性能;
禁用内存保护(巡逻刷洗);
使用旧的垃圾收集器,因为它们碰巧在Specjbb更好;
非默认内核设置;
积极的java优化;
禁用JVM统计信息和监控;
…
总之,我们认为模仿这些设置并非是明智的,但是AMD的新EPYC 7742快了48%到72%。在这两种情况下,这都很重要!
尽管我们的测试不是AMD的理想情况(您可能会选择8个甚至16个后端),但EPYC超越了Xeon 8176。使用8个虚拟机将差距从1%增加到4-5%。
关键作业点度量是响应时间约束下的吞吐量度量。
随着线程数量的增加,通过显著增加每个JVM的内存,您可以获得更高的临界线程数。但是,我们不希望这样,因为这意味着我们无法与只能容纳128 GB内存的系统进行比较。请注意,英特尔系统非常需要大页面。
英特尔和AMD的基准数据如下所示。
根据AMD的数据,EPYC 7742的速度可以提高66%。但是请注意,这些关键作业点的高分有时需要配置1 TB或更多的内存。
参考链接:https://www.anandtech.com/show/14694/amd-rome-epyc-2nd-gen/11