2009-12-30 3 views
1

우리는 jboss를 실행하는 solaris sparc 64 비트를 가지고 있습니다. 24G mem이 있습니다. 하지만 JVM 제한 때문에, 나는 JAVA_OPTS = "- server -Xms256m -Xmx3600m -XX : MaxPermSize = 3600m"으로 설정할 수 있습니다. 나는 정확하게 모자를 모른다. 하지만 4000m로 설정하면 자바가 좋아하지 않을 것이다.jboss 용 24G 메모리를 최대한 활용하십시오

이 24G mem을 완전히 효율적으로 사용하는 방법은 무엇입니까?

하나의 컴퓨터에서 클러스터를 사용한다면 안정적입니까? 그것은, 내가 들었 코드의 일부를 다시 작성해야합니다.

+0

-Xmx를 24G로 설정하는 것을 권장하지 않습니다. 필요로하기 때문에가 아니라, 거대한 GC 일시 중지가 발생할 가능성이 있습니다. 4G 이상으로 설정하는 것이 가능해야합니다. 64 비트 JVM이 있습니까? – Fredrik

+0

'-Xmx' 또는'-XX : MaxPermSize' 만 늘리십니까? 후자를 늘리는 것이별로 없기 때문에 더 큰 힙이 필요합니다. – skaffman

+0

하나의 물리적 서버에서 2 또는 3 개의 노드를 클러스터링하는 방법에 대해 어떻게 생각합니까? – tiantian

답변

0

모든 32 비트 프로세스는 4GB의 주소 지정 가능 메모리로 제한됩니다. 2^32 == 4 기비.

jboss를 64 비트 프로세스로 실행할 수있는 경우 (일반적으로 JAVA_OPTS에 "-d64"를 추가하는 것), jboss를 증가 된 스레드 및 객체 풀로 조정하여 해당 메모리를 사용할 수 있습니다. 다른 사람들이 언급했듯이, 가비지 컬렉션 일시 중지가 끔찍한 일 이겠지만로드 테스트 및 가비지 수집 알고리즘의 올바른 선택을 통해이를 피하는 방법을 이해할 수 있습니다.

32 비트 프로세스로 실행해야한다면 예, 적어도 run multiple instances of jboss on the same server이 될 수 있습니다. 귀하의 경우 세 가지 옵션이 있습니다 : 영역, 가상 인터페이스 및 포트 바인딩.

  • Solaris 영역
  • 당신은 솔라리스를 실행하고 있기 때문에, 그것은 (" non-global zones") 가상 서버를 생성하고 당신이하고자 실제 서버와 같은 각각의 보스를 설치하는 것은 상대적으로 쉽다

.

구성 실행할 각 보스 예를 들어 별도의 IP 주소 멀티 호밍 (multi-homing) (일반적으로 가상 인터페이스를 추가하여,하지만 당신은 또한 별도의 NIC를 설치할 수)과에 보스의 각 인스턴스를 바인딩 "-b"시작 옵션을 사용하는 자체 IP 주소.

이 가장 복잡한/취성 옵션이지만, 적어도 더 OS 변경이 필요하지 않습니다.

실제로 jboss 인스턴스를 클러스터로 구성할지 여부는 응용 프로그램에 따라 다릅니다. 한 가지 이점은 http 세션 페일 오버를 사용할 수 있다는 것입니다. 한 가지 단점은 응용 프로그램이 불안정하거나 일정 기간 동안 응답하지 않는 경향이있는 경우 클러스터 병합 문제입니다.

귀하의 신청서가 느립니다. 이러한 경로를 지나치게 멀리 떨어지기 전에 병목 현상이 어디에 있는지 파악하십시오. jvisualvm 또는 jstat를 사용하여 자주 가비지 콜렉션을 수행하는지 관찰하십시오. 그렇지 않다면 힙 메모리 또는 여분의 jboss 인스턴스를 추가해도 성능 문제가 해결되지 않을 수도 있습니다.

+0

매우 도움이됩니다. 우리는 당신이 제안한대로 2 NIC.but에 의해 IPMP를 사용하고 있지 않습니다. "solaris zone"은 solaris에서만 사용할 수 있습니다. 10. 불행히도 solaris 5.10을 사용합니다. 그건 그렇고 32bit가 4G 메모리를 사용할 수 있다고 생각하지 않습니다. 사과에만 jvm 이외의 정규 프로세스. – tiantian

+0

"SunOS 5.10"은 uname이 Solaris 10을보고하는 방법입니다. 영역을 사용하여 다시 방문 할 수도 있습니다. 그리고 4 기가 제한은 총 메모리입니다. "-Xm"설정은 전체 메모리의 일부인 jvm 힙 크기를 설정합니다. – pra

0

전체 실제 메모리를 사용할 수 없으며, JVM은 최대 연속 메모리 트렁크를 필요로합니다. 상자의 최대 사용 가능한 메모리를 테스트하려면 java -Xmxnnnnm -version을 사용해보십시오.

+0

JVM에는 32 비트 또는 64 비트의 제한 사항이 있다는 것을 알고 있습니다. 내 질문입니다 : 일반적으로, 어떻게 jboss 4.0 서버에 24G 메모리를 충분히 활용할 수 있습니까? 지금은 항상 16G가 무료입니다. 반면에 시스템은 매우 느립니다. 성능을 향상시키기 위해 jboss 서버를 조정할 수 있습니다. 하지만 그것을 할 수있는 시스템 수준의 접근 방식이 있는지 궁금합니다. – tiantian

관련 문제