JDK7 에 NUMA 시스템에 대한 성능 변화가?

2009. 6. 4. 09:19Java

JDK7 Early Access 가 떴네요. 빠르군요.~

먼저 아래는 NUMA에 대한 JDK7에 대한 지원 강화 부분의 설명입니다.

http://java.sun.com/javase/7/docs/technotes/guides/vm/performance-enhancements-7.html

저도 NUMA  (Non Uniform Memory Access) 시스템은 처음들어본지라 좀 찾아 보았습니다.

NUMA 시스템은 일반적으로 메모리에 액세스하는 프로세스에 따라 각 메모리의 대기 시간이 달라지는 다중 프로세서 시스템입니다
NUMA 시스템, 특히 8개 이상의 CPU가 장착된 시스템은 균일한 메모리 액세스 시스템보다 비용 및 성능 면에서 더 효율적인 경우가 많습니다. 균일 메모리 액세스 시스템에서는 모든 CPU가 동등에게 메모리를 사용할 수 있어야 하지만 NUMA 시스템에서는 CPU에 직접 연결되는 메모리에 대해서는 고속 상호 연결을 구현할 수 있으며 CPU와 간접적으

로 연결되는 메모리에 대해서는 더 높은 대기 시간을 가지지만 더 저렴한 연결을 구현할 수 있습니다
.


즉 요즘같이 난무하는 듀얼,쿼드 이상의 2,4,8개 의 cpu가 있는 일반 pc에서의 폭발적인 성능향상을 볼수있다고 생각합니다.


아래는 위의 원본글의 일부분 입니다.

The NUMA-aware allocator is implemented for Solaris (>= 9u2) and Linux (kernel >= 2.6.19, glibc >= 2.6.1) operating systems and can be turned on with the -XX:+UseNUMA flag in conjunction with the selection of the Parallel Scavenger garbage collector, which is a default for a server-class machine and also may be turned on explicitly specifying the -XX:+UseParallelGC option.

NUMA Performance Metrics

When evaluated against the SPEC JBB 2005 benchmark on an 8 chip Opteron machine, NUMA-aware systems showed the following performance increase:

  • 32 bit - About 30% increase in performance with NUMA-aware allocator
  • 64 bit - About 40% increase in performance with NUMA-aware allocator

일부 운영체제만 지원하는것 같습니다. ( 즉 모든 운영체제가 이 NUMA 시스템을 제공하는게 아닌거 같군요.)
있다면 윈도우 같은 경우 windows 2003 시리즈나, 서버군, windows2008정도 겠네요.

따라서, 서버 VM만 지원가능할것 같기도 합니다.

성능향상은 놀랍군요. 개인 pc도 사양이 올라가는 만큼 client vm에서도 이기능이 지원되면 좋겠습니다.