专栏名称: 企业存储技术
企业存储、服务器、SSD、灾备等领域技术分享,交流 | @唐僧_huangliang (新浪微博 )
目录
相关文章推荐
51好读  ›  专栏  ›  企业存储技术

AMD EPYC 9005服务器BIOS & 工作负载调优指南

企业存储技术  · 公众号  ·  · 2024-11-04 07:40

正文

引言:最好的调优,就是不要(手动)调优吗?如果是手机、 PC 之类的消费级产品确实如此, OEM 厂商甚至把一般人不需要修改的 BIOS 设置隐藏掉。对于服务器用户群,虽不太容易做到这样,但如果能做得相对“傻瓜”,需要修改调优的选项少一些则更好。

前几年我曾经发过 2 篇相关内容:

服务器BIOS应用调优:低延时、虚拟化、数据库、SDS和CSP

新一代Xeon Scalable服务器BIOS性能调优指南

就在后面那篇的读者留言中,有专家朋友表示参数太多、可能调优不明显?也有读者询问有没有 AMD 平台服务器的 BIOS 调优介绍(因为前面 2 篇都是针对 Xeon 的)。

就在半年前,我还真想过要整理一篇(上面截图为证),后来没发出来是觉得当时的资料对读者朋友可能参考有限。如果只是做个简单翻译意义不大

直到我在 EPYC 9005 CPU 发布之后,看到 AMD 官方文档《 BIOS & Workload Tuning Guide for AMD EPYC 9005 Processors 》,又想分享给大家。倒不一定是里面有多高深的调优秘诀,反而是 每一项 BIOS 选项的介绍写得不错 ,对于 AMD 服务器平台不是太熟的朋友参考下挺合适的。

讲清楚设置选项的作用,大家就会容易理解调优时为什么需要改 / 或者不改。

注:本文是我学习后整理的笔记,如有不足之处欢迎批评指正。对于服务器技术专家、英文好的朋友也可以直接看 AMD 原始文档(链接见文末)。

5 大领域、 19 类细分服务器应用

General-Purpose Workloads

CPU Intensive

Java Throughput

Java Latency

Power Efficiency

Memory and I/O Intensive Workloads

Memory Throughput

Storage I/O Throughput

NIC Throughput

NIC Latency

Virtualization and Containers

VMware vSphere Optimized

Linux KVM Optimized

Containers

Database, Analytics and AI/ML

RDBMS Optimized

Big Data Analytics Optimized

IoT Gateway

AI/ML

HPC, Telco, and EDA Settings

HPC

Telco (CORE)

Telco (Mgmt, Security, CDN)

EDA


  1. 1. Processor Core Settings

Simultaneous Multithreading (SMT) Settings

