2011-12-12 4 views
0

문제점이 있으며 잘못되었을 수도있는 것에 대한 단서를 얻는 방법을 모른다. 내 웹 응용 프로그램 (spring - hibernate - MySQL)을 배포하고 시작한 후 몇 초 동안 제대로 작동합니다. 페이지를 탐색 할 수 있습니다. 모든 요청이 스택에 저장되고 아무것도로드되지 않습니다. 모든 페이지가 걸려 있습니다. 잘못된 페이지를 넣으면 PageNotFound 404 오류가 발생합니다.런타임에 Tomcat 7 문제 해결

질문은 시간이 지남에 따라 약간 증가하는 메모리가있는 활성 프로세스에 tomcat7.exe가있는 것입니다. 그래서 메모리 누출이 의심됩니다. 바람둥이에서 메모리 힙을 얻으려면 어떻게해야합니까? 그리고 힙 분석기가 누설을 발견하는 데 가장 좋을까요?

추 신 : MaxPoolSize 인 것으로 판명 된 것은 ComboPooledDataSource에서만 15 개였습니다. 200으로 증가 시키면 모든 것이 잘 작동합니다.

답변

1

스레드 덤프 여기에 필요한 것입니다. Tomcat 프로세서 (TP) 스레드가 수행하는 작업과 힙 통계 (최신 Sun JVM을 가정)에 필요한 통찰력을 제공합니다. 최대 CPU 사용률이 구성된 최대 힙 크기까지 메모리가 증가하는 것을 보지 않는 한 메모리 누수가 문제가되지 않을 가능성이 큽니다.

스레드를 차단하고 요청이 완료되지 못하게하는 조건, 연결 풀과 같은 공통 리소스 일 가능성이 큽니다. 스레드 덤프 분석 응용 프로그램을 사용하면 스레드 덤프 출력을 읽는 데 익숙하지 않은 경우 도움이됩니다. 또한 Tomcat 관리자 응용 프로그램을 사용하도록 설정하거나, 유용한 상태 정보 (Apache 서버 상태와 비슷 함)를 제공하고 jconsole을 사용하여 JMX를 통해 JVM을 모니터링 할 수도 있습니다.