분석

2012-02-28 3 views
0

나는 가능한 메모리 151 MB의가는 서버를 시작하면 분석

내 바람둥이를 시작하기 전에 RAM의 사용 가능한 메모리, 주변 5백95메가바이트했다, 내 자바 웹 응용 프로그램의 메모리 관리 분석을하고 있어요 . 힙 덤프를 가져 왔을 때 대상은 262MB를 차지했습니다.

tomcat만으로 181MB 남았습니까?

또 다른 질문은 500 사용자로드 테스트를 실행했습니다. 여유 메모리는 8MB로, 여기에 힙 덤프를 가져 갔을 때 약 265MB였습니다. 그래서 여유 공간 151MB는 8MB로 줄었습니다. 이유는 무엇입니까?

RAM의 여유 메모리를 확인하려면 top 명령을 사용했습니다.

답변

0

사용 가능한 메모리는 커널, 프로그램 또는 디스크 캐시에서 사용하지 않는 메모리입니다. 디스크 캐시가 얼마나 큰지는 액세스했거나 삭제 한 파일에 따라 다르며 메모리 소비량이 좋지 ​​않습니다.

자바는 꽤 많은 메모리를 사용합니다. 그것의 대부분은 공유됩니다. Tomcat은로드하는 내용에 따라 상대적으로 복잡한 응용 프로그램이 될 수 있지만 JVM과 Tomcat에 181MB를 사용하는 것이 나에게 합당한 것처럼 보입니다.

+0

감사합니다. 로드 테스트 중 내 두 번째 질문에 대해서는 사용 가능한 메모리가 매우 적어 지지만 힙 덤프를 사용하면로드 테스트 전과로드 테스트 중에 비교할 때 크기가 크게 달라지지 않습니다. 부하 테스트 중에 메모리가 부족한 이유는 무엇입니까? –

+0

부하 테스트 중에 또는 부하 테스트 후에 덤프를 했습니까? 테스트 전후에 비교할 경우 메모리 누출이없는 한 테스트가 많이 다를 것으로 예상됩니다. –

+0

로드 테스트 중에 걸렸습니다 –

0

무료 메모리 (Profiler? TaskManager? Programmatically?)와 평가할 메모리 (힙? 비 힙? 등 ...)를 계산하는 방법에 따라 모두 다릅니다. Tomcat은 메모리를 많이 차지하지 않습니다. 정확하게 기억하지는 않지만 기본 설정은 180MB를 사용하지 않아야합니다.)

+0

'top'명령으로 RAM에 사용 가능한 메모리를 계산했습니다. –

+0

좋습니다, 이것은 아마도 실제 메모리를 계산하는 최선의 방법은 아닙니다. 그러나 더 중요한 것은 힙은 "증가하는"메모리입니다. 최소한의 메모리로 시작한 다음 현재 사용 가능한 것보다 많은 메모리가 필요할 때마다 할당 된 메모리를 늘립니다 (최대 값에 도달 할 때까지). 즉, 개체에 100MB가 걸릴 수 있지만 힙에는 128MB가 사용될 수 있습니다. 28MB가 사용되지 않았습니다. Java 메모리와 Java GC에 대해 더 많이 읽어야합니다. –