译文: 启用同步多线程( SMT )会对某些工作负载(尤其是 高性能计算( HPC )产生中性到负面的性能影响。此外,一些应用程序 许可证计算 启用的硬件线程数量而不是物理核心数量。因此,在你的 AMD EPYC 9005 系列处理器上禁用 SMT 可能是最佳选择。

注:大多数应用保持打开;部分网卡吞吐 / 延时敏感型应用,以及部分 HPC EDA 应用可考虑禁用。

Cache Prefetchers

译文: 大多数工作负载和生产部署都受益于 L1 L2 流硬件预取器收集数据并使核心流水线保持繁忙状态,但是对于一些将内存带宽用到最大容量的工作负载而言,当部分或全部预取器被禁用时,性能可能会更好。默认情况下所有预取器都是启用的。务必针对您的部署对预取器进行评估。

注:根据我的经验, 绝大多数应用不需要修改 L1/L2 Cache 默认的预取设置。在少数关系型数据库中,可以考虑禁用 L1 Stream HW Prefetcher L2 Stream HW Prefetcher

Core Performance Boost

译文:核心性能加速( Core Performance Boost )可以启用或禁用。启用此设置后,处理器能够根据系统中活跃核心的数量、功率和散热空间,适时地将一组 CPU 核心的频率提升到高于 CPU 额定基本时钟速度的水平。

一些工作负载不需要最高核心频率就能达到可接受的性能。限制最大核心加速频率可以降低功耗。 BoostFmax 设置会限制最大加速频率,但不会设定一个固定频率。如果 BoostFmax 设置得过高,片上系统( SoC )将不会超过算法允许的最大频率。实际的加速性能取决于许多因素,包括本调优指南中讨论的其他设置。

Global C-States Control

译文:全局 C-States 控制可启用和禁用服务器上所有核心的 C-States 。禁用此功能意味着 CPU 核心只能处于 C0 (活动)或 C1 状态,因为 C1 状态无法被禁用。如果操作系统暂停某个核心,该 CPU 核心将处于 C1 状态。基于 I/O C-States 生成和深度休眠( DF C - 状态包含核心处理器 C-States 。如果您有低延迟或极低抖动的使用场景,那么可以考虑按照本调优指南所述禁用深度休眠 C-States AMD 强烈建议除了调试情况外,不要禁用全局 C-States

  1. 2. Power Management Settings

Power Profile Selection

注:默认设置为 0: High Performance mode ( 高性能模式 ) ;要求控制电源能效的场合建议设置为 1: Effciency Mode ;部分关系型数据库可考虑设置为 2: Maximum IO Performance

Power vs. Performance Determinism Settings

译文: 确定性启用( Determinism Enable 可在以下两者之间选择:

Performance (对于大多数操作处理编号( OPNs )而言是默认选项)

在数据中心内 ,配置相同的系统间可实现统一性能。需将热设计功耗( TDP )和平台功率限制( PPL )设置为相同的值。这样一来,无论环境或芯片存在何种变化,工作负载 性能都能保持一致

Power

通过最大限度地发挥给定 CPU 的能力来实现单个系统的最高性能,这会导致在数据中心或更大规模部署中出现不同的性能范围。

确定性( Determinism 设置为 性能 时,无论环境或 芯片的差异 如何,都能使工作负载性能保持相同。

确定性 设置为 功率 ,可将工作负载 性能在特定部件功率限制内最大化 ,从而依据芯片 利用额外的性能提升空间 。如果使用功率确定性,可通过将 TDP 和封装功率限制( PPL )设置为 CPU 所支持的最大 TDP 值来获取最大性能。将 TDP PPL 设置为 自动( Auto ,会将这两个参数都设为 CPU 的默认 TDP 值,以实现节能运行。

注:按照 AMD 的建议,存储 I/O 吞吐型应用、关系型数据库、 AI/ML EDA 应用,建议修改为 Power

Processor Cooling and Power Dissipation Limit Settings

译文:一个操作处理编号( OPN )的热设计功耗( TDP )代表了所有处理器组件为实现给定性能目标而消耗的功率。这个性能目标可能在远低于 TDP 的情况下就可达成,在这种情况下,处理器将有提升空间以超越性能目标运行。这种提升空间因不同部件而异(硅片制造时产生的)。你可以通过 BIOS 的确定性( Determinism )设置来利用超出 OPN 目标性能的额外性能。

封装功率跟踪器( PPT )控制每个处理器的封装功率限制,适用于系统中安装的所有处理器。更多信息请参阅功率 / 性能确定性部分。

注:有些应用建议将 TDP PPT 修改为手动和 OPN Max ,详见参考文档。

ACPI Collaborative Processor Performance Control (CPPC)

译文:启用协作式处理器性能控制( CPCC )能让操作系统通过控制 Turbo 的应用时机和幅度来帮助维持能效。高级配置与电源接口( ACPI 5.0 引入了这一特性。并非所有操作系统都支持 CPCC 。微软从 Windows Server 2016 开始支持 CPCC

  1. 3. NUMA and Memory Settings

L3 Cache as NUMA Domain

译文

  • 禁用(推荐) :非统一内存访问( NUMA )节点( cpubind )和内存交错( membind )都由 每处理器插槽数( NPS 设置决定。

  • 启用 :通过将每个末级高速缓存( LLC )映射为一个 NUMA 节点,覆盖非统一内存访问节点数量的 NPS 设置。这不会对内存交错产生影响。

注:大多数应用不建议打开。一部分内存和 I/O 密集型工作负载中的内存吞吐型应用、 Linux KVM 虚拟化(取决于虚机是否跨 CCD ?)、大数据分析应用可以尝试打开。

NUMA Nodes per Socket (NPS)

译文: 此设置用于在针对支持非统一内存访问( NUMA )的工作负载或高度可并行化的工作负载最小化本地内存延迟,与针对不适合 NUMA 的工作负载最大化每核心内存带宽之间进行权衡。在某些操作处理编号( OPNs )上或者对于某些内存配置, NPS2 / NPS4 可能不是可用选项。

  • NPS1 :表示每个插槽有一个 NUMA 节点。此设置将处理器上的所有内存通道配置到一个单一的 NUMA 域中。处理器的所有核心、所有连接的内存以及连接到片上系统( SoC )的所有 PCIe 设备都在这一个 NUMA 域内。内存访问在全部 24 个内存通道间交错进入一个单一地址空间。对于 大多数工作负载,建议使用默认配置(每个插槽一个 NUMA 域)

  • NPS2 :每个插槽有







请到「今天看啥」查看全文