저는 OpenVZ로 가상화된 Ubuntu 11.10을 사용하고 있습니다. 이 출력은 free -m
버퍼가 항상 사용된 것과 동일함을 나타냅니다.
total used free shared buffers cached
Mem: 2048 1079 968 0 0 0
-/+ buffers/cache: 1079 968
Swap: 0 0 0
이것이 968MB의 여유 메모리가 있음에도 불구하고 Java 가상 머신을 실행할 수 없는 이유입니까?
답변1
이는 OpenVZ 때문입니다. 에 적용된 제한 사항을 볼 수 /proc/user_beancounters
있으며 다음은 몇 가지 설명입니다.http://wiki.openvz.org/Privvmpages
컨테이너 관련 메모리 문제는 없었지만 여기서 조언은 다음과 같습니다.
http://www.moeding.net/archives/20-Optimizing-virtual-memory-in-OpenVZ-I.html
ulimit
시작하기 좋은 곳은 스택 크기를 설정하는 것 입니다. OpenVZ가 상단의 VIRT 열에서 찾은 것과 동일한 측정항목을 사용한다는 의미는 잘못된 것입니다. "privvmpages"에는 가상 페이지 태그가 지정되어 있습니다.쓰기 가능하고 비공개, 따라서 프로세스의 전체 주소 공간보다 훨씬 작습니다. 거기에는 몇 가지 다른 오류 메시지가 있습니다("안타깝게도 메모리 부족은 대부분의 프로그램이 올바르게 처리하지 못하는 오류 조건입니다." - Linux에서는 메모리 부족이 기본값입니다.아니요오류 상태이므로 프로그램이 이를 올바르게 처리할 기회가 없습니다). 그러나 스택 크기를 낮추는 것은 여전히 시도해 볼 가치가 있습니다.
Slm의 제안은 뚱뚱한 고양이를 찾는 사람들에게 좋은 해결책인 것 같지만, 당신의 슬라이스가 내 것과 같으면 다른 /proc/bc
방법이 없습니다. 그러나 프로세스에 대한 쓰기 가능 및 개인 통계를 얻 pmap -d
거나 상단의 숫자를 볼 수 있습니다.
1GB이면 JVM을 실행할 수 있을 것 같지만 복잡한 문제가 있습니다. 사용된 메모리와 사용 가능한 메모리의 양이 단순한 숫자가 아니기 때문입니다(이유에 대한 토론 참조).여기), 총계는 특정 시점에 기계가 실제로 전달할 수 있는 양을 초과할 수 있습니다.
답변2
나는 bash 기능을 사용하여 이 작업을 수행합니다.
vzr_mb ()
{
( printf "vm feature held(MB) maxheld(MB) barrier(MB) limit(MB) failcnt\n";
grep privvm /proc/bc/1*/resources | awk '{sub($3,$3*4096/2^20) sub($4,$4*4096/2^20) sub($5,$5*4096/2^20) sub($6,$6*4096/2^20)}1' ) | column -t
}
실행하면 다음과 같습니다.
% vzr_mb
vm feature held(MB) maxheld(MB) barrier(MB) limit(MB) failcnt
/proc/bc/101/resources: privvmpages 184.422 300.129 300 310 2
/proc/bc/102/resources: privvmpages 473.703 861.078 900 950 13
/proc/bc/103/resources: privvmpages 184.457 579.941 300 350 238
/proc/bc/104/resources: privvmpages 307.961 700.473 400 450 70
/proc/bc/105/resources: privvmpages 477.828 773.586 700 750 1730347
/proc/bc/106/resources: privvmpages 637.801 981.281 1000 1050 511
/proc/bc/108/resources: privvmpages 167.777 580.102 285 295 1
/proc/bc/109/resources: privvmpages 202.055 308.969 395 425 0
/proc/bc/110/resources: privvmpages 212.492 625.324 295 325 326
/proc/bc/111/resources: privvmpages 189.539 535.492 295 325 5
/proc/bc/112/resources: privvmpages 239.617 407.766 468.75 488.281 0
/proc/bc/180/resources: privvmpages 195.605 601.602 200 225 3049321
/proc/bc/181/resources: privvmpages 967.027 1304.82 1500 2000 3
/proc/bc/183/resources: privvmpages 0 1087.72 1115 1150 0