2013-01-22 2 views
1

동일한 서버에 두 개의 ActivePivot 인스턴스를 배포합니다 (상호 화).실제 코어에 ActivePivot 인스턴스를 바인딩하는 방법

서버에는 12 개의 논리 코어가 있습니다. 우리는 ActivePivot 인스턴스 A에 대한 4 코어 라이센스와 ActivePivot 인스턴스 B에 대한 2 코어 라이센스를 보유하고 있습니다.

2 개의 인스턴스가 각각 (비효율적으로 동일한 코어를 공유하는 대신) 자체 코어를 사용한다는 것을 어떻게 확인할 수 있습니까?

답변

1

ActivePivot은 JVM에서 실행되므로 ActivePivot 인스턴스를 호스팅하는 JVM 프로세스를 코어 집합에 바인딩하여 수행 할 수 있습니다.

모든 운영 체제에는 프로세스를 코어, Windows의 친 화성/Windows (http://blog.tune-up.com/windows-insights/assign-processor-affinity-to-improve-performance/) 및 Linux의 작업 세트 (http://www.cyberciti.biz/faq/taskset-cpu-affinity-command/)에 바인드하는 명령이 있습니다. 다시 한 가지 요령은 JVM 프로세스를 원하는 코어 세트에 바인딩하는 것입니다. Apache Tomcat에서 ActivePivot을 실행하면 바인딩 명령으로 Tomcat 자체를 시작한다는 의미입니다.

그러나 유스 케이스의 바인딩을 강요하지 않아도됩니다.. 운영 체제의 스레드 스케줄러는 두 인스턴스간에 스레드를 할당하는 작업을 매우 잘 수행하여 동일한 실제 코어에서 스레드를 숨기는 것을 방지합니다. 그리고 그 스케줄링은 시스템의 다른 스레드를 고려하여 완전히 동적입니다.

수동 바인딩을 고려하는 유일한 경우는 NUMA 아키텍처를 사용하는 대형 서버입니다. JVM을 NUMA 노드에 숨기면 성능이 향상되기 때문에 (How does NUMA architecture affect the performance of ActivePivot?의 토론 참조).