JVM Performance Optimizing 및 성능분석 사례

Java Virtual Machine

류길현, 오명훈, 한승민 | 엑셈 | 2023년 11월 06일 | PDF

이용가능환경 : Windows/Android/iOS 구매 후, PC, 스마트폰, 태블릿PC에서 파일 용량 제한없이 다운로드 및 열람이 가능합니다.

구매

종이책 정가 28,000원

전자책 정가 19,600원

판매가 19,600원

도서소개

웹 어플리케이션 개발자나 WAS Middleware 성능 튜닝 엔지니어, APM 솔루션을 통한 성능 진단 컨설턴트들을 위한 필독서

“웹(JAVA) 개발자가 JVM의 내부 구조에 대해 좀 더 쉽게 이해하고 관련 옵션들을 최적화하여사용할 수 있는 방법은 없을까”? “WAS 기반의 Middleware를 운영하면서 OutOfMemory나 Thread Dump 등이 발생했을 때 분석하는 방법이나 가이드, 또한 용이한 분석 툴은 뭐가 있을까”? “JAVA 애플리케이션 시스템을 운영하는 운영자나 성능 진단하는 엔지니어, 컨설턴트가 접할 수 있는 흔한 장애 유형이나 분석 방법은 무엇이 있을까”? 하는 물음에 이 책이 해답을 줄 것이다. 벤더별 JVM 내부의 구조를 파악하고 웹 애플리케이션 개발시 최대의 Performace를 위해 고려해 할 주의점이나 최적화 방안 등을 위해 다양한 분석 툴을 소개하고, 실제 고객사에서 발생된 성능 지연 사례나 장애 유형 등의 분석 사례를 통하여 성능 튜닝을 하는 방법에 대해 다양한 관점에서 알아 볼 수 있다!

저자소개

저 : 류길현
現 엑셈 APM사업본부 총괄 책임을 맡고 있으며, WAS를 비롯한 다양한 Middleware에 대한 구축 경험과 노하우를 바탕으로 APM 제품에 대한 핵심 엔진 설계와 제품 개발에 기여하였으며, InterMax와 같은 APM 솔루션을 통한 다양한 고객사 성능 분석 및 진단 컬설팅을 수행하고 있습니다.

저 : 오명훈
한국 HP에서 다수의 고객사에 IT컨설팅 및 SI 업무를 수행하였으며, 현재는 엑셈 APM본부에서 Java 성능관리 솔루션인 InterMax의 기술지원을 담당하고 있다. 또한 대학생을 대상으로 Java 세미나를 진행하였으며, 네이버에 Java 온라인 강의 포스팅 및 “Java를 잡아버려”를 저술하였습니다.

저 : 한승민
現 엑셈 APM사업본부에서 InterMax 솔루션 기술지원 팀장을 맡고 있으며, 금융권-차세대 프로젝트 등 대규모 APM 성능 관리 솔루션에 대한 구축/커스터마이징 등에 대한 실무 경험과 InterMax를 통한 고객사 성능 분석 및 진단 컨설팅 업무를 수행하고 있습니다.

목차소개

도서 목차
“JVM Internal 파헤치기”


1. JVM 메모리 구조
1.1 JVM이란? ㆍㆍㆍㆍㆍㆍㆍ 16
1.2 Java Heap ㆍㆍㆍㆍㆍㆍㆍ 19
1) Hotspot JVM의 Heap 구조
2) IBM JVM의 Heap 구조


2. Garbage Collection
2.1 GC 소개 ㆍㆍㆍㆍㆍㆍㆍ 25
1) GC 개요
2) GC로 인한 문제점
3) Root Set과 Garbage
4) Garbage Collection 목적
2.2 Hotspot JVM의 Garbage Collection ㆍㆍㆍㆍㆍㆍㆍ 29
1) 개요
2) GC 대상 및 범위
3) GC 관련 옵션들
4) Garbage Collector 종류
2.3 IBM JVM의 Garbage Collection ㆍㆍㆍㆍㆍㆍㆍ 53
1) Garbage Collection 단계
2) Garbage Collector 종류
3) IBM JVM 환경의 Memory Leak 유형
4) 결론
2.4 GC 튜닝 ㆍㆍㆍㆍㆍㆍㆍ 69
1) GC 튜닝 필요성
2) GC 튜닝 목적
3) Object 수 최소화의 중요성(Between Eden and Old Area)
4) Full GC Time 줄이기
5) GC의 성능을 결정하는 옵션
6) GC 튜닝 과정
7) 일반적으로 GC 튜닝이 불필요 한 상황
8) GC 방식 선택
9) Memory 크기와 GC 상관 관계
2.5 GC 성능 테스트 ㆍㆍㆍㆍㆍㆍㆍ 74
1) 개요
2) Case 1
3) Case 2 / Case 2-1
4) Case 3
5) Case 4
6) 결론
2.6 GC 관련 장애 발생 유형(OOME) 및 분석 방법 ㆍㆍㆍㆍㆍㆍㆍ 91
1) OOME의 종류
2) OOME 발생 원인 및 해결 방법
3) OOME 분석 툴


