BPF 성능 분석 도구 (BPF 트레이싱을 통한 리눅스 시스템 관측가능성과 성능 향상)

BPF 성능 분석 도구 (BPF 트레이싱을 통한 리눅스 시스템 관측가능성과 성능 향상)

$53.14
Description
BPF 도구를 통한 성능 최적화, 문제 해결 및 시스템 내부 구조 분석
BPF 기반 성능 분석 도구들은 시스템과 애플리케이션에 대해 기존과는 차원이 다른 가시성을 제공합니다. 이를 통해 성능 최적화, 문제 해결, 보안 강화, 비용 절감 등의 효과를 얻을 수 있습니다. 《BPF 성능 분석 도구》는 이러한 관측가능성 도구를 사용하는 방법을 안내합니다.
BPF의 선구자이자 전문가인 저자는 바로 실행해 볼 수 있는 150개 이상의 성능 분석 및 디버깅 도구를 소개하고, 사용 방법을 설명합니다. 또한, 독자가 스스로 성능 분석 도구를 제작할 수 있도록 단계별로 안내합니다. 이 책을 통해서 CPU, 메모리, 디스크, 파일 시스템, 네트워킹, 언어, 애플리케이션, 컨테이너, 하이퍼바이저, 보안 및 커널을 분석하는 방법에 대해서 배울 수 있습니다. 저자는 기본 도구부터 고급 도구까지 사용해서 각 컴포넌트를 분석하고, 독자가 리눅스 시스템이나 애플리케이션에 대해 깊이 있고 유용한 시각을 가질 수 있도록 도와줍니다.
《BPF 성능 분석 도구》는 엔터프라이즈/클라우드 환경에서 최신 리눅스를 사용하는 시스템 관리자, 개발자, 지원 스태프뿐 아니라 모든 IT 전문가에게 귀중한 자료가 될 것입니다

이 책은 리눅스 운영체제의 서브시스템에 대한 배경지식부터 설명하며 성능 분석 전략, 성능 분석에 활용할 수 있는 전통적인 도구들 그리고 실용적인 BPF 도구들을 알려 줍니다. 이로써 독자들은 리눅스의 주요한 성능 계측 지점의 의미를 배울 수 있고 성능 분석을 위한 BPF 도구를 스스로 작성할 수 있게 되며, 리눅스 운영체제를 기존과는 다른 관점에서 이해하게 됩니다. 리눅스 운영체제를 성능 분석 관점에서 이해하고 싶거나 BPF 도구를 만들고 싶은 분들께 이 책을 추천합니다. - 정준영, 카카오엔터프라이즈

이 책은 오랜 시간 알고 있었지만 머릿속에서 일목요연하게 정리되지는 않았던 리눅스 지식 및 성능 트러블슈팅 기술을 배경지식→BPF 활용 가능성→(이용) 전략→기존 도구→BPF 도구→BPF 원 라이너→선택 연습 문제의 과정을 통해 완벽하게 정리해 줍니다. 시스템에 대한 이해도를 높이고 advanced system engineer로 거듭나고 싶은 독자에게 권합니다. - 최규민, 국가정보자원관리원

[이 책에서 다루는 내용]
● 트레이싱의 핵심 개념과 주요 BPF 프론트엔드인 BCC, bpftrace
● 바로 실행해 볼 수 있는 150개 이상의 강력한 BPF 도구
● 컴파일, JIT 컴파일, 인터프리터 언어를 계측, 분석하는 방법
● 상호 보완적인 분석 도구들을 사용해 성능 향상점을 빠르게 찾아내는 방법
● 다양한 지표, 스택 트레이스 및 커스텀 지연 시간 히스토그램을 생성하는 방법
● BPF 기반으로 만든 고급 도구 활용 방법
● 효과적인 분석을 위한 실용적인 전략과 팁
저자

브렌던그레그

넷플릭스의선임성능엔지니어입니다.BPF(eBPF)의주요기여자로주요BPF프론트엔드개발과관리를도왔고,BPF를관측가능성용도로사용하는방식을개척했으며,수많은BPF기반성능분석도구들을만들었습니다.대표적인저서로는《SystemsPerformance:EnterpriseandtheCloud2/E》(Pearson,2020)이있습니다.

목차

