간편결제, 신용카드 청구할인
카카오페이 3,000원
(카카오페이 결제시 최대할인 3천원 / 5만원 이상 결제, 기간 중 1회)
삼성카드 6% (23,690원)
(삼성카드 6% 청구할인)
인터파크 롯데카드 5% (23,940원)
(최대할인 10만원 / 전월실적 40만원)
북피니언 롯데카드 30% (17,640원)
(최대할인 3만원 / 3만원 이상 결제)
NH쇼핑&인터파크카드 20% (20,160원)
(최대할인 4만원 / 2만원 이상 결제)
Close

자바 트러블슈팅 : scouter를 활용한 시스템 장애 진단 및 해결 노하우[개정판]

소득공제

2013년 9월 9일 이후 누적수치입니다.

판매지수 1,084
?
판매지수란?
사이트의 판매량에 기반하여 판매량 추이를 반영한 인터파크 도서에서의 독립적인 판매 지수입니다. 현재 가장 잘 팔리는 상품에 가중치를 두었기 때문에 실제 누적 판매량과는 다소 차이가 있을 수 있습니다. 판매량 외에도 다양한 가중치로 구성되어 최근의 이슈도서 확인시 유용할 수 있습니다. 해당 지수는 매일 갱신됩니다.
Close
공유하기
  • 저 : 이상민
  • 출판사 : 제이펍
  • 발행 : 2019년 12월 27일
  • 쪽수 : 416
  • 제품구성 : 전1권
  • ISBN : 9791188621828
정가

28,000원

  • 25,200 (10%할인)

    1,400P (5%적립)