3. JVM Sychronization이란?
3.1 개요 ㆍㆍㆍㆍㆍㆍㆍ 94
1) Java 그리고 Thread
2) Thread 동기화
3) Mutual Exclusion과 Critical Section
4) Monitor
3.2 Java의 동기화(Synchronization) 방법 ㆍㆍㆍㆍㆍㆍㆍ 96
1) Synchronized Statement
2) synchronized Method
3) Wait And Notify
4) synchronized Statement와 synchronized Method 사용
3.3 Thread 상태 ㆍㆍㆍㆍㆍㆍㆍ 101
3.4 Thread의 종류 ㆍㆍㆍㆍㆍㆍㆍ 102
3.5 JVM에서의 대기 현상 분석 ㆍㆍㆍㆍㆍㆍㆍ 102
3.6 Thread Dump 104
3.7 Case별 synchronized에 대한 Thread Dump 분석 ㆍㆍㆍㆍㆍㆍㆍ 105
1) 동기화 방식별 소스 코드
2) Hot Spot JVM 실행 분석
3) IBM JVM 실행 분석
3.8 Thread Dump를 통한 Thread 동기화 문제 해결의 실 사례 ㆍㆍㆍㆍㆍㆍㆍ 113




“도구(Tool)를 이용한 성능분석”


1. Java 성능분석 도구 개요
1.1 JDK 내장 성능분석 도구 ㆍㆍㆍㆍㆍㆍㆍ 118
1.2 3rd Party 성능분석 도구 ㆍㆍㆍㆍㆍㆍㆍ 120


2. JVM Thread, 메모리 정보
2.1 Thread Dump와 Stack Trace 정보 ㆍㆍㆍㆍㆍㆍㆍ 123
2.2 Heap 메모리 구조 ㆍㆍㆍㆍㆍㆍㆍ 124
2.3 Heap Dump 정보 ㆍㆍㆍㆍㆍㆍㆍ 126
2.4 객체 참조, GC와 메모리 누수 ㆍㆍㆍㆍㆍㆍㆍ 128


3. jcmd
3.1 jcmd를 이용하여 Java 프로세스 정보 확인하기 ㆍㆍㆍㆍㆍㆍㆍ 129
3.2 Java Flight Recording 기능 사용하기 ㆍㆍㆍㆍㆍㆍㆍ 134
3.3 GC 메모리 분석 기능 사용하기 ㆍㆍㆍㆍㆍㆍㆍ 146
3.4 Management Agent(JMX) 기능 사용하기 ㆍㆍㆍㆍㆍㆍㆍ 149
3.5 jcmd 도구 vs 다른 도구 비교 ㆍㆍㆍㆍㆍㆍㆍ 152


4. Java Mission Control 도구의 활용
4.1 실시간 모니터링 ㆍㆍㆍㆍㆍㆍㆍ 154
4.2 Java Flight Recorder 레코딩하기 ㆍㆍㆍㆍㆍㆍㆍ 161
4.3 General 정보 ㆍㆍㆍㆍㆍㆍㆍ 164
4.4 Memory 정보 ㆍㆍㆍㆍㆍㆍㆍ 168
4.5 Code 정보 ㆍㆍㆍㆍㆍㆍㆍ 176
4.6 Threads 정보 보기 ㆍㆍㆍㆍㆍㆍㆍ 177
4.7 IO 정보 보기 ㆍㆍㆍㆍㆍㆍㆍ 181
4.8 System 정보 보기 ㆍㆍㆍㆍㆍㆍㆍ 182
4.9 Events 정보 보기 ㆍㆍㆍㆍㆍㆍㆍ 184


5. JConsole ㆍㆍㆍㆍㆍㆍㆍ 188


