실무로 배우는 시스템 성능 최적화
수상내역/미디어추천
- 전문기관 추천도서 > 세종도서 우수학술도서 > 2016년 선정
이 책의 총서 (14)
작가정보
저자(글) 권문수
저자 권문수는 부산대학교를 졸업하고 1996년부터 LG CNS에 근무하면서 15년간 시스템 문제해결 및 성능 개선 전문가로 활동하고 있다. 카드, 보험, 은행 등 다수의 금융 차세대 구축 프로젝트에서 성능 개선을 담당했으며, 공공 서비스, 국방, 공장 자동화, 교통, 통신, 물류 등 다양한 분야에 대한 성능 개선 경험을 보유하고 있다. 성능 개선 노하우를 바탕으로 오픈소스 APM 도구인 스카우터(Scouter)의 개발자로도 참여하고 있다.
목차
- [1부] 성능 기초
▣ 1장: 성능이란?
1.1 동시 사용자
1.2 처리량
1.3 응답시간
1.4 자원
___1.4.1 적정성
___1.4.2 효율성
___1.4.3 안정성
___1.4.4 가용성
___1.4.5 확장성
▣ 2장: 성능 특성
2.1 성능 곡선
2.2 성능에 대한 이해
▣ 3장: 성능 이론
3.1 기초 성능 이론
3.2 사용률 이론
3.3 비율 분석
▣ 4장: 성능 테스트
4.1 성능 테스트 유형
4.2 성능 테스트 구성 요소
4.3 성능 테스트 시 주의사항
___4.3.1 테스트 데이터
___4.3.2 화면 처리시간
___4.3.3 네트워크
___4.3.4 가상 사용자 특성
___4.3.5 업무 시나리오
___4.3.6 대상 업무와 성능 개선
[2부] 성능 개선
▣ 1장: 기본 자세
▣ 2장: 성능 분석 시작하기
2.1 애플리케이션 서버 응답시간 분석
2.2 클라이언트 응답시간 분석
▣ 3장: 상황별 분석 단계
3.1 화면 응답시간 저하
3.2 시스템 내 응답시간 저하
3.3 서비스 멈춤 현상
3.4 시스템 전반에 걸친 성능 개선
3.5 서버 자원 사용량 확인
3.6 CPU 과다 사용 분석
3.7 메모리 과다 사용 분석
3.8 디스크 과다 사용 분석
▣ 4장: 개선 방향성
[3부] 화면 응답시간 분석
▣ 1장: 기본 방향
▣ 2장: HTTP의 이해
2.1 프로토콜 구조
2.2 HTTP 요청
2.3 HTTP 응답
2.4 데이터 송수신
▣ 3장: 화면 응답시간 모니터링
3.1 화면 응답시간 모니터링 도구
3.2 인터넷 익스플로러 프로파일링
3.3 피들러
3.4 HTTP 분석 접근
▣ 4장: 웹 기반 시스템 성능 개선
4.1 화면 콘텐츠 구성
___4.1.1 콘텐츠 수 축소
___4.1.2 크기별 이미지 준비
___4.1.3 이미지 콘텐츠 파일의 크기 축소
___4.1.4 CDN 사용
___4.1.5 텍스트 콘텐츠의 크기 축소
___4.1.6 압축 적용
___4.1.7 웹 가속기
4.2 캐시 동작
___4.2.1 브라우저 캐시
4.3 병렬/비동기 처리
___4.3.1 네트워크 연결 증가
___4.3.2 AJAX와 DOM을 이용한 비동기 처리
4.4 기타 성능 개선
4.5 웹 서버 설정
___4.5.1 최대 병렬 처리 수
___4.5.2 Keepalive
▣ 5장: 웹 서버 모니터링
5.1 웹 요청 응답시간 모니터링
5.2 웹 서버 성능 모니터링
▣ 6장: HTTPS
[4부] 프로세스 이해하기
▣ 1장: 기본 방향
▣ 2장: 수행 중인 코드
2.1 스택에 대한 이해
2.2 스택 정보를 이용한 성능 분석
___2.2.1 스택 대기 분석
___2.2.2 교착상태
___2.2.3 스택 성능 분석
2.3 스택 수집
2.4 프로세스 스택 분석 도구
___2.4.1 환경설정
___2.4.2 주요 기능 설명
___2.4.3 SDPA를 이용한 성능 분석
▣ 3장: 통신/파일 상태
3.1 파일 지시자의 이해
3.2 연계 통신/파일 상태 정보를 수집하는 방법
▣ 4장: 통신/파일 간 동작
4.1 시스템 콜에 대한 이해
4.2 통신/파일 상태와 동작 연계 분석
4.3 스택 정보와 통신/파일 간 동작 연계 분석
4.4 통신/파일 간 동작 모니터링 방법
▣ 5장: 기타
5.1 프로그램 소스코드 보기
5.2 바이너리 코어 덤프에서 자바 스택이나 힙 정보를 추출하는 방법
5.3 프로세스의 현재 작업 디렉터리를 확인하는 법
5.4 프로그램에서 사용하는 공유 라이브러리 확인
5.5 프로세스 생성 관계 보기
5.6 프로세스의 수행 환경 확인
[5부] 소스코드 최적화
▣ 1장: 기본 방향
▣ 2장: 불필요한 작업 제거
2.1 로깅
___2.1.1 잘못 사용된 로깅 수준
___2.1.2 로깅을 위한 불필요한 메시지 생성
___2.1.3 로깅을 효율적으로 하기 위한 개선
___2.1.4 트랜잭션 저널 로그
2.2 불필요한 로직
2.3 반복 로직
▣ 3장: 로직 최적화
3.1 락 최소화
___3.1.1 락 범위 최소화
___3.1.2 락 제거
3.2 문자열 처리 개선
___3.2.1 String.format 메서드
___3.2.2 String.replaceAll 메서드
___3.2.3 문자열 합치기
3.3 리플렉션 호출 제거
3.4 채번
3.5 날짜 연산
3.6 시간 문자열 처리
3.7 순차 검색 제거
3.8 파일 입출력 단위
3.9 SQL
3.10 BigDecimal
3.11 비대기 입출력 사용
3.12 기타 성능 개선
3.13 코드 성능 측정
▣ 4장: 적극적인 캐시 사용
▣ 5장: 효율적인 아키텍처 구성
5.1 병렬 처리
5.2 통신전문
5.3 고객정보 조회 이력 로깅과 마스킹
5.4 대량 조회 프레임워크 구성
5.5 내부 연계시스템
5.6 수직확장과 수평확장
[6부] SQL 튜닝
▣ 1장: 기본 방향
▣ 2장: SQL 튜닝을 위한 지본 지식
2.1 데이터베이스의 기본 구조
2.2 블록 단위 처리
2.3 캐시 IO 대 물리 IO
▣ 3장: 성능 개선 대상 식별
3.1 SQL 수행 통계
3.2 실행 중인 세션 상태
3.3 수행 중인 SQL의 수행 상태 확인
3.4 락 대기
3.5 AWR 보고서
3.6 StatsPack
▣ 4장: SQL 실행계획
4.1 SQL 실행계획과 수행 결과
___4.1.1 SQL 실행계획 보기
___4.1.2 SQL 수행 결과 확인
4.2 실행계획의 이해
___4.2.1 조인
___4.2.2 SQL 실행계획의 동작
4.3 인덱스
___4.3.1 인덱스 구조
___4.3.2 인덱스 종류
___4.3.3 인덱스 사용 원칙
___4.3.4 인덱스 탐색 방식
___4.3.5 인덱스 수와 성능
4.4 테이블
___4.4.1 Direct-Path와 Conventional-Path
___4.4.2 파티션 테이블
4.3 테이블 통계 보기
▣ 5장: SQL 성능 개선
5.1 힌트 사용
5.2 SQL 성능 개선
___5.2.1 인덱스 부재
___5.2.2 인덱스 항목 순서
___5.2.3 LIKE에 의한 성능 저하
___5.2.4 테이블 조인 이상
___5.2.5 실행 횟수와 조인
[7부] 애플리케이션 입장에서의 SQL 튜닝
▣ 1장: 기본 방향
▣ 2장: 중복 SQL 수행 제거
2.1 애플리케이션 캐시의 종류
___2.1.1 블록 캐시
___2.1.2 요청 캐시
___2.1.3 사용자 세션 캐시
___2.1.4 프로세스 캐시
___2.1.5 프로세스간 공유 캐시
___2.1.6 캐시 특성 분류
2.2 요청 캐시 구현 코드
2.3 캐시 적용
▣ 3장: 불필요한 SQL 수행 제거
▣ 4장: 최적 수행
4.1 Rownum 추가
4.2 파티션 키 추가
4.3 조회 항목 사용 여부(테이블 조인 제거)
▣ 5장: 쿼리 통합
5.1 메인/서브 쿼리
5.2 병렬 쿼리 통합
▣ 6장: DB 집합 처리
▣ 7장: 트랜잭션 처리
▣ 8장: 기타
8.1 복합적인 기능을 수행하는 쿼리 제거
8.2 스칼라 서브 쿼리 사용 시 주의사항
8.3 페이징 처리
▣ 9장: 배치 성능 개선
9.1 전체 테이블 탐색
9.2 파티션
9.3 해시 조인
9.4 병렬 처리
9.5 쿼리 통합
___9.5.1 메인리더와 건별 처리 쿼리 통합
___9.5.2 메인리더와 Insert 통합
___9.5.3 Select / Insert / Update 통합
9.6 자바 배치 모니터링 방안
▣ 10장: APM 활용
10.1 스카우터
[8부] 서버 OS 모니터링
▣ 1장: 기본 방향
▣ 2장: CPU
2.1 사용량 분석
2.2 CPU 확인
2.3 동시 다중 스레딩
2.4 CPU를 많이 사용하는 스레드 식별하기
2.5 프로세스의 누적 CPU 사용량 확인하기
2.6 CPU를 많이 사용하는 모듈(코드) 식별하기
▣ 3장: 메모리
3.1 가상 메모리
3.2 메모리 관련 주요 용어
3.3 사용량 분석
3.4 메모리 확인
▣ 4장: 디스크
4.1 사용량 분석
4.2 유닉스/리눅스 디스크 관리
4.3 파일시스템의 입출력 방식
___4.3.1 비동기 입출력
___4.3.2 직접 입출력
___4.3.3 동시 입출력
4.4 스토리지
4.5 레이드
___4.5.1 레이드 0 - 스트라이핑
___4.5.2 레이드 1 - 미러링
___4.5.3 레이드 0+1 - 스트라이핑과 미러링
___4.5.4 레이드 4 - 스트라이핑과 전용 패리티
___4.5.5 레이드 5 - 스트라이핑과 분산 패리티
▣ 5장: 통합 모니터링 도구
5.1 nmon
5.2 topas
5.3 GlancePlus
5.4 top
[9부] 프로세스의 메모리 구조
▣ 1장: 기본 방향
▣ 2장: 바이너리 메모리 관리
2.1 프로세스 메모리 구조
2.2 메모리 누수 조사
___2.2.1 윈도우
___2.2.2 AIX
___2.2.3 솔라리스
___2.2.4 HPUX
___2.2.5 리눅스
___2.2.6 기타
▣ 3장: 자바 메모리 관리
3.1 JVM 메모리 구조
3.2 가비지 컬렉션
3.3 오라클/HP JVM의 힙 메모리 구조
3.4 오라클/HP JVM의 GC 방식
___3.4.1 Serial GC
___3.4.2 Incremental GC
___3.4.3 Parallel GC
___3.4.4 Parallel Old GC
___3.4.5 Concurrent Mark and Sweep(CMS) GC GC
___3.4.6 Garbage First(G1) GC
___3.4.7 GC 선정 기준
3.5 IBM JVM의 메모리 구조
___3.5.1 단일 공간 메모리 구조
___3.5.2 Generation space 메모리 구조
3.6 IBM JVM의 GC 방식
3.7 자바 힙 메모리 누수
3.8 자바 힙 메모리 모니터링
___3.8.1 jstat
___3.8.2 모니터링 콘솔
___3.8.3 GC 로깅
3.9 자바 힙 덤프 수집
___3.9.1 jmap
___3.9.2 이벤트 설정
___3.9.3 HPROF
3.10 메모리 분석(이클립스 MAT 1.2.1 버전)
___3.10.1 시작하기
___3.10.2 화면 구성
___3.10.3 주요 용어 설명
___3.10.4 주요 메뉴
[10부] 네트워크 모니터링
▣ 1장: 기본 방향
▣ 2장: 네트워크 기초
2.1 OSI 7 계층
2.2 TCP/IP와 UDP/IP
2.3 스위치
2.4 운영체제별 네트워크 설정 확인
▣ 3장: IP
3.1 기본 개념
___3.1.1 IP 주소
___3.1.2 IP 주소의 클래스
___3.1.3 IP 주소의 사이더
___3.1.4 서브넷 마스크
___3.1.5 게이트웨이
___3.1.6 점보 프레임
3.2 IPv6
3.3 IP 프로토콜 네트워크 체크 명령
___3.3.1 호스트 IP 설정 확인
___3.3.2 Ping 명령
___3.3.3 호스트의 라우팅 테이블 확인
___3.3.4 Trace route 명령
___3.3.5 nbtstat 명령
▣ 4장: TCP
4.1 기본 개념
4.2 TCP 전송 보장
___4.2.1 전송 보장 알고리즘
___4.2.2 선별적인 ACK
4.3 전송 제어
___4.3.1 수신 윈도우
___4.3.2 송신 윈도우
___4.3.3 슬라이딩 윈도우
4.4 네이글 알고리즘
4.5 TCP KeepAlive
4.6 TCP 프로토콜 네트워크 체크
___4.6.1 telnet [IP address] [port] 명령
___4.6.2 netstat -an 명령
___4.6.3 netstat -s -p [protocol] 명령
▣ 5장: UDP
▣ 6장: 기타 프로토콜
6.1 DNS
6.2 FTP
▣ 7장: 네트워크 데이터 수집 방법
7.1 유닉스/리눅스 공통
7.2 HP-UX
7.3 IBM AIX
7.4 오라클 솔라리스
7.5 윈도우
▣ 8장: 네트워크 패킷 분석 (와이어샤크 1.10.6 버전)
8.1 화면 구성
___8.1.1 패킷 목록
___8.1.2 패킷 프로토콜 정보
8.2 필터링
8.3 기초 분석 메뉴
8.4 응답시간 분석
___8.4.1 네트워크 시간
___8.4.2 서버 시간
___8.4.3 클라이언트 시간
8.5 전문 분석
8.6 재전송 분석
8.7 와이어샤크를 이용한 성능 분석
출판사 서평
책소개
시스템 최적화 전문가의 15년 노하우를 4년간 정리!
이 책은 시스템 최적화 전문가가 15년간의 실무 경험을 바탕으로 4년간의 노력 끝에 완성한, 시스템 운영자와 애플리케이션 개발자를 대상으로 한 성능 개선에 대한 종합적이고 체계적인 가이드이다. 저자가 실제 경험한 성능 개선 사례를 통해 프로젝트에서 발생하는 성능 저하 유형과 분석 기법을 설명한다.
출판사 리뷰
★ 이 책에서 다루는 내용 ★
◎ 프로젝트에서 발생하는 성능 저하 유형과 분석 기법
◎ 성능 개선 분석 기법과 다양한 프리웨어 및 오픈소스 지원 도구를 소개
◎ 다양한 기반 인프라에 대한 지식
◎ 시스템 이해를 위한 HTTP, 프로세스, 운영체제, 네트워크 등에 대한 기본 지식
◎ SDPA, MAT, Scouter, Wireshark 등 각종 도구에 대한 설명
기본정보
ISBN | 9791158390235 | ||
---|---|---|---|
발행(출시)일자 | 2016년 02월 04일 | ||
쪽수 | 784쪽 | ||
크기 |
188 * 240
* 35
mm
/ 1455 g
|
||
총권수 | 1권 | ||
시리즈명 |
위키북스 시스템 & 네트워크 시리즈
|
Klover
구매 후 리뷰 작성 시, e교환권 200원 적립
문장수집 (0)
e교환권은 적립 일로부터 180일 동안 사용 가능합니다. 리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 한 상품에 최초 1회만 제공됩니다.
주문취소/반품/절판/품절 시 리워드 대상에서 제외됩니다.
판매가 5,000원 미만 상품의 경우 리워드 지급 대상에서 제외됩니다. (2024년 9월 30일부터 적용)
구매 후 리뷰 작성 시, e교환권 100원 적립
-
반품/교환방법
* 오픈마켓, 해외배송 주문, 기프트 주문시 [1:1 상담>반품/교환/환불] 또는 고객센터 (1544-1900) -
반품/교환가능 기간
상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내 -
반품/교환비용
-
반품/교환 불가 사유
(단지 확인을 위한 포장 훼손은 제외)
2) 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
예) 화장품, 식품, 가전제품(악세서리 포함) 등
3) 복제가 가능한 상품 등의 포장을 훼손한 경우
예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
4) 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우 ((1)해외주문도서)
5) 디지털 컨텐츠인 ebook, 오디오북 등을 1회이상 ‘다운로드’를 받았거나 '바로보기'로 열람한 경우
6) 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
7) 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
8) 세트상품 일부만 반품 불가 (필요시 세트상품 반품 후 낱권 재구매)
9) 기타 반품 불가 품목 - 잡지, 테이프, 대학입시자료, 사진집, 방통대 교재, 교과서, 만화, 미디어전품목, 악보집, 정부간행물, 지도, 각종 수험서, 적성검사자료, 성경, 사전, 법령집, 지류, 필기구류, 시즌상품, 개봉한 상품 등 -
상품 품절
-
소비자 피해보상 환불 지연에 따른 배상
2) 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함
상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)
기분 좋은 발견
이 분야의 베스트
이 분야의 신간
-
그림으로 배우는 도커10% 29,700 원
-
클래식 디자인의 모음집10% 89,100 원
-
린 프로덕트 플레이북10% 25,200 원
-
트랜스폼드10% 22,500 원
-
GitOps Cookbook10% 22,500 원