상세정보
미리보기
자바 트러블슈팅 : scouter를 활용한 시스템 장애 진단 및 해결 노하우
- 저자
- 이상민 저
- 출판사
- 제이펍
- 출판일
- 2024-03-15
- 등록일
- 2024-07-22
- 파일포맷
- PDF
- 파일크기
- 31MB
- 공급사
- 예스이십사
- 지원기기
-
PC
PHONE
TABLET
웹뷰어
프로그램 수동설치
뷰어프로그램 설치 안내
책소개
건강한 서비스를 위한 scouter 활용법은 물론,그 밖의 시스템 장애 극복을 위한 다양한 도구 사용법을 배운다!기술이 아무리 발전하고 뛰어난 개발자가 있더라도 사람이 만든 프로그램은 언제든 장애가 발생할 수 있다. 그럼에도 상당수의 개발자나 시스템 운영자는 트러블슈팅에 대해 교육받을 기회가 많지 않다. 그래서 빠르게 장애를 파악하고 분석하여 장애 상황을 피하고 재발을 방지하는 데 작은 도움이 되고자 이 책을 준비하였다.
저자소개
삼성SDS에서 개발을 시작하여 NAVER, NHN 등의 회사에서 일했다. 『자바의 신』, 『자바 성능 튜닝 이야기』 등 다수의 IT 서적을 집필하였다. 지금은 국내 최고의 스마트 통합 주차 회사인 파킹 클라우드에서 개발 총괄 이사로 일하고 있다.
목차
PART I 자바에서 발생 가능한 문제들CHAPTER 1 자바 기반의 시스템에서 발생할 수 있는 문제들 3어떤 문제가 발생할 수 있을까? 4 시스템이 느려요 4 시스템 응답이 없어요 6 예외가 계속 발생해요 7 시스템이 죽어요 8장애 상황을 종합해서 다시 살펴보자 9 발생 가능한 병목 지점들 10정리하며 12PART II scouter 살펴보기CHAPTER 2 scouter 개요 및 설치 15APM 15 다이나트레이스(dynatrace) 16 앱다이나믹스(AppDynamics) 17 뉴 레릭(New Relic) 17 인스타나(instana) 17 와탭(whatap) 17 인터맥스(interMax) 18 핀포인트(pinpoint) 19scouter 20scouter 구성 및 방화벽 설정 21scouter 데모 프로그램 설치하기 23정리하며 27CHAPTER 3 scouter 설정하기 - 서버 및 에이전트 28scouter 다운로드하기 28scouter 서버 설정하기 29한 대의 서버에서 여러 개의 수집 서버 실행하기 33scouter 호스트 에이전트 설정하기 35scouter 자바 에이전트 설정하기 - 기초 36자바의 ClassFileTransformer 38scouter 자바 에이전트 설정하기 - 데몬 모니터링하기 39정리하며 44CHAPTER 4 scouter 클라이언트에서 제공하는 기능들 45scouter 클라이언트의 종류 45scouter 클라이언트 시작하기 46 Objects 창 살펴보기 46 수집 서버 추가/삭제하기 48 사용하지 않는 서버 제거하기 48scouter의 메뉴 49 File 49 Management 50 Collector 51 Host 52 Object 53 Window 54그래프 추가하기 55필수 그래프 목록 57 Tomcat/Java 필수 그래프 목록 58 서버 필수 그래프 목록 58그래프 확인법 59화면 전환하기 60서버 묶어서 보기 63정리하며 67CHAPTER 5 scouter XLog 68XLog 사용법 - 기초 68XLog 목록 71XLog 사용법 - 프로파일링 75메서드 프로파일링 추가하기 78XLog 사용법 - 필터링 81XLog 사용법 - 과거 데이터 불러오기 86정리하며 88CHAPTER 6 scouter 서버/에이전트 플러그인 89서버 플러그인의 종류 89 빌트인 플러그인 90 스크립팅 플러그인 91에이전트 플러그인의 종류 91 httpservice 플러그인 92 capture 플러그인 94정리하며 97CHAPTER 7 scouter 사용 시 유용한 팁 98수집 서버의 디스크 사용량 안전하게 관리하기 98알림 설정은 필수다 99샘플링도 필수다 101메서드 프로파일링도 필수다 103정리하며 104PART III 스레드 진단하기CHAPTER 8 스레드 때문에(스레드에서) 발생하는 문제들 107WAS의 적절한 스레드 개수는 몇 개일까? 107스레드에서 발생하는 문제 중 가장 대표적인 것은? 108 레이스 컨디션 109 데드록 109 스타베이션 110 라이브 록 110 다른 형태의 예측 불가능한 오류 111데드록 예제 111록 경합을 피하는 10 + 1가지 방법 113끝나지 않는 루프 116 스레드 개수 문제에 대한 권장안 116정리하며 118CHAPTER 9 스레드 단면 잘라 놓기 119스레드 단면은 언제 자를까? 119스레드 단면이 뭐길래 120스레드 단면 해부하기 125가장 간편한 Ctrl+Break와 Kill -Quit 131jstack을 사용하는 방법도 있다 134스레드 단면 파일로 남기기 135정리하며 136chapter 10 잘라 놓은 스레드 단면 분석하기 137ThreadLogic 준비하기 137ThreadLogic 사용하기 - 스레드 목록 확인 139ThreadLogic 사용하기 - 잠겨 있는 스레드 확인 142ThreadLogic 사용하기 - 무한 루프나 응답 없는 화면 확인 145scouter를 사용한다면 스레드 목록 화면을 활용하자 148scouter를 사용한다면 Stack Frequency Analyzer도 활용하자 150정리하며 153CHAPTER 11 스레드 문제 Case Study 154스레드 단면으로 어떤 문제를 확인할 수 있을까? 154시스템이 느릴 때도 스레드와 관련이 있을까? 156시스템 응답이 없을 때에는 스레드 단면이 가장 효과적이다 157예외가 지속해서 발생할 때도 스레드 단면이 도움이 될까? 159사례 하나. CPU 사용량이 갑자기 올라가서 안 내려와요 160 상황 160 접근 방법 161사례 둘. 스레드 풀의 스레드 개수가 계속 증가해요 162 상황 163 접근 방법 163사례 셋. 시스템 응답이 없어요 165 상황 165 접근 방법 165정리하며 167PART IV 메모리 진단하기CHAPTER 12 메모리 때문에 발생할 수 있는 문제들 171자바의 메모리 영역 171 pc(program counter) 레지스터 172 JVM 스택 172 힙 172 메서드 영역 172 런타임 상수 풀 173 네이티브 메서드 스택 173OutOfMemoryError는 언제 발생할까? 175OutOfMemoryError 메시지의 의미 176메모리 릭의 세 종류 178 수평적 메모리 릭 179 수직적 메모리 릭 179 대각선 형태의 메모리 릭 179OutOfMemoryError 이외의 메모리 문제는 없을까? 180정리하며 181CHAPTER 13 메모리 단면 잘라 놓기 183메모리 단면은 언제 자르나? 183jmap으로 메모리 단면 생성하기 186jmap의 -dump 옵션 사용하기 190자동으로 힙 덤프 생성시키기 193정리하며 195CHAPTER 14 잘라 놓은 메모리 단면 분석하기 196메모리 단면을 분석하는 도구들 196MAT 준비하기 197간단한 프로그램의 메모리 릭 찾기 198MAT의 또 다른 기능들 201 Details 204 Biggest Objects by Retained Size 204 Actions 204 Reports 206 Step by Step 206객체 상세 정보 메뉴 207개발 PC의 메모리가 부족할 때 힙 덤프 분석하는 방법 210scouter를 사용하여 메모리 문제 진단하기 211 GC 관련 211 힙 관련 211정리하며 212CHAPTER 15 메모리 문제 Case Study 213메모리 단면으로 어떤 문제를 확인할 수 있을까? 213 시스템이 느리다고 항상 메모리 단면을 사용하는 것은 아니다 214 애플리케이션이 응답하지 않을 때도 메모리가 원인일 수 있다 215사례 하나. 자꾸만 시스템이 OOME를 발생시켜요 216 상황 216 접근 방법 216사례 둘. 시스템 응답이 없어요 218 상황 218 접근 방법 219정리하며 221PART V 자바 분석 도구CHAPTER 16 자바 종합 분석 도구인 Arthas 225Arthas란? 225아서스 사용하기 226아서스 주요 명령어들 228 dashboard 229 thread 230 jvm 232 sc/sm 234 monitor 235 stack/trace 236 tt 237정리하며 239PART VI 리눅스 진단하기CHAPTER 17 리눅스 성능 진단 도구의 구성 243리눅스 진단 명령어를 알아야 하는 이유 243진단 도구 한눈에 살펴보기 24460,000밀리초에 리눅스 시스템 분석하기 245 uptime 246 dmesg | tail 247 vmstat 1 247 mpstat -P ALL 1 248 pidstat 1 248 iostat -xz 1 248 free -m 249 sar -n DEV 1 250 sar -n TCP,ETCP 1 250 top 251정리하며 251CHAPTER 18 CPU 모니터링하기 252시스템의 CPU 사용량을 한 줄로 모니터링하는 도구들 252추가적인 시스템 모니터링 도구 설치하기 253mpstat의 기본적인 사용 방법 255 mpstat의 옵션들 257왜 CPU를 모니터링해야 하는 걸까? 262정리하며 263CHAPTER 19 전반적인 상황 모니터링하기 - vmstat와 sar 264대부분의 유닉스와 리눅스에 설치되어 있는 vmstat 264vmstat의 기본적인 사용법 265 vmstat의 옵션들 266 vmstat 옵션에 따른 출력 예 267vmstat보다 상세한 정보를 알 수 있는 sar 273sar의 기본적인 사용 방법 275 sar 명령어 옵션들 276정리하며 278CHAPTER 20 프로세스 상황 모니터링하기 279프로세스 모니터링하기 279프로세스 사이의 관계 알아보기 280누구나 알고 있는 ps 283프로세스별로 CPU 사용량 모니터링하기 286프로세스의 메모리 상황을 확인하는 pmap 288정리하며 291CHAPTER 21 I/O 상황 모니터링하기 292I/O를 모니터링하는 도구에는 어떤 것이 있을까? 292디스크의 사용량을 알아보자 293iostat를 알아보자 298프로세스가 사용 중인 파일은 어떻게 확인할까? 302정리하며 306CHAPTER 22 네트워크 상황 모니터링하기 307네트워크 상황을 모니터링하는 도구에는 어떤 것이 있을까? 307네트워크를 사용하는 환경이 먼저 준비되어야 한다 308sar로 네트워크 사용량 확인하기 311lsof로 연결된 네트워크 정보 확인하기 317사라질 네트워크 명령어들 320정리하며 321CHAPTER 23 실시간으로 시스템 모니터링하기 322대부분의 리눅스에 설치되어 있는 top 322top의 단축키들 325top의 시작 옵션들 329보다 예쁘고 간편한 htop 331정리하며 334CHAPTER 24 scouter로 리소스 모니터링하기 335scouter 호스트 에이전트 확인 335scouter에서 제공하는 리소스 모니터링 종류 336실시간 프로세스 목록 확인하기 337소켓 정보 확인하기 338정리하며 339PART VII 장애 진단 종합CHAPTER 25 장애 진단은 이렇게 한다 343진단 요청을 받았을 때(장애가 났을 때) 가장 먼저 할 일 343본격적인 진단 시작하기 345장애 원인 제거하고 결과 정리하기 348scouter를 사용한 장애 감지와 원인 파악 353 상어 패턴 354 파도 패턴 354 ㅡ ㅡ 패턴 355 운석 낙하 패턴 356 산불 패턴 357 크리스마스트리 패턴 357정리하며 358APPENDIX 부록APPENDIX A Fatal error log 분석 361치명 에러 로그 파일 362 헤더 섹션 362 스레드 정보 섹션 367 프로세스 정보 섹션 372 시스템 정보 섹션 378치명 에러가 발생하면 뭐부터 봐야 할까? 379APPENDIX B 자바 인스트럭션 381JVM 인스트럭션은 도대체 뭘까? 381찾아보기 387