서브메뉴

본문

자바 개발자와 시스템 운영자를 위한 트러블 슈팅 이야기
자바 개발자와 시스템 운영자를 위한 트러블 슈팅 이야기
저자 : 이상민
출판사 : 한빛미디어
출판년 : 2011
ISBN : 9788979148305

책소개

시스템에서 발생하는 문제의 원인을 진단하는 자바 트러블 슈팅 가이드. 자바 시스템에서 문제가 발생했을 때 어떻게 원인을 찾는지 진단하는 방법을 알려준다. 자바 시스템에서의 성능 관리보다는 문제를 진단하는데 초점을 맞추었다. 문제 진단에 사용하는 무료 툴과 사용법을 소개하고, 시스템 장애가 일어났을 때 문제 상황과 원인을 진단할 수 있는 리눅스 명령어를 다루었다.
[교보문고에서 제공한 정보입니다.]

출판사 서평

자바 시스템에서 문제가 발생했을 때 어떻게 원인을 찾는지, 진단하는 방법을 알려준다.

-. 자바 시스템에서의 성능 관리보다는 문제를 진단하는데 초점을 맞추었다.
-. 문제 진단에 사용하는 무료 툴과 사용법을 소개한다.
-. 시스템 장애가 일어났을 때 문제 상황과 원인을 진단할 수 있는 리눅스 명령어를 다룬다.

어떤 독자를 위한 책인가?
-. 자바 개발자. 자바 개발만 했고, 실제 시스템에서 문제가 발생했을 때 해결방법을 모르는 개발자
-. 자바 기반 시스템 운영자. 리눅스, 유닉스 계열의 서버는 잘 다루지만 자바를 잘 모르는 운영자
-. 자바 입문 학생. 자바의 더 깊숙한 부분을 알고 싶어하는 학생

시스템에서 발생하는 문제의 원인을 진단하는
자바 트러블 슈팅 가이드


IT서비스가 기획되고 개발 및 운영으로 이어지기까지 여러 사람의 손을 거친다. 그러나 이렇게 많은 이들의 공이 들어간 IT서비스도 사소한 장애 하나 때문에 먹통이 되는 일이 빈번하게 일어난다. 서버도 애플리케이션도 모두 불완전한 사람의 손을 거쳐 만들어진다. 그런 만큼 그 어떤 시스템도 완벽하지 않다. 물론 사전 성능 테스트와 꾸준한 모니터링으로 중무장한다면 많은 이들이 흘린 땀의 흔적이 장애 때문에 허무하게 사라지지는 않을 것이다. 그러나 철저한 준비는 장애를 막기 위한 필요 조건일 뿐이다. 실제로 나름 준비 태세를 갖추고 시스템을 오픈했음에도 예상치 못한 장애로 인해 IT담당자들이 발을 동동 구르는 안타까운 장면이 심심치 않게 연출된다. 장애를 다루는 일을 성능 테스트나 튜닝의 양념 정도로 생각해서는 안 되는 이유다. 그렇다고 너무 낙심할 필요는 없다. 장애를 진단하는 방법만 알면 장애가 나는 것은 어쩔 수 없더라도 파장과 재발 가능성은 크게 줄일 수 있기 때문이다.

이제 시스템 장애가 발생했을 때 겁먹지 말자.
문제의 원인을 진단하는 방법이 이 책에 있다.


이 책과 함께 보면 도움이 되는 책(이상민 저자의 자바 관련 3종 세트)
Blog2Book 자바 성능을 결정짓는 코딩 습관과 튜닝 이야기(2008, 이상민 지음)
Blog2Book 자바 개발자도 쉽고 즐겁게 배우는 테스팅 이야기(2009, 이상민 지음)

한빛미디어 Blog2Book 시리즈
01_Blog2Book 패턴 그리고 객체지향적 코딩의 법칙(2007)
02_Blog2Book 열씨미와 게을러의 리눅스 개발 노하우 탐험기(2008)
03_Blog2Book 자바 성능을 결정짓는 코딩 습관과 튜닝 이야기(2008)
04_Blog2Book 임베디드 프로그래밍 C 코드 최적화(2008)
05_Blog2Book 아는 만큼 보이는 데이터베이스 설계와 구축(2008)
06_Blog2Book 웹 기획, 사용자를 배려하는 합리적인 생각(2008)
07_Blog2Book 고객을 사로잡는 매력적인 제안서와 창의적인 제안팀 이야기(2009)
08_Blog2Book 자바 개발자도 쉽고 즐겁게 배우는 테스팅 이야기(2009)
09_Blog2Book 프로그래머가 몰랐던 멀티코어 CPU 이야기(2010)
10_Blog2Book 자바 개발자와 시스템 운영자를 위한 트러블 슈팅 이야기(2011)
[교보문고에서 제공한 정보입니다.]

목차정보

Story 01 자바 기반 시스템에서 발생할 수 있는 문제점들
나불안씨 소개
어떤 문제들이 발생하나
장애 상황을 종합해서 다시 보자
발생 가능한 병목 지점들
정리하며

Story 02 쓰레드에서 발생하는 문제점들에는…
WAS에서 적절한 쓰레드 개수는?
쓰레드로 인한 대표적인 문제들
락을 피할 수 있는 10가지 방법
끝나지 않는 루프
쓰레드 개수에 대한 권장안
정리하며

