
우리 서버 중 하나에 배포한 Java 기반 웹앱이 있습니다. 메모리 부족 오류로 인해 JVM이 종료되는 경우도 있습니다. 응용 프로그램은 Cometd(푸시 메커니즘)를 많이 사용하고 일부 열이 암호화되어 있기 때문에 다소 무겁습니다. 이를 위해 애플리케이션을 모니터링하기로 결정했지만 어떤 이유로 VisualVM에 샘플링 및 CPU 사용량이 표시되지 않습니다. JVM이 지원되지 않는다고 나옵니다.
내가 겪고 있는 두 번째 문제는 VisualVM의 업데이트 시간이 너무 느리다는 것입니다. 모니터링 간격을 줄이고 싶지만 해당 옵션도 찾을 수 없습니다.
저는 Debian Wheezy, 64비트 및 Java8-64비트를 실행하고 있습니다. 애플리케이션 컨테이너는 Apache Tomcat이고 DB는 Postgres입니다. Jstatd가 이미 시작되었습니다. 저는 프로파일링과 모니터링을 처음 접했습니다. 도움이 되었으면 좋겠습니다.
스크린샷은 다음과 같습니다. 꼭 한번 봐주세요.
감사합니다.
업데이트
아래에 언급된 구성 없이 표시되는 업데이트된 스크린샷은 다음과 같습니다.
내 catalina.sh에는 다음과 같은 서버 구성이 있습니다.
CATALINA_OPTS="$CATALINA_OPTS -server -XX:+UseParallelGC -XX:+UseParallelOldGC -XX:+UseAdaptiveSizePolicy -Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=portnumer -Dcom.sun.management.jmxremote.authenticate=true
-Dcom.sun.management.jmxremote.ssl=false"
다음은 새 GC를 사용한 위의 구성 이후입니다.
답변1
이것을 대상 JVM 애플리케이션에 추가하면 나에게 효과적입니다.
-Djava.rmi.server.hostname=localhost