로드가 많은 웹 애플리케이션이 있습니다. 코드의 특성에 대해서는 다루지 않을 것입니다. 왜냐하면 나는 단지 몇 가지 문제 해결 조언과 도구 추천을 원하기 때문입니다.매달려있는 Java 웹 앱 문제 해결
웹 앱이므로 각 요청에 스레드가 있습니다. 높은 부하 테스트에서 앱이 응답하지 않는 동안 모든 CPU를 소비하기 시작합니다. 요청 스레드가 테스트중인 새 코드에 매달려 있다고 의심됩니다. CPU 소비의 사실로 인해, 나는 이것이 내 애플 리케이션 측면에 있어야한다고 가정합니다. 내가 이해할 수있는 것은 전체 CPU 소비가 내 첫 번째 문제 해결 노력이 해당주기를 소비하는 코드를 조사해야한다는 것입니다.
매달려있는 스레드와 코드 줄을 검사하기위한 도구 및/또는 방법은 무엇입니까? 다시 말하지만, 나는 앱을 문제가있는 행동으로 쉽게 만들 수있다.
나는 visualvm을 찾아서 사용해 왔습니다. 완벽한 도구처럼 보입니다. 제안을 위해 아직 열리지 만. 나는 일식 TPTP를 보았고 수명이 다할뿐만 아니라 무게가 가벼워 질 것으로 보인다.
로 볼 수 그냥 매달린 채 일시 중지하십시오. 각 스레드를보십시오. 왜 매달아 졌는지 알 수 있습니다. 또한'jstack'도 같은 정보를 제공해야합니다. 큰 도구가 필요하지 않습니다. –
@Mike Dunlavey 감사합니다. 좋은 충고입니다. 초기에, 나는 가장 가벼운 무게 도구를 사용하고 싶다고 생각했다.'jstack'은 확실히 자격이있다. 'TPTP '에 익숙해 지려고 노력하면서, 나는 더 가벼운 도구를 추구하기 위해 그 노력을 포기했다. 그러나 'visualvm'은 전동 공구의 경량 성이 매우 중요합니다. 설치하고 켜기 만하면됩니다. 모든 Java 1.6 (업데이트 7) 이상의 응용 프로그램은이 도구에 표시됩니다. – chad
'visualvm'이 품질 앱인 것처럼 들립니다. 불행히도, 문서에서 그것은 [공통적 인 문제로 고통 받고 있습니다] (http://stackoverflow.com/questions/1777556/alternatives-to-gprof/1779343#1779343). 'jstack'은 근본적인 도구이지만, 문제를 바로 잡을 것입니다. 라인별로 백분율을보고하는 다른 벽시계 스택 샘플러는 확대/축소, 가능하면 상어, 아마도 oprofile입니다. –