BPF를 활용한 리눅스 시스템 트레이싱 (시스템의 가시성 확보와 성능 최적화, 트러블슈팅을 위한)

BPF를 활용한 리눅스 시스템 트레이싱 (시스템의 가시성 확보와 성능 최적화, 트러블슈팅을 위한)

$28.68
Description
리눅스 시스템에서 발생하는 문제를 찾고 해결하기 위한 방법을 알려드립니다!

이 책은 리눅스 시스템을 관찰하기 위한 도구로 BPF를 소개합니다. BPF를 활용하면 코드의 변경 없이 애플리케이션의 동작과 상태를 깊게 분석할 수 있습니다. BPF는 시스템의 부하를 최소화하면서 프로그래밍 가능한 유연한 트레이싱 환경을 제공함으로써 리눅스 환경에서 서비스를 개발하고 운영하는 소프트웨어 엔지니어에게 트러블슈팅과 디버깅에 필요한 커널과 사용자 영역을 아울러 시스템을 관통하는 시각을 제공합니다.

★ 이 책에서 다루는 내용 ★

◎ 트레이싱 도구로서의 BPF 소개
◎ BCC 및 bpftrace 프로그래밍
◎ BPF 기반 트레이싱 도구 소개와 활용
◎ 시스템 리소스, 프로그래밍 언어별 BPF 활용법
◎ 분석 결과의 가시화
◎ 컨테이너 및 쿠버네티스 환경에서의 BPF 사용법
저자

정찬훈

올해로10년차가된소프트웨어엔지니어입니다.임베디드환경에서DRM개발을시작으로컨테이너기반아키텍처리서치를거쳐,지금은통합검색엣지플랫폼을개발하고있습니다.시스템의성능개선과컨테이너관련기술에관심이많고개발환경과키보드를꾸미는걸좋아합니다.

목차

▣01장:들어가며

▣02장:BPF란?
2.1cBPF
2.2eBPF
2.3BCC,bpftrace,그리고IOVisor
2.4트레이싱과샘플링

▣03장:BPF의개념
3.1BPF아키텍처
3.2BPF프로그램타입
3.3맵과오브젝트피닝
__3.3.1맵
__3.3.2오브젝트피닝
3.4BTF와CO-RE
3.5테일콜과BPFtoBPF콜
3.6JIT
3.7XDP와하드웨어오프로드
3.8헬퍼함수
3.9검사기
3.10제약사항
3.11다른방법과비교
__3.11.1커널모듈
__3.11.2시스템탭
__3.11.3LTTng
__3.11.4Perf
__3.11.5{f,l,s,uf}trace

▣04장:이벤트
4.1kprobe
4.2uprobe
4.3트레이스포인트
4.4USDT
4.5소프트웨어및하드웨어이벤트

▣05장:스택트레이스
5.1스택트레이스종류
__5.1.1프레임포인터
__5.1.2DWARF
__5.1.3LBR
__5.1.4ORC
5.2스택정보수집
5.3가시화
__5.3.1플레임그래프
__5.3.2플레임스코프

▣06장:BPF다루기
6.1환경설정
__6.1.1리눅스머신
__6.1.2커널과커널헤더
__6.1.3배포판별패키지
__6.1.4도커
6.2BCCtools
6.3bpftrace
__6.3.1예제로살펴보기
__6.3.2기본문법
__6.3.3프루브
__6.3.4필터
__6.3.5액션
__6.3.6변수
__6.3.7함수
__6.3.8복잡한구조체확인
__6.3.9플레임스코프

▣07장:BCC프로그래밍
7.1예제로살펴보기
7.2BPF초기화
7.3이벤트
__7.3.1kprobe와kretprobe
__7.3.2트레이스포인트
__7.3.3kfunc와kretfunc
__7.3.4uprobe와uretprobe
__7.3.5USDT
7.4맵
__7.4.1파이썬에서맵다루기
7.5커널및사용자영역의데이터
7.6출력채널
7.7심벌처리
7.8스택트레이스
7.9TC와XDP
7.10오브젝트피닝
7.11테일콜

▣08장:BPFtool과BTF
8.1BPFtool
8.2BTF

▣09장:시스템과애플리케이션
9.1시스템
__9.1.1CPU
__9.1.2메모리
__9.1.3파일시스템
__9.1.4블록I/O
__9.1.5네트워크
9.2애플리케이션
__9.2.1C/C++
__9.2.2고랭
__9.2.3러스트
__9.2.4자바
__9.2.5파이썬
__9.2.6노드
__9.2.7루비
__9.2.8펄
__9.2.9PHP
__9.2.10Bash

▣10장:컨테이너및클러스터환경
10.1컨테이너
__10.1.1cgroup
__10.1.2네임스페이스
__10.1.3컨테이너필터링
__10.1.4USDT,UPROBE
10.2쿠버네티스
__10.2.1kubectlTrace
__10.2.2InspektorGadget

▣11장:모니터링
11.1ebpfexporter
11.2tracee

▣부록A:트러블슈팅

▣부록B:저수준BPF프로그래밍
B.1libbpf프로그래밍
B.2커널의BPF예제

▣부록C:결함주입

▣부록D:실습환경구축