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


11

我的老板想知道HP DL320 G5是否启用了NUMA。我曾尝试搜寻互联网,但找不到任何特定信息。

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


4
问惠普?他们应该知道。
斯文

Answers:


21

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

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

这种类型的系统还具有传统模式,其中各个4K页面在套接字之间交替,因此在套接字之间可以很好地混合使用内存。由于所有内存访问的一半必须通过Hypertransport总线到达另一个套接字(在Xeons中为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性能方面带来一些优势。


1
非常有用的信息。非常感谢您为我节省了很多时间。
Eamorr 2011年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.