2012-11-12 3 views
0


2GB RAM 및 Debian x64가 포함 된 VPS 서버를 구입했습니다. 나는이 명령으로 마인 크래프트 서버를 실행하려는 경우 :
craftbukkit.jar
화면 자바 -Xmx1600M -Xms1600M -jar을하지만 서버가 정보 로 종료 유지 나는이를 찾을 수 있습니다 로그에, [화면이 종료됩니다] : http://pastebin.com/YupAEnyN
시스템에서 사용하는 메모리가 부족합니다. http://i.stack.imgur.com/2Yrl2.png
VPS가 OpenVM에서 작동하기 때문에 불행히도 스왑을 만들 수 없습니다.
가능한 한 많은 RAM으로 서버를 실행하려면 어떻게해야합니까? 서버가 -Xms1536M -Xmx1536M과 함께 실행되고 있지만 더 많은 것을 얻고 싶습니다 ...
미리 감사드립니다!
Java 기반 서버는 전체 VPS 메모리와 함께 실행할 수 없습니다.

+1

OS에 일부 메모리가 필요하다고 생각하십니까? 예를 들어 사용하십시오. 'htop'을 사용하여 얼마가 사용되는지 확인하고 JVM에서 사용할 수있는 양을 결정합니다. –

+0

"htop : command not found"... – TheReduxPL

+0

sudo aptitude install htop –

답변

2

나는 당신이 그들을 증가 시키려고하는 대신에 메모리 설정을 줄여야한다고 생각한다. 오류가 Native memory allocation (malloc) failed

-Xmx 플래그가 자바 힙 메모리를 증가했다

알 수 있습니다. Java 코드에서 더 많은 메모리를 사용할 수 있습니다. 그러나 그것은 당신의 문제가있는 곳이 아닙니다. Java에는 많은 메모리가 있습니다. 이 오류는 원시 코드의 메모리가 부족함을 나타냅니다.

2GB RAM을 사용하면 Java 프로세스에서 1.7GB를 사용할 수 있습니다. 이것은 절대적으로 초과 할 수없는 운영 체제 정의 한계입니다. (나는 당신의 시스템에 실제 가치가 무엇인지 알지 못한다. 단지 1.7GB 인 것처럼 보인다.) 이제 -Xms1600M을 지정했다. Java 코드 용으로 1.6GB를 예약했으며 다른 모든 원시 코드 용으로 100MB를 소량 남겼습니다.

나인 경우, -Xms1024 -Xmx1024부터 시작하여 Java 코드의 경우 1GB, 다른 원시 코드의 경우 수백MB를 제공합니다. 프로세스가 Java 코드 (원시 코드 아님)에서 OutOfMemory 예외를 받기 시작할 때만이 값을 높이는 것을 고려할 것입니다.

이 모든 것이 반 직관적입니다. 훨씬 더 깊이있는 설명은 다음에서 기사를 참조하십시오. http://www.ibm.com/developerworks/linux/library/j-nativememory-linux/index.html

+0

나는 현재 영어가 능숙하지 않아 그 글을 읽을 수 없다. 문제는 1GB의 메모리가있을 때만 700MB의 RAM을 할당 할 수 있지만 2GB로 업그레이드하면 1500MB 만 할당 할 수 있다는 것입니다. 이 논리는 어디에 있습니까? 나는 그것이 시스템 한계라고 생각하지 않는다 - 또는 동적 인 ... – TheReduxPL

관련 문제