Story 03 쓰레드 단면 잘라 놓기

쓰레드 단면은 왜 만들까?
쓰레드 단면 해부하기
효과적인 쓰레드 단면 생성 방법
쓰레드 단면 파일로 남기기
정리하며

Story 04 잘라 놓은 쓰레드 단면 분석하기
TDA를 아시나요?
TDA 사용하기-쓰레드 목록 확인
TDA 사용하기-잠겨있는 쓰레드 확인
TDA 사용하기-무한 루프나 응답 없는 화면 확인
실시간 쓰레드 분석을 위한 ThreadChecker
정리하며

Story 05 쓰레드 문제 Case study
쓰레드 단면으로 확인할 수 있는 문제들
쓰레드 때문에 시스템이 느려질까?
응답이 없으면 쓰레드 단면부터 봐야
예외가 계속 생겨도 쓰레드 분석이 해결책?
사례 하나-CPU 사용량이 갑자기 올라갔어요
사례 둘-쓰레드 풀이 계속 늘어나고 있어요
사례 셋-시스템에 응답이 없어요
정리하며

Story 06 메모리 때문에 이런 문제들이 발생할 수 있다
자바 애플리케이션과 메모리 영역
OutofMemoryError는 언제 일어날까?
OutofMemoryError에 담긴 장애의 의미
메모리 릭의 3가지 유형
OutofMemoryError가 오류의 전부인가?
정리하며

Story 07 메모리 단면 잘라 놓기
메모리 단면은 언제 자르나?
hprof로 메모리 단면 생성하기
jmap으로 메모리 단면 생성하기
jmap의 dump 옵션 사용하기
힙 덤프를 자동으로 만들어보자
정리하며

Story 08 잘라 놓은 메모리 단면 분석하기
유용한 메모리 단면 분석 툴
MAT를 직접 사용해보자
정리하며

Story 09 메모리 문제 Case study
메모리 단면으로 확인할 수 있는 문제들
사례 하나-성능 테스트 중 시스템이 이상해졌어요
사례 둘-시스템에 응답이 없어요
정리하며

Story 10 모니터링 툴의 사용-Java VisualVM
Java VisualVM을 아시나요?
Java VisualVM을 해부해보자
JMX로 Java VisualVM 연결하기
Java VisualVM, 어떻게 활용하나?
정리하며

Story 11 실시간 JVM 모니터링이 가능한 BTrace
BTrace란?
BTrace 설치하기
BTrace API
클래스 어노테이션은 필수
유용한 메소드 어노테이션들
BTrace 활용, 주요 클래스부터 챙기자
BTrace를 바로 실행하고 싶다면?
예외가 계속 일어나는 원인을 추적해보자
정리하며

Story 12 CPU 모니터링하기
CPU 사용량을 모니터링하는 툴들
보다 정교한 모니터링이 필요하다면
기본적인 mpstat 사용법
mpstat가 제공하는 옵션들
CPU 모니터링의 정석
정리하며

Story 13 전반적인 상황 모니터링하기-vmstat와 sar
팔방미인 모니터링 툴 vmstat
기본적인 vmstat 사용법
vmstat가 제공하는 옵션들
vmstat 옵션 활용 사례
상세한 정보를 보여주는 sar
기본적인 sar 사용법
sar가 제공하는 옵션들
정리하며

Story 14 프로세스 상황 모니터링하기
프로세스 모니터링 툴 소개
프로세스간 관계 알아보기
누구나 알고 있는 ps 명령어
프로세스별 CPU 사용량 모니터링하기
프로세스 메모리 구성을 확인하는 pmap
정리하며

Story 15 I/O 상황 모니터링하기
I/O 모니터링 툴 소개
디스크 사용량을 알아보자
iostat 사용하기
프로세스가 어떤 파일을 쓰는지 확인하려면
정리하며

Story 16 네트워크 상황 모니터링하기
네트워크 모니터링 툴 소개
네트워크 사용 환경 만들기
sar로 네트워크 사용량 확인하기
lsof로 연결된 네트워크 정보 확인하기
netstat으로 네트워크 살펴보기
정리하며

Story 17 실시간으로 시스템 모니터링하기
쉽고 강력한 top 명령어
top를 위한 단축 키들
top이 제공하는 시작 옵션들
top보다 간편한 htop
정리하며

Story 18 리소스 모니터링은 이거 하나면 된다
통합 모니터링 툴 소개
collectl 설치하기
collectl 사용하기
collectl로 수집한 데이터 전송 방법
collectd 설치하기
collectd에 적응하기
collectd로 여러 서버 정보 취합하기
정리하며

Story 19 장애 진단은 이렇게 한다
장애가 나면 이것부터 챙기자
본격적인 진단 시작하기
장애 원인 제거하고 결과 정리하기
정리하며

Story 20 문제점에 따른 진단은 이렇게 한다
시스템이 느리면 이렇게
응답이 없을 때는 이렇게
정리하며

부록 A 그 외에 유용한 명령어들
부록 B 쓰레드 단면 추가 옵션 출력 결과 예
부록 C 자바 인스트럭션(instruction)
부록 D Fatal Error Log 분석
부록 E sar 옵션별 결과 예
부록 F VirtualBox에 우분투(Ubuntu) 설치하기
부록 G lsof 용어 설명
부록 H top 단축 키
[교보문고에서 제공한 정보입니다.]