1장소개
1.1BPF/eBPF란?
1.2트레이싱,스누핑,샘플링,프로파일링과관측가능성
1.3BCC,bpftrace그리고IOVisor란?
1.4BCC살펴보기
1.5BPF트레이싱가시성
1.6동적계측:kprobe와uprobes
1.7정적계측:tracepoint와USDT
1.8bpftrace살펴보기:open()트레이싱
1.9BCC살펴보기:open()트레이싱
1.10정리

2장기술배경
2.1BPF도식화하기
2.2BPF
2.3확장BPF(eBPF)
2.4스택트레이스추적
2.5플레임그래프
2.6이벤트소스
2.7kprobe
2.8uprobes
2.9tracepoint
2.10USDT
2.11동적USDT
2.12PMC
2.13perf_events
2.14정리

3장성능분석
3.1개요
3.2성능분석방법론
3.360초리눅스성능분석
3.4BCC도구체크리스트
3.5정리

4장BCC
4.1BCC컴포넌트
4.2BCC의기능
4.3BCC설치
4.4BCC도구
4.5funccount
4.6stackcount
4.7trace
4.8argdist
4.9도구문서
4.10BCC도구개발하기
4.11BCC내부구조
4.12BCC디버깅
4.13정리

5장bpftrace
5.1bpftrace컴포넌트
5.2bpftrace의기능
5.3bpftrace설치
5.4bpftrace도구
5.5bpftrace원라이너
5.6bpftrace문서
5.7bpftrace프로그래밍
5.8bpftrace사용법
5.9bpftraceprobe유형
5.10bpftrace흐름제어
5.11bpftrace연산자
5.12bpftrace변수
5.13bpftrace함수
5.14bpftrace맵함수
5.15bpftrace향후작업
5.16bpftrace내부구조
5.17bpftrace디버깅
5.18정리

6장CPU
6.1배경지식
6.2기존도구
6.3BPF도구
6.4BPF원라이너
6.5선택연습문제
6.6정리

7장메모리
7.1배경지식
7.2기존도구
7.3BPF도구
7.4BPF원라이너
7.5선택연습문제
7.6정리

8장파일시스템
8.1배경지식
8.2기존도구
8.3BPF도구
8.4BPF원라이너
8.5선택연습문제
8.6정리

9장디스크I/O
9.1배경지식
9.2기존도구
9.3BPF도구
9.4BPF원라이너
9.5선택연습문제
9.6정리

10장네트워킹
10.1배경지식
10.2기존도구
10.3BPF도구
10.4BPF원라이너
10.5선택연습문제
10.6정리

11장보안
11.1배경지식
11.2BPF도구
11.3BPF원라이너
11.4정리

12장언어
12.1배경지식
12.2C
12.3자바
12.4배시셸
12.5다른언어들
12.6정리

13장애플리케이션
13.1배경지식
13.2BPF도구
13.3BPF원라이너
13.4BPF원라이너사례
13.5정리

14장커널
14.1배경지식
14.2전략
14.3기존도구
14.4BPF도구
14.5BPF원라이너
14.6BPF원라이너사례
14.7도전과제
14.8정리

15장컨테이너
15장컨테이너
15.1배경지식
15.2기존도구
15.3BPF도구
15.4BPF원라이너
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.3CloudflareeBPFPrometheusExporter(withGrafana)
17.4kubectl-trace
17.5기타도구
17.6정리

18장컨테이너
18.1일반적인이벤트발생빈도와오버헤드
18.249Hz또는99Hz주기로샘플링
18.3노란돼지와회색쥐
18.4대상소프트웨어작성
18.5시스템콜배우기
18.6심플하게하기
18.7이벤트누락
18.8스택트레이스누락
18.9출력시심벌(함수이름)누락
18.10트레이싱할때함수누락
18.11피드백루프
18.12이벤트드롭

부록Abpftrace원라이너
6장CPU
7장메모리
8장파일시스템
9장디스크I/O
10장네트워킹
11장보안
13장애플리케이션
14장커널

부록BbpftraceCheatSheet

부록CBCC도구개발
리소스
다섯가지팁
도구사용예시
추가정보

부록DCBPF
C로프로그램하는이유
다섯가지팁
C프로그램
perfC
추가정보

부록EBPF명령어
헬퍼매크로
명령어
인코딩
참고자료

부록F용어사전

부록G참고문헌