2012-08-09 2 views
1

java 웹 응용 프로그램을 개발 중이며 Tomcat 7 서버에서 실행 중입니다. 나는 호출하여 메모리의 크기를 확인하고 있습니다 :Tomcat JVM의 크기는 가변적입니까?

System.out.println("Total memory is: " + Runtime.getRuntime().totalMemory()); 

것은 내가 내 데이터의 크기가 Runtime.getRuntime().totalMemory()뿐만 아니라 커질 큰 가져올 때 크기가 변화하고 있음을 나타 납니까 무엇.

1- JVM이 응용 프로그램 데이터의 크기보다 커지려고합니까?

2- RAM 메모리 크기 이외의 JVM 크기에는 제한이 있습니까?

3- 위의 두 가지와 관련이없는 세 번째 질문 : 실행중인 Tomcat 7 서버 응용 프로그램의 크기는 얼마입니까? 실제로 나는 나의 서버 (아마존 클라우드 서버, 무료 타이어, 600 MB RAM)에 작은 RAM을 가지고있다. 그리고 JAVA가 웹 애플리케이션을 배치하지 않고 약 52 %의 메모리를 차지하고 있다는 것을 알아 차렸다.

매우 기본적인 질문에 실례합니다. 웹 서버 및 웹 응용 프로그램에 익숙하지 않습니다.

+3

[가비지 수집기가 작동 할 때] 개체 힙이 동적으로 커지고 축소됩니다 (http://www.javaworld.com/javaworld/jw-08-1996/jw-08-gc.html). :-) – oldrinb

+1

최소 및 최대 힙 크기를 제어하는 ​​방법은 [이 게시물에 설명되어 있습니다.] (http://stackoverflow.com/questions/1098488/jvm-heap-parameters). 기본적으로 힙은 계속 증가 할 것이고 GC는 결국 적합한 개체를 복구하기 위해 시작될 것입니다. 응용 프로그램에 메모리 누수가있는 경우 서버 설정의 한계에 따라 결국 'OutOfMemory' 예외가 발생합니다 – Brad

답변

3

RAM 메모리 크기 이외의 JVM 크기에는 제한이 있습니까?

예, 한도는 set by you입니다. 초기 힙 크기

최대 힙 크기 -Xmx-Xms

JVM은 실질적으로 실행됩니다. 컴퓨터에서 사용 가능한 것보다 많은 메모리를 할당하면 스왑 아웃됩니다.

실행중인 Tomcat 7 서버 응용 프로그램의 크기는 얼마입니까?

직접 질문하지 않았습니까? 그것은 당신의 기억의 52 %입니다. 일반적으로 specify for your Tomcat the memory max. and min. size도 가능합니다. 결국 그것은 단지 또 다른 JVM입니다.