2009-09-22 6 views
2

Tomcat 5.5 서버에서 실행되는 수많은 Spring Framework 기반 애플리케이션이 있습니다. 그들 중 일부는 자신 만의 인스턴스를 갖고, 일부는 다른 애플리케이션과 서버를 공유합니다. 그들 모두가 공통적으로 가지고있는 한 가지는 그들이 정말로 필요하다고 생각하는 것보다 많은 양의 메모리를 필요로한다는 것입니다. Tomcat 서버를 프로파일 링하기위한 도구가 있습니까?Spring ApplicationContext가 기괴한 메모리 양을 차지함

자세한 내용은 3GB의 메모리에 액세스 할 수있는 완전히 패치 된 우분투 9.04에서 실행됩니다 (약 절반이 실제로 차지함).

+0

더 정교한는, 이들에 실행하려면 :

http://www.lambdaprobe.org/d/index.htm

는 또한 살펴 완전히 업데이트 된 우분투 9.04는 3GB의 메모리에 액세스 할 수 있습니다 (약 절반이 실제로 사용됩니다). –

+0

은 실제 질문에 대한 귀하의 의견을 추가했습니다.) – hhafez

답변

1

JConsole을 살펴보십시오. Tomcat 자체는 JMX을 통해 많은 정보를 제공합니다.

즉, 응용 프로그램의 경우 1.5GB는 그로테스크하지 않을 수 있습니다. 물론, 응용 프로그램에 따라 - 그것은 "안녕하세요"를 있다면, 당신은 공정한 몇 자바 프로파일 링 도구있다

+0

해당 주 응용 프로그램은 6 개의 applicationContext - *. xml 파일에 걸쳐 있으며 약 110 개의 콩이 합쳐져 있으며 이중 85 %는 싱글 톤입니다. 그것들은 UI를 통해 동적으로 선택되는 특별한 템플릿 모델 객체 프로토 타입이 아닙니다. Hibernate SessionFactory와 Hibernate Validators는 (프로파일 러로 이것을 확인하지 않은) 가장 큰 객체는 공간을 차지해야한다. 나머지는 상당히 얇은 객체이다. –

+0

내 주요 관심사 중 하나는 응용 프로그램이 제작을 시작하는 데 3 분이 걸리고 시스템을 유지 관리 할 때 시스템이 다운되는 순간마다 돈이 끊깁니다. Tomcat은 모든 메모리를 시작하고 할당하는 데 오랜 시간이 걸린다. 응용 프로그램이 시작할 때 하나의 큰 청크를 잡을 수있는 방법이 있습니까? –

+0

3 분의 시작 시간이 메모리 할당으로 인해 발생한다는 것을 강력하게 의심합니다. DB pool + SessionFactory (특히 맵핑이 많은 대규모 스키마) + 시작시 초기화 될 수있는 다른 리소스 및/또는 계산 집약적 인 항목으로 인해 발생할 가능성이 훨씬 큽니다. Spring과 Tomcat은 약간의 오버 헤드를 추가하지만 나머지 부분에 비해 약간 작아야합니다. 즉, 추측 대신에 이것을 프로파일 링해야합니다. 대부분의 시간/대부분의 메모리를 사용하는 것이 무엇인지 알게되면 원인을 쉽게 파악할 수 있어야합니다. – ChssPly76

1

:-) 문제를 가지고 :

당신은 단지 시작에 JVM에 프로파일 러를 연결해야합니다.

또한 람 바어 프로브를 살펴 수 있지만 모니터링을위한 더 :

Open Source Java Profilers

+0

답변 해 주셔서 대단히 감사합니다. –

관련 문제