본문 바로가기
  • 오늘도 한걸음. 수고많았어요.^^
  • 조금씩 꾸준히 오래 가자.ㅎ
IT기술/JAVA

[JAVA] JVM 분석 도구, 성능 관리

by 미노드 2023. 5. 17.

java 개발을 하며 프로젝트를 하는 중 성능 이슈가 생기는 경우가 있습니다.

프로젝트의 규모와 사용되는 비중을 생각한다면 성능 때문에 문제되는 경우가 꽤 있는 것 같습니다.
성능이 개선되려면 어떻게 애햐하는지 정말 모호하고 애매합니다.

- 성능이 어떻게 문제가 되는지 확인할 수 있어야 되며
- 성능을 개선하는데 어떤 작업이 필요한지 알아야합니다.

이는 일반적인 개발지식과 별개로 추가적인 성능 대응 기술이 필요한 것 같습니다.
이에 도움이 되는 도구들이 있는데, 도구들에 대해 정리해볼까 합니다.

jvmtop
jvm-tools
jstack
jcmd
jhsdb
OpenJDK tools
Conclusion

도구의 구분은
* JVM 진단 도구
 - 실시간 진단 도구 (jvm-tools, jcmd, jhsdb)
 - 사후 진단 도구(덤프를 떠서 분석,
                        스레드 덤프 : TDA, Thread Logic
                        힙 덤프 : Heap Analyzer, MAT

* 성능 진단 도구
 - 운영도구 (scouter, pinpoint)
 - 측정도구 (객체 레이아웃 jol, cpu 진단 jvmtop)

* 부하 도구
 - 벤치마크 도구(성능 비교, jmh)
 - 부하 테스트 도구(성능 측정위한 도구)
                        jmeter, gatling
 - concurrent 부하 점검 : jcstress

참고 : https://www.slideshare.net/NHNFORWARD/2018-java-java