因为 NUMA 架构提供单个系统映像,所以通常可以运行没有经过专门优化的操作系统。

远程内存访问的延迟时间较长,会使处理器得不到充分利用,经常要等待数据传输到本地节点,而且 NUMA 连接会成为具有高内存带宽需求的应用程序的瓶颈。

而且,这种系统上的性能会有很大变化。例如,如果应用程序在一次基准运行时将内存放置在本地,但后来的一次运行碰巧将所有的这些内存放在远程节点上,此时性能就会发生变化。此现象会让容量规划变得困难。

一些高端 UNIX 系统支持在编译器和编程库中进行 NUMA 优化。此支持需要软件开发人员调整和重新编译他们的程序才能获得最佳的性能。针对一个系统进行的优化不能保证在下一代相同的系统上也能正常发挥作用。其他系统允许管理员明确决定运行应用程序的节点。对于要求其所有内存均必须是本地内存的某些应用程序,可能接受这种做法,不过当工作负载变化时会造成管理负担并且会导致节点之间不平衡。

理想情况下,系统软件提供了透明的 NUMA 支持,因此应用程序可以立即受益,无需进行修改。该系统应充分利用本地内存并且智能调度程序,不需要管理员经常干预。最后,该系统必须在不影响公平性或性能的情况下,对不断变化的状况作出良好的响应。