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

Eam*_*orr 11 hp hp-proliant numa

我的老板想知道 HP DL320 G5 是否启用了 NUMA。我试过在互联网上搜索,但找不到任何具体信息。

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

Con*_*lls 21

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

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

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

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

您的 G5 不会在 NUMA 模式下运行,因为它具有前端总线架构。FSB是内存和所有处理器插槽共享的单一总线,因此具有统一的内存访问特性,即不是NUMA。我不知道有任何依赖 NUMA 架构的 wintel 或 lintel 应用程序;很可能应用程序不需要 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 性能方面具有一些优势。


Cho*_*er3 5

第一批 NUMA Xeon 是 55xx 系列,您的 G5 无法接受,所以它不是。