이미 소장하고 있다면 판매해 보세요.
|
▣ 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: 참고문헌 |
오현석의 다른 상품
|
★ 이 책에서 다루는 내용 ★
◎ 최신 성능 분석 및 튜닝: 용어, 개념, 모델, 방법론 및 기법 ◎ DTrace, 시스템탭(SystemTap), perf 등의 동적 트레이싱 기법과 도구 ◎ 커널 내부 구조: 운영체제의 동작에 대한 상세한 설명 ◎ 시스템 관찰 도구나 인터페이스, 프레임워크를 사용하는 방법 ◎ 애플리케이션 성능에 대한 이해와 애플리케이션 성능 모니터링 방법 ◎ CPU 최적화: 프로세서, 코어, 하드웨어 스레드, 캐시, 상호 연결, 커널 스케줄링 ◎ 메모리 최적화: 가상 메모리, 페이징, 스와핑, 메모리 구조, 버스, 주소 공간 및 할당자 ◎ 캐시를 포함하는 파일 시스템 I/O ◎ 저장 장치/컨트롤러, 디스크 I/O 부하, RAID, 커널 I/O ◎ 네트워크 관련 성능 문제: 프로토콜, 소켓, 인터페이스 및 물리적 연결 ◎ 운영체제나 하드웨어 기반 가상화가 성능에 어떤 영향을 끼치는가와 클라우드 컴퓨팅을 사용할 때 발생할 수 있는 새로운 성능 문제 ◎ 벤치마크: 정확한 벤치마크 결과를 얻는 방법과 벤치마크 수행 시 흔히 저지를 수 있는 실수를 피하는 방법 |