2011-08-02 6 views
3

1GB 보장 RAM 및 4GB 버스트 가능 RAM이있는 vServer에서 Java를 사용하는 Minecraft 서버를 실행합니다.Java 힙 공간 Xmx 버스트 가능 RAM이있는 vServer의 Xms

우리는 실제 Minecraft 서버와 함께 php/mySQL을 사용하는 lighttpd 웹 서버로 Debian 6.0 (Squeeze) Minimal (64Bit)을 실행합니다. 우리는 현재 모든 1GB 보장 RAM 내에 머물도록 설정했지만,이 방법으로 파열 가능한 RAM을 활용하지 않는 것처럼 보이며 그렇게해야하는지 (그리고 만약 그렇다면?)도 알지 못합니다.

/opt/java/jre/bin/java -Xmx880M -Xms880M 
         -XX:+UseConcMarkSweepGC 
         -XX:+CMSIncrementalPacing 
         -XX:ParallelGCThreads=2 
         -XX:+AggressiveOpts 
         -jar craftbukkit.jar nogui 

우리는 (우리가 생각?) 우리가이 설정을 최적화 할 수있는 방법을, 나머지는 웹 서버 등의 시스템에 예약되어 있습니다 마인 크래프트에 대한 880M를 할당 :

우리는 현재 다음과 같은 문자열을 사용하여 우리의 서버로드가 ? 1GB 이상의이 초기 시작 시간을 버스트 RAM에 할당하는 것이 합리적입니까? Java 또는 시스템이이를 처리 할 수있는 방법이 있습니까? 예를 들어 피크 시간대에 880M 이상을 할당 할 때 최대 4GB를 할당 할 수 있습니까? burstable RAM은 보장되지 않기 때문에 필요할 때 사용할 수없는 경우 어떻게됩니까? 감사!

답변

1

어떻게하면이 설정을 최적화 할 수 있습니까?

이 달려있다. 먼저이 프로세스의 메모리 사용량을 프로파일 링해야합니다. 명령 줄에

-verbose:gc:file=gc_results.out

를 추가합니다. HPjmeter과 같은 도구로 결과 gc 데이터 파일을 열 수 있습니다. 평균/최대 메모리 사용량에 따라 힙을 조정해야합니다. '최적'인 모든 정책에 맞는 크기는 없습니다. 우선 평균적으로 가비지 콜렉션에서 소비하는 시간을 검사하십시오. 엄지 손가락의 좋은 규칙은 < 7 %입니다. Full GC를 얼마나 자주 트리거합니까? 힙이 긴 생명체로 가득 차 있습니까? 아니면 짧은 생명체가 많이 포격당하는 것입니까? 이러한 질문은 의사 결정을 유도해야합니다.

+0

나는 매우 정직 할 것이다. 나는 GC에 대해 들어 본 적이 없으며 그것이 무엇인지 알지 못한다. – Jurgen

+0

GC가 가비지 수집입니다. Java에는 자동 메모리 관리 모델이 있습니다. –

+0

나는 또한 실행중인 실제 프로세스 (minecraft 서버)를 제어 할 수 없으며 객체 등을 처리하는 방법에 대한 정확한 기술적 세부 사항도 알지 못합니다. 항상 880M을 필요로하지는 않습니다. 메모리 사용량은 온라인 플레이어 수에 따라 변동하는 것으로 보이며 부하가 많이 걸리거나 사용량이 많은 경우 피크가 될 수 있습니다. 최고점에 도달하고 메모리가 충분하지 않으면 minecraft 서버가 중단됩니다. 문제는 많은 버스트 블 RAM이 우리가 그 피크를 처리 할 수 ​​있어야한다고해도 현재의 설정으로 880을 뛰어 넘을 수 없다는 것입니다. – Jurgen

0

서버는 할당 된 최대 RAM을 사용하는 데 대부분의 시간을 소비합니다. "버스트 블 (Burstable)"RAM에 대한 나의 이해는 그다지 중요하지 않지만 잠깐 필요하다면 충돌하지 않을 수도 있습니다. 이 경우, JVM이 burstable RAM에 걸려있는 것을 원하지는 않습니다. 지정한 구성이 올바르게 표시됩니다.