如何检查服务器是否启用了 NUMA?

如何检查服务器是否启用了 NUMA?

我的老板想知道 HP DL320 G5 是否支持 NUMA。我尝试搜索互联网,但找不到任何具体信息。

有谁知道该服务器是否适合运行 NUMA 应用程序?

答案1

Opterons 和 Nelahem(55xx 及更高版本)Xeon 具有 NUMA 架构 - 每个插槽都有自己的内存总线,并且插槽之间有链接。此链接在 Opteron 系统上称为 Hypertransport,在 Xeon 上称为 Quickpath。G5 早于 Nelahem,并且仍然使用较旧的前端总线,这不是 NUMA 架构。

Opterons 和 35xx/55xx 或更高版本的 Xeon 可以使用纯 NUMA 寻址模式,其中每个插槽的内存位于物理地址空间的连续部分中。如果您想运行 NUMA 感知的应用程序(例如支持处理器亲和性),那么您可以将系统设置为在此模式下运行。

这种类型的系统还具有传统模式,其中各个 4K 页面在插槽之间交替,因此内存访问在插槽之间精细混合。这会产生轻微的性能开销,因为一半的内存访问必须通过 Hypertransport 总线到达另一个插槽(对于 Xeon,则是 Quickpath)。但是大多数访问将被缓存,因此性能开销相对较小。

此模式允许系统有效地运行非 NUMA 感知应用程序,并且通常是系统启动的默认模式。通常您可以在 BIOS 中进行配置。

您的 G5 不会在 NUMA 模式下运行,因为它具有前端总线架构。FSB 是由内存和所有处理器插槽共享的单个总线,因此它具有制服内存访问特性,即非 NUMA。我不知道有任何 wintel 或 lintel 应用程序依赖于 NUMA 架构;应用程序可能不需要 NUMA,但如果存在,则会支持它。您可能仍可以在较旧的 G5 系统上运行该应用程序。这是否相关取决于应用程序以及您想要实现的目标。

应用程序中的 NUMA 支持

某些应用程序(例如 SQL Server)可以通过优化内存、I/O 利用率和调度来实现显著的性能优势,从而最大限度地减少非本地访问带来的损失。在应用程序中实现 NUMA 支持需要操作系统提供支持设施,例如:

  • 调度程序亲和性:线程可以放置在优先调度一个或一组处理器的池中。请注意,NUMA 可以在单个内存总线上拥有多个处理器 - 对于多核 Opteron 或 Xeon,单个芯片上的所有核心都共享同一总线。这允许线程请求本地内存或使用 CPU 池本地的内存池。此外,当线程保留在本地 CPU 上时,它会在调度线程时最大限度地减少缓存抖动 - 工作集只是使用该特定核心的线程工作集。

  • 内存亲和性:线程可以请求内存并指定它必须或应该从插槽本地的内存中可用。将内存和 CPU 使用率保持在同一总线上可最大限度地减少非本地内存访问的开销。在现代 NUMA 系统上开销并不大,但在较旧的系统(例如早期的 Sequent 设备)上,非本地访问要慢得多。

  • I/O 亲和性:外设总线可以绑定到本地 CPU,因此可以将 I/O 处理安排在靠近 I/O 的处理器上。大多数 NUMA 系统都有多个 I/O 总线,因此将中断处理程序和 DMA 安排到本地内存可以提高 I/O 性能。

答案2

第一款 NUMA Xeon 是 55xx 系列,您的 G5 无法采用该系列,所以不是。

相关内容