이미 소장하고 있다면 판매해 보세요.
|
1장 소개
1.1 BPF/eBPF란? 1.2 트레이싱, 스누핑, 샘플링, 프로파일링과 관측가능성 1.3 BCC, bpftrace 그리고 IO Visor란? 1.4 BCC 살펴보기 1.5 BPF 트레이싱 가시성 1.6 동적 계측: kprobe와 uprobes 1.7 정적 계측: tracepoint와 USDT 1.8 bpftrace 살펴보기: open() 트레이싱 1.9 BCC 살펴보기: open() 트레이싱 1.10 정리 2장 기술 배경 2.1 BPF 도식화하기 2.2 BPF 2.3 확장 BPF(eBPF) 2.4 스택 트레이스 추적 2.5 플레임 그래프 2.6 이벤트 소스 2.7 kprobe 2.8 uprobes 2.9 tracepoint 2.10 USDT 2.11 동적 USDT 2.12 PMC 2.13 perf_events 2.14 정리 3장 성능 분석 3.1 개요 3.2 성능 분석 방법론 3.3 60초 리눅스 성능 분석 3.4 BCC 도구 체크리스트 3.5 정리 4장 BCC 4.1 BCC 컴포넌트 4.2 BCC의 기능 4.3 BCC 설치 4.4 BCC 도구 4.5 funccount 4.6 stackcount 4.7 trace 4.8 argdist 4.9 도구 문서 4.10 BCC 도구 개발하기 4.11 BCC 내부 구조 4.12 BCC 디버깅 4.13 정리 5장 bpftrace 5.1 bpftrace 컴포넌트 5.2 bpftrace의 기능 5.3 bpftrace 설치 5.4 bpftrace 도구 5.5 bpftrace 원 라이너 5.6 bpftrace 문서 5.7 bpftrace 프로그래밍 5.8 bpftrace 사용법 5.9 bpftrace probe 유형 5.10 bpftrace 흐름 제어 5.11 bpftrace 연산자 5.12 bpftrace 변수 5.13 bpftrace 함수 5.14 bpftrace 맵 함수 5.15 bpftrace 향후 작업 5.16 bpftrace 내부 구조 5.17 bpftrace 디버깅 5.18 정리 6장 CPU 6.1 배경지식 6.2 기존 도구 6.3 BPF 도구 6.4 BPF 원 라이너 6.5 선택 연습 문제 6.6 정리 7장 메모리 7.1 배경지식 7.2 기존 도구 7.3 BPF 도구 7.4 BPF 원 라이너 7.5 선택 연습 문제 7.6 정리 8장 파일 시스템 8.1 배경지식 8.2 기존 도구 8.3 BPF 도구 8.4 BPF 원 라이너 8.5 선택 연습 문제 8.6 정리 9장 디스크 I/O 9.1 배경지식 9.2 기존 도구 9.3 BPF 도구 9.4 BPF 원 라이너 9.5 선택 연습 문제 9.6 정리 10장 네트워킹 10.1 배경지식 10.2 기존 도구 10.3 BPF 도구 10.4 BPF 원 라이너 10.5 선택 연습 문제 10.6 정리 11장 보안 11.1 배경지식 11.2 BPF 도구 11.3 BPF 원 라이너 11.4 정리 12장 언어 12.1 배경지식 12.2 C 12.3 자바 12.4 배시 셸 12.5 다른 언어들 12.6 정리 13장 애플리케이션 13.1 배경지식 13.2 BPF 도구 13.3 BPF 원 라이너 13.4 BPF 원 라이너 사례 13.5 정리 14장 커널 14.1 배경지식 14.2 전략 14.3 기존 도구 14.4 BPF 도구 14.5 BPF 원 라이너 14.6 BPF 원 라이너 사례 14.7 도전 과제 14.8 정리 15장 컨테이너 15장 컨테이너 15.1 배경지식 15.2 기존 도구 15.3 BPF 도구 15.4 BPF 원 라이너 15.5 연습 문제 15.6 정리 16장 컨테이너 16.1 배경지식 16.2 기존 도구 16.3 게스트 BPF 도구 16.4 호스트 BPF 도구 16.5 정리 17장 컨테이너 17.1 벡터와 PCP 17.2 그라파나와 PCP 17.3 Cloudflare eBPF Prometheus Exporter(with Grafana) 17.4 kubectl-trace 17.5 기타 도구 17.6 정리 18장 컨테이너 18.1 일반적인 이벤트 발생 빈도와 오버헤드 18.2 49Hz 또는 99Hz 주기로 샘플링 18.3 노란 돼지와 회색 쥐 18.4 대상 소프트웨어 작성 18.5 시스템 콜 배우기 18.6 심플하게 하기 18.7 이벤트 누락 18.8 스택 트레이스 누락 18.9 출력 시 심벌(함수 이름) 누락 18.10 트레이싱할 때 함수 누락 18.11 피드백 루프 18.12 이벤트 드롭 부록 A bpftrace 원 라이너 6장 CPU 7장 메모리 8장 파일 시스템 9장 디스크 I/O 10장 네트워킹 11장 보안 13장 애플리케이션 14장 커널 부록 B bpftrace Cheat Sheet 부록 C BCC 도구 개발 리소스 다섯 가지 팁 도구 사용 예시 추가 정보 부록 D C BPF C로 프로그램하는 이유 다섯 가지 팁 C 프로그램 perf C 추가 정보 부록 E BPF 명령어 헬퍼 매크로 명령어 인코딩 참고 자료 부록 F 용어사전 부록 G 참고문헌 |
Brendan Gregg
브렌던 그레그의 다른 상품
이호연의 다른 상품
|
[이 책에서 다루는 내용]
- 트레이싱의 핵심 개념과 주요 BPF 프론트엔드인 BCC, bpftrace - 바로 실행해 볼 수 있는 150개 이상의 강력한 BPF 도구 - 컴파일, JIT 컴파일, 인터프리터 언어를 계측, 분석하는 방법 - 상호 보완적인 분석 도구들을 사용해 성능 향상점을 빠르게 찾아내는 방법 - 다양한 지표, 스택 트레이스 및 커스텀 지연 시간 히스토그램을 생성하는 방법 - BPF 기반으로 만든 고급 도구 활용 방법 - 효과적인 분석을 위한 실용적인 전략과 팁 |
|
이 책은 리눅스 운영체제의 서브시스템에 대한 배경지식부터 설명하며 성능 분석 전략, 성능 분석에 활용할 수 있는 전통적인 도구들 그리고 실용적인 BPF 도구들을 알려 줍니다. 이로써 독자들은 리눅스의 주요한 성능 계측 지점의 의미를 배울 수 있고 성능 분석을 위한 BPF 도구를 스스로 작성할 수 있게 되며, 리눅스 운영체제를 기존과는 다른 관점에서 이해하게 됩니다. 리눅스 운영체제를 성능 분석 관점에서 이해하고 싶거나 BPF 도구를 만들고 싶은 분들께 이 책을 추천합니다. - 정준영 (카카오엔터프라이즈)
|
|
이 책은 오랜 시간 알고 있었지만 머릿속에서 일목요연하게 정리되지는 않았던 리눅스 지식 및 성능 트러블슈팅 기술을 배경지식→BPF 활용 가능성→(이용) 전략→기존 도구→BPF 도구→BPF 원 라이너→선택 연습 문제의 과정을 통해 완벽하게 정리해 줍니다. 시스템에 대한 이해도를 높이고 advanced system engineer로 거듭나고 싶은 독자에게 권합니다. - 최규민 (국가정보자원관리원)
|