MCPLive > 杂志文章 > AMD第三代EPYC处理器性能调优指南

AMD第三代EPYC处理器性能调优指南

2021-07-07MC评测室

AMD第三代EPYC处理器的综合性能相比前代有了大幅提升,如何通过合规安装、优化设置来尽可能发挥出其最强性能呢?事实上根据官方指导对AMD EPYC处理器平台服务器进行硬件安装、BIOS设置和系统优化,就能实现平台的全面优化,充分释放性能。

 

硬件安装
服务器处理器持续高负荷工作,发热量通常都非常高,加上内部空间相对狭窄,如果安装方式不正确,就会造成热量聚集,影响性能发挥以及稳定性。
AMD第三代EPYC处理器沿用了SP3接口封装,AMD提供了专用的工具来进行Socket螺丝的拆装,如果使用电动螺丝刀,那么建议将扭矩设置为75LBF。安装服务器处理器时,要将散热硅脂均匀地、尽可能薄地涂抹到处理器上。涂抹时确保硅脂无气泡、无杂质、覆盖充分,从而保证更高效地将处理器的热量传递到散热器上。

▲AMD第三代EPYC处理器沿用了SP3接口封装

 

一般来说,服务器上都会有很多内存插槽。AMD第三代EPYC处理器可以支持4、6、8三种内存通道模式。考虑到如今企业级负载对内存带宽和容量的需求,单颗EPYC处理器通常至少会搭配4根内存。一般而言,内存的安装从距离处理器最远端的插槽开始,内存的具体插法则需遵从服务器使用手册。

 

BIOS调整
完成硬件安装和设备连接后,管理员需要首先登录到BMC管理界面对BIOS进行升级,确保已经升级至最新的稳定版BIOS。之后在最新的BIOS下,对相关参数进行调整,以充分发挥AMD EPYC处理器的性能。
当然,不同主板厂商的BIOS可供用户设置的选项与路径是不同的,下面我们将以AMD公版BIOS进行介绍。其对平台的相关调整,均被整合到了“Advanced”页面的“AMD CBS”(Common BIOS Setting)项目下,可以调整AMD的内部功能设置。“AMD CBS”包括了“CPU Common Options”“DF Common Options”“UMC Common Options”“NBIO Common Options”“FCH Common Options”“NTB Common Options”“Soc Miscellaneous Control”等项目。

CBS = Common BIOS Setting,用于调整AMD的内部功能设置

CBS项目下,包含了多个AMD EPYC平台的内部功能设置项目


首先是在“CPU Common Options”页面设置CPU的相关情况,“Performance”项目可以对处理器的CCD、Core核心数量、SMT进行设置。不同代次、不同型号的处理器其具体选项不同,比如第三代EPYC处理器最高支持8个CCD,每个CCD最大可支持8个核心。“CCD Control”可以调整实际使用的CCD数量,“Core Control”可以调整每个CCD中实际使用的核心数量。这里我们建议均采用【Auto】设置,将具体信息交由SMU直接控制,根据处理器实际情况而定。多线程的设置则通过“SMT Control”来实现,默认开启。

在Performance(性能)项目设置下,可设置处理器的CCD芯片数量、核心数量,开启或关闭处理器的多线程功能。


“CPU Common Options”页面中的“Core Performance Boost”是EPYC处理器的超频(Boost)选项,关闭状态下处理器只能工作在基础频率下。为了获得更好的性能,我们建议设置为【Auto】,默认开启超频。“Global C-state Control”是节能选项,开启后会自动根据负载调整处理器的功耗。一般情形下建议使用【Auto】,即开启。在对于部分延迟非常敏感的应用场景,可以考虑关闭这个选项。
“DF Common Options”页面中主要是对内存访问进行一些设置,来提高数据读写方面的性能。比如我们通过NUMA NPS(Nodes Per Socket)来更改NUMA节点配置,其中NPS0将两颗CPU作为一个节点,NPS1将一颗CPU作为一个节点,NPS2将一颗CPU左右两部分各作为一个节点,NPS4将一颗CPU的每个象限作为一个节点,选择【Auto】则默认采用NPS1。常规来说,我们需要根据CCD数量的不同来进行NPS设置,4个或8个CCD可以使用NPS4/2/1/0,6个CCD可以使用NPS2/1/0,2个CCD只能使用NPS1/0。“Memory interleaving”用于设置内存访问交错模式,采用【Auto】模式默认启用,该选项配合NPS来使用。当使用NPS1时,打开该选项默认可使用8通道内存交错访问;如果不满足8通道内存,会降到4通道或2通道内存交错访问。当使用NPS2时,默认为4通道交错访问;使用NPS4时,默认为2通道交错访问。“Memory interleaving size”则是设定内存交错大小,其中默认【Auto】为256bytes。

 

在DDR4 Common Options下,可调节内存的时序,开启或关闭内存低功耗模式,以及对地址、控制与数据总线进行配置。