할인혜택
적립혜택
  • I-Point 적립은 출고완료 후 14일 이내 마이페이지에서 적립받기한 경우만 적립됩니다.
  • 추가혜택
    배송정보
    주문수량
    감소 증가
    • 이벤트/기획전

    • 연관도서(3)

    • 사은품(10)

    출판사 서평

    건강한 서비스를 위한 scouter 활용법은 물론,
    그 밖의 시스템 장애 극복을 위한 다양한 도구 사용법을 배운다!


    기술이 아무리 발전하고 뛰어난 개발자가 있더라도 사람이 만든 프로그램은 언제든 장애가 발생할 수 있습니다. 그럼에도 상당수의 개발자나 시스템 운영자는 트러블슈팅에 대해 교육받을 기회가 많지 않습니다. 그래서 빠르게 장애를 파악하고 분석하여 장애 상황을 피하고 재발을 방지하는 데 작은 도움이 되고자 이 책을 준비하였습니다.

    이 책은 [자바 개발자와 시스템 운영자를 위한 트러블 슈팅 이야기]의 개정판입니다. 전판에서 다룬 것처럼 자바 기반의 시스템에 문제가 발생했을 때 문제의 원인을 빠르게 찾고 해결하는 데 집중하는 한편, 국내에서 개발된 scouter라는 오픈소스 APM을 활용해 장애를 진단하는 방법을 자세히 다룹니다. 특히, 다양한 사례 연구와 그 밖의 다양한 도구의 사용법을 20년 경력에서 얻은 저자만의 노하우를 담아 설명합니다.

    이 책의 주요 내용
    ● 자바 기반 시스템에서 어떤 문제가 발생할 수 있는지 살펴본다.
    ● 장애 진단 요청에는 어떻게 대처하는지 알아본다.
    ● 각종 애플리케이션 성능 모니터링(APM) 도구를 소개한다.
    ● JVM 기반의 APM으로 유명한 scouter의 설치, 설정, 사용법을 자세히 설명한다.
    ● JVM 애플리케이션의 주요 장애 원인인 스레드와 메모리 정보로 장애를 분석한다.
    ● 리눅스, CPU, 프로세스, I/O, 네트워크 모니터링으로 장애를 분석한다.
    ● 이외에도 Arthas, 치명 에러 로그 분석, 자바 인스트럭션까지 살펴본다.

    목차

    PART I 자바에서 발생 가능한 문제들
    CHAPTER 1 자바 기반의 시스템에서 발생할 수 있는 문제들

    어떤 문제가 발생할 수 있을까?
    시스템이 느려요
    시스템 응답이 없어요
    예외가 계속 발생해요
    시스템이 죽어요
    장애 상황을 종합해서 다시 살펴보자
    발생 가능한 병목 지점들
    정리하며

    PART II scouter 살펴보기
    CHAPTER 2 scouter 개요 및 설치

    APM
    다이나트레이스(dynatrace)
    앱다이나믹스(AppDynamics)
    뉴 레릭(New Relic)
    인스타나(instana)
    와탭(whatap)
    인터맥스(interMax)
    핀포인트(pinpoint)
    scouter
    scouter 구성 및 방화벽 설정
    scouter 데모 프로그램 설치하기
    정리하며

    CHAPTER 3 scouter 설정하기 - 서버 및 에이전트
    scouter 다운로드하기
    scouter 서버 설정하기
    한 대의 서버에서 여러 개의 수집 서버 실행하기
    scouter 호스트 에이전트 설정하기
    scouter 자바 에이전트 설정하기 - 기초
    자바의 ClassFileTransformer
    scouter 자바 에이전트 설정하기 - 데몬 모니터링하기
    정리하며

    CHAPTER 4 scouter 클라이언트에서 제공하는 기능들
    scouter 클라이언트의 종류
    scouter 클라이언트 시작하기
    Objects 창 살펴보기
    수집 서버 추가/삭제하기
    사용하지 않는 서버 제거하기
    scouter의 메뉴
    File
    Management
    Collector
    Host
    Object
    Window
    그래프 추가하기
    필수 그래프 목록
    Tomcat/Java 필수 그래프 목록
    서버 필수 그래프 목록
    그래프 확인법
    화면 전환하기
    서버 묶어서 보기
    정리하며

    CHAPTER 5 scouter XLog
    XLog 사용법 - 기초
    XLog 목록
    XLog 사용법 - 프로파일링
    메서드 프로파일링 추가하기
    XLog 사용법 - 필터링
    XLog 사용법 - 과거 데이터 불러오기
    정리하며

    CHAPTER 6 scouter 서버/에이전트 플러그인
    서버 플러그인의 종류
    빌트인 플러그인
    스크립팅 플러그인
    에이전트 플러그인의 종류
    httpservice 플러그인
    capture 플러그인
    정리하며

    CHAPTER 7 scouter 사용 시 유용한 팁
    수집 서버의 디스크 사용량 안전하게 관리하기
    알림 설정은 필수다
    샘플링도 필수다
    메서드 프로파일링도 필수다
    정리하며

    PART III 스레드 진단하기
    CHAPTER 8 스레드 때문에(스레드에서) 발생하는 문제들

    WAS의 적절한 스레드 개수는 몇 개일까?
    스레드에서 발생하는 문제 중 가장 대표적인 것은?
    레이스 컨디션
    데드록
    스타베이션
    라이브 록
    다른 형태의 예측 불가능한 오류
    데드록 예제
    록 경합을 피하는 10 + 1가지 방법
    끝나지 않는 루프
    스레드 개수 문제에 대한 권장안
    정리하며

    CHAPTER 9 스레드 단면 잘라 놓기
    스레드 단면은 언제 자를까?
    스레드 단면이 뭐길래
    스레드 단면 해부하기
    가장 간편한 Ctrl+Break와 Kill -Quit
    jstack을 사용하는 방법도 있다
    스레드 단면 파일로 남기기
    정리하며

    CHAPTER 10 잘라 놓은 스레드 단면 분석하기
    ThreadLogic 준비하기
    ThreadLogic 사용하기 - 스레드 목록 확인
    ThreadLogic 사용하기 - 잠겨 있는 스레드 확인
    ThreadLogic 사용하기 - 무한 루프나 응답 없는 화면 확인
    scouter를 사용한다면 스레드 목록 화면을 활용하자
    scouter를 사용한다면 Stack Frequency Analyzer도 활용하자
    정리하며

    CHAPTER 11 스레드 문제 Case Study
    스레드 단면으로 어떤 문제를 확인할 수 있을까?
    시스템이 느릴 때도 스레드와 관련이 있을까?
    시스템 응답이 없을 때에는 스레드 단면이 가장 효과적이다
    예외가 지속해서 발생할 때도 스레드 단면이 도움이 될까?
    사례 하나. CPU 사용량이 갑자기 올라가서 안 내려와요
    상황
    접근 방법
    사례 둘. 스레드 풀의 스레드 개수가 계속 증가해요
    상황
    접근 방법
    사례 셋. 시스템 응답이 없어요
    상황
    접근 방법
    정리하며

    PART IV 메모리 진단하기
    CHAPTER 12 메모리 때문에 발생할 수 있는 문제들

    자바의 메모리 영역
    pc(program counter) 레지스터
    JVM 스택

    메서드 영역
    런타임 상수 풀
    네이티브 메서드 스택
    OutOfMemoryError는 언제 발생할까?
    OutOfMemoryError 메시지의 의미
    메모리 릭의 세 종류
    수평적 메모리 릭
    수직적 메모리 릭
    대각선 형태의 메모리 릭
    OutOfMemoryError 이외의 메모리 문제는 없을까?
    정리하며

    CHAPTER 13 메모리 단면 잘라 놓기
    메모리 단면은 언제 자르나?
    jmap으로 메모리 단면 생성하기
    jmap의 -dump 옵션 사용하기
    자동으로 힙 덤프 생성시키기
    정리하며

    CHAPTER 14 잘라 놓은 메모리 단면 분석하기
    메모리 단면을 분석하는 도구들
    MAT 준비하기
    간단한 프로그램의 메모리 릭 찾기
    MAT의 또 다른 기능들
    Details
    Biggest Objects by Retained Size
    Actions
    Reports
    Step by Step
    객체 상세 정보 메뉴
    개발 PC의 메모리가 부족할 때 힙 덤프 분석하는 방법
    scouter를 사용하여 메모리 문제 진단하기
    GC 관련
    힙 관련
    정리하며

    CHAPTER 15 메모리 문제 Case Study
    메모리 단면으로 어떤 문제를 확인할 수 있을까?
    시스템이 느리다고 항상 메모리 단면을 사용하는 것은 아니다
    애플리케이션이 응답하지 않을 때도 메모리가 원인일 수 있다
    사례 하나. 자꾸만 시스템이 OOME를 발생시켜요
    상황
    접근 방법 216
    사례 둘. 시스템 응답이 없어요
    상황
    접근 방법
    정리하며

    PART V 자바 분석 도구
    CHAPTER 16 자바 종합 분석 도구인 Arthas

    Arthas란?
    아서스 사용하기
    아서스 주요 명령어들
    dashboard
    thread
    jvm
    sc/sm
    monitor
    stack/trace
    tt
    정리하며

    PART VI 리눅스 진단하기
    CHAPTER 17 리눅스 성능 진단 도구의 구성

    리눅스 진단 명령어를 알아야 하는 이유
    진단 도구 한눈에 살펴보기
    60,000밀리초에 리눅스 시스템 분석하기
    uptime
    dmesg | tail
    vmstat 1
    mpstat -P ALL 1
    pidstat 1
    iostat -xz 1
    free -m
    sar -n DEV 1
    sar -n TCP,ETCP 1
    top
    정리하며

    CHAPTER 18 CPU 모니터링하기
    시스템의 CPU 사용량을 한 줄로 모니터링하는 도구들
    추가적인 시스템 모니터링 도구 설치하기
    mpstat의 기본적인 사용 방법
    mpstat의 옵션들
    왜 CPU를 모니터링해야 하는 걸까?
    정리하며

    CHAPTER 19 전반적인 상황 모니터링하기 - vmstat와 sar
    대부분의 유닉스와 리눅스에 설치되어 있는 vmstat
    vmstat의 기본적인 사용법
    vmstat의 옵션들
    vmstat 옵션에 따른 출력 예
    vmstat보다 상세한 정보를 알 수 있는 sar
    sar의 기본적인 사용 방법
    sar 명령어 옵션들
    정리하며

    CHAPTER 20 프로세스 상황 모니터링하기
    프로세스 모니터링하기
    프로세스 사이의 관계 알아보기
    누구나 알고 있는 ps
    프로세스별로 CPU 사용량 모니터링하기
    프로세스의 메모리 상황을 확인하는 pmap
    정리하며

    CHAPTER 21 I/O 상황 모니터링하기
    I/O를 모니터링하는 도구에는 어떤 것이 있을까?
    디스크의 사용량을 알아보자
    iostat를 알아보자
    프로세스가 사용 중인 파일은 어떻게 확인할까?
    정리하며

    CHAPTER 22 네트워크 상황 모니터링하기
    네트워크 상황을 모니터링하는 도구에는 어떤 것이 있을까?
    네트워크를 사용하는 환경이 먼저 준비되어야 한다
    sar로 네트워크 사용량 확인하기
    lsof로 연결된 네트워크 정보 확인하기
    사라질 네트워크 명령어들
    정리하며

    CHAPTER 23 실시간으로 시스템 모니터링하기
    대부분의 리눅스에 설치되어 있는 top
    top의 단축키들
    top의 시작 옵션들
    보다 예쁘고 간편한 htop
    정리하며

    CHAPTER 24 scouter로 리소스 모니터링하기
    scouter 호스트 에이전트 확인
    scouter에서 제공하는 리소스 모니터링 종류
    실시간 프로세스 목록 확인하기
    소켓 정보 확인하기
    정리하며

    PART VII 장애 진단 종합
    CHAPTER 25 장애 진단은 이렇게 한다

    진단 요청을 받았을 때(장애가 났을 때) 가장 먼저 할 일
    본격적인 진단 시작하기
    장애 원인 제거하고 결과 정리하기
    scouter를 사용한 장애 감지와 원인 파악
    상어 패턴
    파도 패턴
    ㅡ ㅡ 패턴
    운석 낙하 패턴
    산불 패턴
    크리스마스트리 패턴
    정리하며

    APPENDIX 부록
    APPENDIX A Fatal error log 분석

    치명 에러 로그 파일
    헤더 섹션
    스레드 정보 섹션
    프로세스 정보 섹션
    시스템 정보 섹션
    치명 에러가 발생하면 뭐부터 봐야 할까?

    APPENDIX B 자바 인스트럭션
    JVM 인스트럭션은 도대체 뭘까?

    찾아보기

    본문중에서

    에이전트 플러그인은 수집 서버가 아닌 scouter 에이전트에 지정해서 사용하는 플러그인을 말한다. 이 플러그인은 해당 시점에 메서드로 넘어온 매개변수의 값을 확인하거나 리턴되는 값을 확인할 때 유용하다. 예를 들어 어떤 특정 서버만 예외가 발생하는 경우 capture 플러그인을 사용하면 문제가 발생한 메서드의 매개변수나 리턴값을 확인할 수 있기 때문에 디버깅 용도로 아주 유용하게 활용할 수 있다. scouter에서 기본적으로 제공하는 에이전트 플러그인의 종류는 다음과 같다.
    (/ p.91)

    애플리케이션을 운영할 때 각종 프로그램의 응답 속도는 다르다. 그런데 대부분의 경우 진단을 하고 튜닝을 할 때 분석해야 하는 대상은 느린 애플리케이션이다. 0.1초 이하의 프로그램을 튜닝해야 하는 경우도 분명 존재하겠지만, 대부분의 응답 속도가 2~3초인 애플리케이션에서는 아주 빠른 1초 이하의 요청들은 분석할 일이 거의 없다. 게다가 이러한 요청들에 대한 프로파일링 정보를 저장할 경우 디스크를 많이 사용하므로 엄청난 낭비를 초래한다. 따라서, 이 경우에는 샘플링을 하여 디스크 사용량을 줄일 수 있다. scouter에서 샘플링을 사용하면 특정 비율만큼 프로파일링 정보들이 저장되고, TPS의 값은 문제없이 제공되며, XLog에 점이 전부 찍힌다. 샘플링은 자바 에이전트의 설정 파일에서 지정하면 된다.
    (/ p.101)

    그중에서 데드록이 발생했거나 록이 걸려 여러 스레드가 그 록이 풀리기만을 기다리고 있을 때, 문제를 찾는 가장 좋은 방법이 바로 스레드 단면(스레드 덤프(thread dump))이다. 물론, scouter를 사용하면 쉽게 찾을 수도 있지만, scouter의 도입을 고민하고 있거나, 사용 못 하는 환경이라면 스레드 단면을 만들어 확인하는 것이 가장 간단하다. 게다가 시스템의 CPU가 100%에 도달하면 대부분의 모니터링 도구가 무용지물이 되기 때문에, 스레드 단면을 만들고 이해하는 방법을 알아 두는 것은 매우 중요하다.
    (/ p.119)

    예외가 지속해서 발생할 때, 원인을 찾는 또 한 가지 방법은 scouter의 XLog에서 빨간 점들을 확인하는 것이다. 이 점들을 드래그하여 문제가 발생한 요청의 어느 부분에서 예외가 발생는지 확인하면 보다 빠르게 문제의 원인을 잡을 수 있을 것이다. 하지만 scouter의 메서드 프로파일링 옵션이 제대로 설정되지 않은 경우에는 정확한 위치를 찾기 어려우므로 예외 로그의 스택 트레이스(stack trace) 로그를 확인하는 것이 좋다.
    (/ p.160)

    상용 프로파일링 도구를 사용하면, 어떤 라인 혹은 어떤 메서드에서 얼마나 많은 임시 객체가 생성되었는지 분석할 수 있다. 하지만 프로파일링 도구를 사용하여 메모리 사용량을 분석할 경우에는 성능에 많은 영향을 주기 때문에, 운영 서버에서는 절대 확인하려고 해서는 안 되며 개발자의 PC나 개발 서버에서 문제점을 확인해야만 한다.
    (/ p.185)

    저자소개

    생년월일 -
    출생지 -
    출간도서 0종
    판매수 0권

    삼성 SDS에서 개발을 시작하여, Naver의 성능 엔지니어링 팀에서 일했다. 지금은 NHN엔터테인먼트에서 협업 도구인 두레이(Dooray!)를 개발하고 있다. [자바 성능 튜닝 이야기], [자바 개발자와 시스템 운영자를 위한 트러블슈팅 이야기] 등 다수의 IT 서적을 집필하였다.

    이 상품의 시리즈

    이 책과 내용이 비슷한 책 ? 내용 유사도란? 이 도서가 가진 내용을 분석하여 기준 도서와 얼마나 많이 유사한 콘텐츠를 많이 가지고 있는가에 대한 비율입니다.

      리뷰

      0.0 (총 0건)

      구매 후 리뷰 작성 시, 북피니언 지수 최대 600점

      리뷰쓰기

      기대평

      작성시 유의사항

      평점
      0/200자
      등록하기

      기대평

      0.0

      교환/환불

      교환/환불 방법

      ‘마이페이지 > 취소/반품/교환/환불’ 에서 신청함, 1:1 문의 게시판 또는 고객센터(1577-2555) 이용 가능

      교환/환불 가능 기간

      고객변심은 출고완료 다음날부터 14일 까지만 교환/환불이 가능함

      교환/환불 비용

      고객변심 또는 구매착오의 경우에만 2,500원 택배비를 고객님이 부담함

      교환/환불 불가사유

      반품접수 없이 반송하거나, 우편으로 보낼 경우 상품 확인이 어려워 환불이 불가할 수 있음
      배송된 상품의 분실, 상품포장이 훼손된 경우, 비닐랩핑된 상품의 비닐 개봉시 교환/반품이 불가능함

      소비자 피해보상

      소비자 피해보상의 분쟁처리 등에 관한 사항은 소비자분쟁해결기준(공정거래위원회 고시)에 따라 비해 보상 받을 수 있음
      교환/반품/보증조건 및 품질보증 기준은 소비자기본법에 따른 소비자 분쟁 해결 기준에 따라 피해를 보상 받을 수 있음

      기타

      도매상 및 제작사 사정에 따라 품절/절판 등의 사유로 주문이 취소될 수 있음(이 경우 인터파크도서에서 고객님께 별도로 연락하여 고지함)

      배송안내

      • 인터파크 도서 상품은 택배로 배송되며, 출고완료 1~2일내 상품을 받아 보실 수 있습니다

      • 출고가능 시간이 서로 다른 상품을 함께 주문할 경우 출고가능 시간이 가장 긴 상품을 기준으로 배송됩니다.

      • 군부대, 교도소 등 특정기관은 우체국 택배만 배송가능하여, 인터파크 외 타업체 배송상품인 경우 발송되지 않을 수 있습니다.

      • 배송비

      도서(중고도서 포함) 구매

      2,000원 (1만원이상 구매 시 무료배송)

      음반/DVD/잡지/만화 구매

      2,000원 (2만원이상 구매 시 무료배송)

      도서와 음반/DVD/잡지/만화/
      중고직배송상품을 함께 구매

      2,000원 (1만원이상 구매 시 무료배송)

      업체직접배송상품 구매

      업체별 상이한 배송비 적용