2009-08-01 2 views
2

Java 웹 응용 프로그램에서 세션 당 메모리 사용량을 프로파일 링하는 방법/도구가 있습니까?Java/Seam 웹 응용 프로그램에서 세션 메모리 사용량을 프로파일하는 방법은 무엇입니까?

더 구체적으로 저는 Seam을 사용하고 있으며 사용자 또는 현재 세션에 대한 특정 객체를 가지고있어서 사용자 세션에 저장되도록 설정되어 있습니다.

몇 시간 전에 특정 응용 프로그램 사용자 수가 많아지면 응용 프로그램이 메모리 부족으로 실행되어 세션에서 여러 가지 물건을 옮기고 메모리가 다운 될 때까지 프로파일 링했습니다. 그러나 메모리 측정은 JVM 수준에서 이루어졌습니다. 나는 비 세션 메모리 사용을 제외하고, 세션 레벨에서 메모리 사용을 모니터하는 방법을 정말 좋아할 것이다.

니스해야합니다 : (I은 전체 응용 프로그램의 메모리 사용량을 비교할 수 있습니다) HTTP 세션에 대한

  • 총 메모리 사용량
  • 당 세션 메모리 사용, 심지어 평균.

답변

1

나는 비슷한 문제를 진단하기 위해 많은 Eclipse Mat을 사용합니다. 큰 세션이있는 경우 세션 관리자가 "Dominator Tree"보고서에 나타납니다. 세션 및 앱의 다른 부분별로 총 메모리 사용량을 쉽게 구별 할 수 있습니다.

개별 세션으로 드릴 다운하고 각 세션에서 사용되는 메모리 양을 확인할 수 있습니다. 개별 세션을 열고 세션의 각 개체를 검사 할 수도 있습니다.

MAT에서 제공하는 다른 보고서를 살펴 보는 것도 좋은 방법입니다. 때로는 결과가 놀랍습니다. 예를 들어 JRE 클래스 로더 문제로 판명 된 메모리 사용 문제가있었습니다.