“UMC Common Options”主要用于内存控制器的相关设置,多数都是与debug有关。“DDR4 Common Options”用于内存硬件参数调整及RAS特性设置,比如DRAM时序设置,地址、控制与数据总线配置,RAS特性、TSME内存加密开关,以及内存控制器选项,包括“DRAM Power Options”对于“Power Down Enable”的节能设置,关闭有助于改善内存延迟,但是会增加功耗,一般会选择【Auto】默认打开或者【Enable】启用。另外,这里还可以设置“Memory MBIST”内存自检,常规选择【Disable】默认关闭。
在“NBIO Common Options”页面,主要用于设置芯片组IO相关的选项。“IOMMU”(I/O Memory Management Unit)项目,用于设置外设在DMA传输时地址转换和系统内存访问保护,包括【Enable】、【Disable】、【Auto】三个选项,开启IOMMU可以提高与外部存储的数据交换速度,降低系统性能消耗。一般情况下,我们建议IOMMU设置为【Enabled】,同时把iommu=pt添加到grub里。当服务器运行虚拟化软件时,可以实现虚拟内存对物理内存的地址映射,带来数据性能的提升。如果关闭IOMMU,则会令x2APIC关闭,最终导致CPU 255不能识别。

 

IOMMU项目用于设置外设在DMA传输时地址转换和系统内存的访问保护。


“SMU Common Options”项目,主要用于处理器相关的系统性能管理设置。其中,“Determinism Control”用于选择是否启用手动设置。如果启用手动,那么就可以通过“Determinism Slider”来选择是追求稳定性能,还是追求极致性能。“Determinism Slider”提供了【Auto】、【Power】、【Performance】三种模式。一般来说,为了实现业务的稳定,确保系统性能的一致性,采用默认的【Performance】模式是最好的选择。如果想要冲击一下Benchmark的最高性能,那么可以选择【Power】模式,能挖掘每颗芯片的最大性能,当然功耗也会相应上升。
“SMU Common Options”项目下还有“cTDP Control”,也就是CPU的TDP功耗设置。AMD EPYC处理器支持手动设置TDP功耗限制,也就是用户可以根据系统的散热能力来设置对应的TDP功耗,不过这个值不能高于TDP max。cTDP设置越高,也就意味着处理器能够以更高的功率运行,提供更强劲的性能。用户需要根据AMD EPYC处理器规格表来确定其最大cTDP,比如225W的OPN最高支持到240W的cTDP。如果选择【Auto】,则使用默认TDP。用户还可以使用Package Power Limit Control设定功耗上限但不能超过cTDP的值,这个选项可以被管理软件动态修改。
“Efficiency Mode Enable”效率模式允许用户在性能和功耗中间进行选择,其中选择【Auto】默认使用性能优化CCLK DPM设置;选择【Enable】使用电源效率优化CCLK DPM设置,使用该模式可以提升每瓦性能,C0占比80%以上。如果想要获得更强的服务器性能,那么我们就需要选择默认的性能优化模式。
“APBDIS”当中,包括了Data Fabric Algorithm Performance Boost DF超频选项,可以选择【0】开启,结合负载动态调整频率,降低功耗;选择【1】关闭,采用固定频率,结合Fixed SoC Pstate设置为P0可以减小Memory/IO延迟,但会增加功耗。“Boost Fmax Enable”用于设置最高超频值,适用于所有核心。其提供了【Manual】手动选项,允许用户设置一个不高于默认Fmax的最高超频值或者采用【Auto】直接使用默认的Fmax。Fmax(Max Boost Freq)就是最高超频,是指单核超频时使用最大值。一般情况下每个Die上可以有最多两个物理核心同时达到Fmax,此时其他核心将处于CC6电源关闭状态。
“Preferred IO”(PIO)是AMD提供的一种提升I/O性能的方法,这里提供了【Manual】、【Auto】两种选项,其中【Auto】默认不开启。PIO机制是关闭Root Complex DPM,并将LCLK从300MHz提升到593MHz。用户可以在系统中通过使用AMD I/O Power Management Utility关闭Root Complex DPM功能,然后启用PIO并通过“Preferred IO Bus”选定准备优先处理的总线。第二代EPYC处理器只支持一条总线设置为PIO,第三代产品则支持多Root Complex使用PIO。

 

I/O调优
对于服务器来说,数据I/O能力也会明显影响实际性能,因此I/O调优也很重要。首先,我们需要安装libaio-devel开发包,从而启用异步I/O功能。异步I/O功能可以避免同步调用的阻塞,实现多个线程的同时操作。为了提高虚拟化的效率,我们可以在grub文件中加入iommu=pt,将IOMMU设置为passthrough模式。当服务器拥有SR-IOV设备时,passthrough模式允许不通过内存中转而直接将相应设备交给终端调用。
对于服务器来说,将不同的硬件中断平均绑定到不同的核心上,可以实现较好的性能平衡,从而让多核处理器的性能得到充分的发挥。比如将网卡中断绑定到本地NUMA节点上,将网卡队列数量设置为一个Die内的核数。完成网络优化后,可以进行RFC2544性能测试,看看服务器的吞吐量、延迟、帧丢失率表现。

 

系统设置
因为AMD EPYC处理器支持超大容量内存,为了让系统更有效地管理大容量内存,我们可以在操作系统中启用透明超大页面(THP),来降低使用超大页面的复杂度。不过需要注意的是,在某些特定场景中,启用THP有可能会出现异常,造成延迟和内存使用问题,因此是否启用还要看具体的应用负载情况。

分享到:

用户评论

用户名:

密码: