책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 컴퓨터 공학 > 네트워크/데이터 통신
· ISBN : 9791158390181
· 쪽수 : 792쪽
· 출판일 : 2015-12-15
책 소개
목차
▣ 01장: 들어가며
1.1 시스템 성능
1.2 역할
1.3 활동
1.4 관점
1.5 성능은 도전적인 분야다
___1.5.1 성능은 주관적이다
___1.5.2 시스템은 복잡하다
___1.5.3 여러 성능 문제가 존재할 수 있다
1.6 지연시간
1.7 동적 트레이싱
1.8 클라우드 컴퓨팅
1.9 사례 연구
___1.9.1 느린 디스크
___1.9.2 소프트웨어 변경
___1.9.3 더 읽을거리
▣ 02장: 방법론
2.1 용어
2.2 모델
___2.2.1 테스트 중인 시스템
___2.2.2 대기열 시스템
2.3 개념
___2.3.1 지연시간
___2.3.2 시간 규모
___2.3.3 트레이드오프
___2.3.4 튜닝을 위한 노력
___2.3.5 적합성의 수준
___2.3.6 성능 개선의 한시성
___2.3.7 부하 대 아키텍처
___2.3.8 규모 확장성
___2.3.9 알려진 모르는 것
___2.3.10 지표
___2.3.11 사용률
___2.3.12 포화도
___2.3.13 프로파일링
___2.3.14 캐싱
2.4 관점
___2.4.1 자원 분석
___2.4.2 부하 분석
2.5 방법론
___2.5.1 가로등 역방법론
___2.5.2 임의 변경 역방법론
___2.5.3 다른 사람 비난 역방법론
___2.5.4 전용 점검 목록 방법론
___2.5.5 문제 내역서
___2.5.6 과학적 방법론
___2.5.7 검사 주기
___2.5.8 도구 방법론
___2.5.9 USE 방법론
___2.5.10 부하 특성 평가
___2.5.11 드릴다운 분석
___2.5.12 지연시간 분석
___2.5.13 R 방법론
___2.5.14 이벤트 트레이싱
___2.5.15 기준 통계
___2.5.16 정적 성능 튜닝
___2.5.17 캐시 튜닝
___2.5.18 마이크로 벤치마킹
2.6 모델링
___2.6.1 기업 대 클라우드
___2.6.2 시각적 식별
___2.6.3 암달의 확장성 법칙
___2.6.4 일반 확장성 법칙
___2.6.5 대기열 이론
2.7 수용량 계획
___2.7.1 자원 제약
___2.7.2 요인 분석
___2.7.3 확장성 해법
2.8 통계
___2.8.1 성능 정량화
___2.8.2 평균
___2.8.3 표준 편차, 백분위, 중앙값
___2.8.4 변동계수
___2.8.5 다봉분포
___2.8.6 이상치
2.9 감시
___2.9.1 시간에 따른 패턴
___2.9.2 감시 제품
___2.9.3 부팅 시점부터의 요약
2.10 시각화
___2.10.1 꺾은선 차트
___2.10.2 산점도
___2.10.3 열지도
___2.10.4 표면도
___2.10.5 시각화 도구
2.11 연습문제
2.12 참고문헌
▣ 03장: 운영체제
3.1 용어
3.2 배경지식
___3.2.1 커널
___3.2.2 스택
___3.2.3 인터럽트와 인터럽트 스레드
___3.2.4 인터럽트 우선순위
___3.2.5 프로세스
___3.2.6 시스템 콜
___3.2.7 가상 메모리
___3.2.8 메모리 관리
___3.2.9 스케줄러
___3.2.10 파일 시스템
___3.2.11 캐싱
___3.2.12 네트워킹
___3.2.13 장치 드라이버
___3.2.14 다중 프로세서
___3.2.15 선점
___3.2.16 자원 관리
___3.2.17 관찰 가능 범위
3.3 커널
___3.3.1 유닉스
___3.3.2 솔라리스 기반
___3.3.3 리눅스 기반
___3.3.4 차이점
3.4 연습문제
3.5 참고문헌
▣ 04장: 관찰도구
4.1 도구 유형
___4.1.1 카운터
___4.1.2 트레이싱
___4.1.3 프로파일링
___4.1.4 감시(sar)
4.2 관찰 소스
___4.2.1 /proc
___4.2.2 /sys
___4.2.3 kstat
___4.2.4 지연 어카운팅
___4.2.5 미세상태 어카운팅
___4.2.6 다른 관찰 가능 소스
4.3 DTrace
___4.3.1 정적 트레이싱과 동적 트레이싱
___4.3.2 프로브
___4.3.3 프로바이더
___4.3.4 인수
___4.3.5 D 언어
___4.3.6 내장 변수
___4.3.7 액션
___4.3.8 변수 타입
___4.3.9 한 줄짜리 프로그램
___4.3.10 스크립트
___4.3.11 부가비용
___4.3.12 문서와 자료
4.4 시스템탭
___4.4.1 프로브
___4.4.2 탭셋
___4.4.3 액션과 내장 변수
___4.4.5 부가비용
___4.4.6 문서와 자료
4.5 리눅스 성능 이벤트(perf)
4.6 관찰 도구 관찰하기
4.7 연습문제
4.8 참고문헌
▣ 05장: 애플리케이션
5.1 애플리케이션 기초
___5.1.1 목표
___5.1.2 일반적인 경우 최적화하기
___5.1.3 관찰 가능 범위
___5.1.4 빅 오 표기법
5.2 애플리케이션 성능 기법
___5.2.1 I/O 크기 변경
___5.2.2 캐시 사용
___5.2.3 버퍼 사용
___5.2.4 폴링
___5.2.5 동시성과 병렬성
___5.2.6 비동기 I/O
___5.2.7 프로세서 바인딩
5.3 프로그래밍 언어
___5.3.1 컴파일 언어
___5.3.2 인터프리터 언어
___5.3.3 가상 머신
___5.3.4 쓰레기 수집
5.4 방법론과 분석
___5.4.1 스레드 상태 분석
___5.4.2 CPU 프로파일링
___5.4.3 시스템 콜 분석
___5.4.4 I/O 프로파일링
___5.4.5 부하 특성 평가
___5.4.6 USE 방법론
___5.4.7 드릴다운 분석
___5.4.8 락 분석
___5.4.9 정적 성능 튜닝
5.5 연습문제
5.6 참고문헌
▣ 06장: CPU
6.1 용어
6.2 모델
___6.2.1 CPU 아키텍처
___6.2.2 CPU 메모리 캐시
___6.2.3 CPU 실행 대기열
6.3 개념
___6.3.1 클럭 속도
___6.3.2 명령
___6.3.3 명령 파이프라인
___6.3.4 명령 너비
___6.3.5 CPI, IPC
___6.3.6 사용률
___6.3.7 사용자 시간/커널 시간 비율
___6.3.8 포화
___6.3.9 선점
___6.3.10 우선순위 역전
___6.3.11 다중 프로세스, 다중 스레드
___6.3.12 워드 크기
___6.3.13 컴파일러 최적화
6.4 아키텍처
___6.4.1 하드웨어
___6.4.2 소프트웨어
6.5 방법론
___6.5.1 도구 방법론
___6.5.2 USE 방법론
___6.5.3 부하 특성 평가
___6.5.4 프로파일링
___6.5.5 사이클 분석
___6.5.6 성능 감시
___6.5.7 정적 성능 튜닝
___6.5.8 우선순위 튜닝
___6.5.9 자원 제어
___6.5.10 CPU 바인딩
___6.5.11 마이크로 벤치마킹
___6.5.12 확장하기
6.6 분석
___6.6.1 uptime
___6.6.2 vmstat
___6.6.3 mpstat
___6.6.4 sar
___6.6.5 ps
___6.6.6 top
___6.6.7 prstat
___6.6.8 pidstat
___6.6.9 time, ptime
___6.6.10 DTrace
___6.6.11 시스템탭
___6.6.12 perf
___6.6.13 cpustat
___6.6.14 기타 도구
___6.6.15 시각화
6.7 실험 과정
___6.7.1 임의 시도
___6.7.2 시스벤치
6.8 튜닝
___6.8.1 컴파일러 옵션
___6.8.2 스케줄링 우선순위와 클래스
___6.8.3 스케줄러 옵션
___6.8.4 프로세스 바인딩
___6.8.5 배타적 CPU 집합
___6.8.6 자원 제어
___6.8.7 프로세서 옵션(BIOS 튜닝)
6.9 연습문제
6.10 참고문헌
▣ 07장: 메모리
7.1 용어
7.2 개념
___7.2.1 가상 메모리
___7.2.2 페이징
___7.2.3 요구 페이징
___7.2.4 과할당
___7.2.5 스와핑
___7.2.6 파일 시스템 캐시 사용
___7.2.7 사용률과 포화도
___7.2.8 할당자
___7.2.9 워드 크기
7.3 아키텍처
___7.3.1 하드웨어
___7.3.2 소프트웨어
___7.3.3 프로세스 주소 공간
7.4 방법론
___7.4.1 도구 방법론
___7.4.2 USE 방법론
___7.4.3 사용 특성 평가
___7.4.4 사이클 분석
___7.4.5 성능 감시
___7.4.6 누수 감지
___7.4.7 정적 성능 튜닝
___7.4.8 자원 제어
___7.4.9 마이크로 벤치마킹
7.5 분석
___7.5.1 vmstat
___7.5.2 sar
___7.5.3 slabtop
___7.5.4 ::kmastat
___7.5.5 ps
___7.5.6 top
___7.5.7 prstat
___7.5.8 pmap
___7.5.9 DTrace
___7.5.10 시스템탭
___7.5.11 기타 도구
7.6 튜닝
___7.6.1 변경 가능 파라미터
___7.6.2 여러 페이지 크기
___7.6.3 할당자
___7.6.4 자원 제어
7.7 연습문제
7.8 참고문헌
▣ 08장: 파일 시스템
8.1 용어
8.2 모델
___8.2.1 파일 시스템 인터페이스
___8.2.2 파일 시스템 캐시
___8.2.3
8.3 개념
___8.3.1 파일 시스템 지연시간
___8.3.2 캐시
___8.3.3 임의 접근 I/O 대 순차 I/O
___8.3.4 예비 추출
___8.3.5 미리 읽기
___8.3.6 라이트 백 캐시
___8.3.7 동기적 쓰기
___8.3.8 로우 I/O와 직접 I/O
___8.3.9 비블로킹 I/O
___8.3.10 메모리 맵 파일
___8.3.11 메타데이터
___8.3.12 논리적 I/O 대 물리적 I/O
___8.3.13 연산들은 동일하지 않다
___8.3.14 특별 파일 시스템
___8.3.15 접근 타임스탬프
___8.3.16 용량
8.4 아키텍처
___8.4.1 파일 시스템 I/O 스택
___8.4.2 VFS
___8.4.3 파일 시스템 캐시
___8.4.4 파일 시스템 기능
___8.4.5 파일 시스템 유형
___8.4.6 볼륨과 풀
8.5 방법론
___8.5.1 디스크 분석
___8.5.2 지연시간 분석
___8.5.3 부하 특성 평가
___8.5.4 성능 감시
___8.5.5 이벤트 트레이싱
___8.5.6 정적 성능 튜닝
___8.5.7 캐시 튜닝
___8.5.8 부하 분리
___8.5.9 메모리 기반 파일 시스템
___8.5.10 마이크로 벤치마킹
8.6 분석
___8.6.1 vfsstat
___8.6.2 fsstat
___8.6.3 strace, truss
___8.6.4 DTrace
___8.6.5 시스템탭
___8.6.6 LatencyTOP
___8.6.7 free
___8.6.8 top
___8.6.9 vmstat
___8.6.10 sar
___8.6.11 slabtop
___8.6.12 mdb ::kmastat
___8.6.13 fcachestat
___8.6.14 /proc/meminfo
___8.6.15 mdb ::memstat
___8.6.16 kstat
___8.6.17 다른 도구
___8.6.18 시각화
8.7 실험
___8.7.1 임의 부하 생성
___8.7.2 마이크로 벤치마크 도구
___8.7.3 캐시 플러싱
8.8 튜닝
___8.8.1 애플리케이션 호출
___8.8.2 ext3
___8.8.3 ZFS
8.9 연습문제
8.10 참고문헌
▣ 09장: 디스크
9.1 용어
9.2 모델
___9.2.1 단순한 디스크
___9.2.2 디스크 캐시
___9.2.3 컨트롤러
9.3 개념
___9.3.1 시간 측정
___9.3.2 시간 규모
___9.3.3 캐시
___9.3.4 임의 접근 I/O 대 순차 I/O
___9.3.5 읽기/쓰기 비율
___9.3.6 I/O 크기
___9.3.7 IOPS는 같지 않다
___9.3.8 데이터 전송이 아닌 디스크 명령
___9.3.9 사용률
___9.3.10 포화
___9.3.11 I/O 대기
___9.3.12 동기 대 비동기
___9.3.13 디스크 I/O 대 애플리케이션 I/O
9.4 아키텍처
___9.4.1 디스크 유형
___9.4.2 인터페이스
___9.4.3 저장장치 유형
___9.4.4 OS 디스크 I/O 스택
9.5 방법론
___9.5.1 도구 방법론
___9.5.2 USE 방법론
___9.5.3 성능 감시
___9.5.4 부하 특성 평가
___9.5.5 지연시간 분석
___9.5.6 이벤트 트레이싱
___9.5.7 정적 성능 튜닝
___9.5.8 캐시 튜닝
___9.5.9 자원 제어
___9.5.10 마이크로 벤치마크
___9.5.11 확장하기
9.6 분석
___9.6.1 iostat
___9.6.2 sar
___9.6.3 pidstat
___9.6.4 DTrace
___9.6.5 시스템탭
___9.6.6 perf
___9.6.7 iotop
___9.6.8 iosnoop
___9.6.9 blktrace
___9.6.10 MegaCli
___9.6.11 smartctl
___9.6.12 시각화
9.7 실험
___9.7.1 임의 부하 생성
___9.7.2 커스텀 부하 생성기
___9.7.3 마이크로 벤치마크 도구
___9.7.4 임의 위치 읽기 예제
9.8 튜닝
___9.8.1 운영체제의 변경 가능 파라미터
___9.8.2 디스크 장치의 변경 가능 파라미터
___9.8.3 디스크 컨트롤러의 변경 가능 파라미터
9.9 연습문제
9.10 참고문헌
▣ 10장: 네트워크
10.1 용어
10.2 모델
___10.2.1 네트워크 인터페이스
___10.2.2 컨트롤러
___10.2.3 프로토콜 스택
10.3 개념
___10.3.1 네트워크와 라우팅
___10.3.2 프로토콜
___10.3.3 캡슐화
___10.3.4 패킷 크기
___10.3.5 지연시간
___10.3.6 버퍼링
___10.3.7 연결 백로그
___10.3.8 인터페이스 교섭
___10.3.9 사용률
___10.3.10 지역 연결
10.4 아키텍처
___10.4.1 프로토콜
___10.4.2 하드웨어
___10.4.3 소프트웨어
10.5 방법론
___10.5.1 도구 방법론
___10.5.2 USE 방법론
___10.5.3 부하 특성 평가
___10.5.4 지연시간 분석
___10.5.5 성능 감시
___10.5.6 패킷 스니핑
___10.5.7 TCP 분석
___10.5.8 드릴다운 분석
___10.5.9 정적 성능 튜닝
___10.5.10 자원 제어
___10.5.11 마이크로 벤치마킹
10.6 분석
___10.6.1 netstat
___10.6.2 sar
___10.6.3 ifconfig
___10.6.4 ip
___10.6.5 nicstat
___10.6.6 dladm
___10.6.7 ping
___10.6.8 traceroute
___10.6.9 pathchar
___10.6.10 tcpdump
___10.6.11 snoop
___10.6.12 와이어샤크
___10.6.13 DTrace
___10.6.14 시스템탭
___10.6.15 perf
___10.6.16 다른 도구
10.7 실험
___10.7.1 iperf
10.8 튜닝
___10.8.1 리눅스
___10.8.2 솔라리스
___10.8.3 설정
10.9 연습문제
10.10 참고문헌
▣ 11장: 클라우드 컴퓨팅
11.1 배경
___11.1.1 가격 대 성능 비
___11.1.2 확장 가능한 아키텍처
___11.1.3 수용량 계획
___11.1.4 저장장치
___11.1.5 다중 임대 사용자
11.2 OS 가상화
___11.2.1 부가비용
___11.2.2 자원 제어
___11.2.3 관찰 도구
11.3 하드웨어 가상화
___11.3.1 부가비용
___11.3.2 자원제어
___11.3.3 관찰 도구
11.4 비교
11.5 연습문제
11.6 참고문헌
▣ 12장: 벤치마킹
12.1 배경
___12.1.1 활동
___12.1.2 효과적인 벤치마킹
___12.1.3 벤치마크의 죄악
12.2 벤치마킹 유형
___12.2.1 마이크로 벤치마킹
___12.2.2 시뮬레이션
___12.2.3 리플레이
___12.2.4 업계 표준
12.3 방법론
___12.3.1 수동적 벤치마킹
___12.3.2 능동적 벤치마킹
___12.3.3 CPU 프로파일링
___12.3.4 USE 방법론
___12.3.5 부하 특성 평가
___12.3.6 커스텀 벤치마크
___12.3.7 연속 부하 증가
___12.3.8 정상 여부 검사
___12.3.9 통계적 분석
12.4 벤치마크 질문
12.5 연습문제
12.6 참고문헌
▣ 13장: 사례연구
13.1 사례 분석: 암막 커튼
___13.1.1 문제 기술
___13.1.2 지원
___13.1.3 시작하기
___13.1.4 어떤 모험을 택할 것인가?
___13.1.5 USE 방법론
___13.1.6 이제 다 끝난 것일까?
___13.1.7 두 번째 시도
___13.1.8 기본
___13.1.9 암막 커튼 제치기
___13.1.10 커널 심문하기
___13.1.11 왜 그랬을까?
___13.1.12 후일담
13.2 해설
13.3 추가 정보
13.4 참고문헌
▣ 부록 A: USE 방법론 - 리눅스
물리적 자원
소프트웨어 자원
참고문헌
물리적 자원
소프트웨어 자원
▣ 부록 B: 방법론 - 솔라리스
참고문헌
리눅스
▣ 부록 C: sar 요약
솔라리스
syscall 프로바이더
▣ 부록 D: 한 줄짜리 DTrace 프로그램 예제
proc 프로바이더
profile 프로바이더
sched 프로바이더
fbt 프로바이더
pid 프로바이더
io 프로바이더
sysinfo 프로바이더
vminfo 프로바이더
ip 프로바이더
tcp 프로바이더
udp 프로바이더
기능
▣ 부록 E: DTrace 스크립트를 시스템탭으로 바꾸기
용어
프로브
내장 변수
함수
예제1: 시스템콜 엔트리 프로브 나열하기
예제2: read()가 반환하는 크기 요약하기
예제3: 프로세스 이름별로 시스템 콜 횟수 세기
예제4: 프로세스 ID 123인 프로세스에 대해 시스템콜 이름별로 횟수 세기
예제5: "httpd" 프로세스에 대해 시스템콜 이름별로 시스템콜 횟수 세기
예제6: 프로세스 이름과 파일 경로별로 파일 open() 횟수 세기
예제7: "mysqld" 프로세스의 read() 지연시간 요약하기
예제8: 새로 시작되는 프로세스 이름과 인자를 트레이스하기
예제9: 100Hz로 커널 스택 샘플링하기
참고문헌
▣ 부록 F: 연습문제 해답
2장 - 방법론
3장 - OS
6장 - CPU
7장 - 메모리
8장 - 파일 시스템
9장 - 디스크
11장 - 클라우드 컴퓨팅
▣ 부록 G: 시스템 성능 인명록
▣ 부록 H: 용어
▣ 부록 I: 참고문헌