6. VisualVM
6.1 Monitor 탭 ㆍㆍㆍㆍㆍㆍㆍ 195
6.2 Heap Dump 내용 보기 ㆍㆍㆍㆍㆍㆍㆍ 195
6.3 Threads 탭 ㆍㆍㆍㆍㆍㆍㆍ 197
6.4 Profiler 수행하기 ㆍㆍㆍㆍㆍㆍㆍ 200
6.5 Sampler 수행하기 ㆍㆍㆍㆍㆍㆍㆍ 201
6.6 MBeans Plugin으로 JMX 모니터링하기 ㆍㆍㆍㆍㆍㆍㆍ 202
6.7 Visual GC Plugin 기능 덧입기 ㆍㆍㆍㆍㆍㆍㆍ 205
6.8 JConsole Plugin기능을 VisualVM에서 사용하기 ㆍㆍㆍㆍㆍㆍㆍ 206


7. Eclipse Memory Analyzer (MAT)
7.1 MAT 설치하기 ㆍㆍㆍㆍㆍㆍㆍ 209
7.2 HeapDump 분석 방법 ㆍㆍㆍㆍㆍㆍㆍ 212
7.3 HeapDump 파일 열기 ㆍㆍㆍㆍㆍㆍㆍ 214
7.4 객체 참조관계 분석 ㆍㆍㆍㆍㆍㆍㆍ 215
7.5 ClassLoader 누수 분석 (PermGen이슈) ㆍㆍㆍㆍㆍㆍㆍ 224
7.6 객체를 사용하는 Thread 분석 ㆍㆍㆍㆍㆍㆍㆍ 224
7.7 Collection 분석 ㆍㆍㆍㆍㆍㆍㆍ 225
7.8 Dominator Tree 분석 ㆍㆍㆍㆍㆍㆍㆍ 227
7.9 Leak Suspects 분석 ㆍㆍㆍㆍㆍㆍㆍ 229
7.10 Heap Dump 파일 비교 분석 ㆍㆍㆍㆍㆍㆍㆍ 237


8. IBM HeapAnalyzer
8.1 IBM HeapAnalyzer 사용되는 용어 정의 ㆍㆍㆍㆍㆍㆍㆍ 241
8.2 Summary ㆍㆍㆍㆍㆍㆍㆍ 242
8.3 Leak Suspect ㆍㆍㆍㆍㆍㆍㆍ 243
8.4 Object List ㆍㆍㆍㆍㆍㆍㆍ 247
8.5 Type List ㆍㆍㆍㆍㆍㆍㆍ 248
8.6 Root List / Root Type List ㆍㆍㆍㆍㆍㆍㆍ 249
8.7 Gaps by Size/ Gap Statistics ㆍㆍㆍㆍㆍㆍㆍ 250


9. Java Thread Dump Analyzer(TDA)
9.1 TDA 사용하기 ㆍㆍㆍㆍㆍㆍㆍ 253
9.2 TDA를 이용한 분석 ㆍㆍㆍㆍㆍㆍㆍ 256


10. 성능분석 도구들 비교 ㆍㆍㆍㆍㆍㆍㆍ 261




“APM(InterMax) 활용 성능 분석 사례”


1. InterMax란 무엇인가?
1.1 실시간 모니터링 ㆍㆍㆍㆍㆍㆍㆍ 264
1.2 사후 분석 ㆍㆍㆍㆍㆍㆍㆍ 272
1.3 트랜잭션 조회 ㆍㆍㆍㆍㆍㆍㆍ 278


2. 성능 분석 사례
2.1 과도한 SQL Fetch에 의한 OOME 발생 사례 ㆍㆍㆍㆍㆍㆍㆍ 283
2.2 Full GC 수행에 따른 애플리케이션 수행 지연 발생 사례 ㆍㆍㆍㆍㆍㆍㆍ 287
2.3 특정 오브젝트의 메모리 과다 사용으로 인한 OOME 발생 사례 ㆍㆍㆍㆍㆍㆍㆍ 291
2.4 소켓 타임아웃에 의한 서비스 지연 발생 사례 ㆍㆍㆍㆍㆍㆍㆍ 294
2.5 Exception이 발생하며 서비스 수행에 실패하는 사례 ㆍㆍㆍㆍㆍㆍㆍ 298
2.6 SQL 수행 지연에 따른 애플리케이션 지연 현상 분석 사례 ㆍㆍㆍㆍㆍㆍㆍ 300
2.7 DB Lock에 의한 애플리케이션 지연 현상 분석 사례 ㆍㆍㆍㆍㆍㆍㆍ 304

회원리뷰 (0)

현재 회원리뷰가 없습니다.

첫 번째 리뷰를 남겨주세요!