NUMA 아키텍처는 단일 시스템 이미지를 제공하기 때문에 별도의 최적화 없이 운영 체제를 실행할 수 있습니다.
원격 메모리 액세스의 지연 시간이 길어지면 로컬 노드로 데이터가 전송될 때까지 지속적으로 대기하여 프로세서가 미달 사용될 수 있으며, 많은 양의 메모리를 사용하는 대역폭을 요청하는 애플리케이션으로 인해 NUMA 연결에서 병목 현상이 나타날 수 있습니다.
뿐만 아니라 이러한 시스템에서는 성능이 매우 불안정할 수 있습니다. 예를 들어, 애플리케이션을 벤치마킹 실행할 때 한 번은 로컬 메모리를 사용하고 다음 번에는 모든 메모리가 원격 노드에 있는 경우 성능 차이가 심할 수 있습니다. 이와 같은 현상 때문에 용량을 계획하기 어려울 수 있습니다.
몇몇 고급 UNIX 시스템은 컴파일러와 프로그래밍 라이브러리에 NUMA 최적화 기능을 지원합니다. 이 지원 기능을 사용하려면 소프트웨어 개발자가 최적의 성능을 위해 프로그램을 조정하고 다시 컴파일해야 합니다. 단일 시스템에 대한 최적화 설정은 동일한 시스템의 다음 세대에서 제 기능을 하지 못할 수 있습니다. 애플리케이션을 실행할 노드를 관리자가 명시적으로 결정할 수 있도록 허용하는 시스템도 있습니다. 이러한 시스템은 전체 메모리가 로컬 메모리여야 하는 특정 애플리케이션에는 적합하지만 워크로드가 달라질 경우 관리가 어려워지고 노드 간의 불균형을 초래할 수 있습니다.
가장 이상적인 방법으로 시스템 소프트웨어는 애플리케이션에서 별도의 수정 없이 이 소프트웨어의 장점을 바로 활용할 수 있도록 투명한 NUMA 지원 기능을 제공합니다. 시스템에서는 관리자의 지속적인 개입 없이 로컬 메모리의 사용을 극대화하고 지능적으로 프로그램을 스케줄링해야 합니다. 마지막으로, 시스템에서는 공정성이나 성능에 영향을 주지 않으면서 변화하는 상황에 적절하게 대응해야 합니다.