BPF를 활용한 리눅스 시스템 트레이싱(위키북스 시스템 & 네트워크 시리즈 10)
시스템의 가시성 확보와 성능 최적화, 트러블슈팅을 위한
Regular price
$30.34
Sale price
Regular price
✈️
Estimated delivery date 예상 배송일
Standard Shipping
불러오는 중...
주문일로부터 8-12 영업일
Express Shipping
불러오는 중...
주문일로부터 6-8 영업일
리눅스 시스템에서 발생하는 문제를 찾고 해결하기 위한 방법을 알려드립니다!
이 책은 리눅스 시스템을 관찰하기 위한 도구로 BPF를 소개합니다. BPF를 활용하면 코드의 변경 없이 애플리케이션의 동작과 상태를 깊게 분석할 수 있습니다. BPF는 시스템의 부하를 최소화하면서 프로그래밍 가능한 유연한 트레이싱 환경을 제공함으로써 리눅스 환경에서 서비스를 개발하고 운영하는 소프트웨어 엔지니어에게 트러블슈팅과 디버깅에 필요한 커널과 사용자 영역을 아울러 시스템을 관통하는 시각을 제공합니다.
★ 이 책에서 다루는 내용 ★
◎ 트레이싱 도구로서의 BPF 소개
◎ BCC 및 bpftrace 프로그래밍
◎ BPF 기반 트레이싱 도구 소개와 활용
◎ 시스템 리소스, 프로그래밍 언어별 BPF 활용법
◎ 분석 결과의 가시화
◎ 컨테이너 및 쿠버네티스 환경에서의 BPF 사용법
이 책은 리눅스 시스템을 관찰하기 위한 도구로 BPF를 소개합니다. BPF를 활용하면 코드의 변경 없이 애플리케이션의 동작과 상태를 깊게 분석할 수 있습니다. BPF는 시스템의 부하를 최소화하면서 프로그래밍 가능한 유연한 트레이싱 환경을 제공함으로써 리눅스 환경에서 서비스를 개발하고 운영하는 소프트웨어 엔지니어에게 트러블슈팅과 디버깅에 필요한 커널과 사용자 영역을 아울러 시스템을 관통하는 시각을 제공합니다.
★ 이 책에서 다루는 내용 ★
◎ 트레이싱 도구로서의 BPF 소개
◎ BCC 및 bpftrace 프로그래밍
◎ BPF 기반 트레이싱 도구 소개와 활용
◎ 시스템 리소스, 프로그래밍 언어별 BPF 활용법
◎ 분석 결과의 가시화
◎ 컨테이너 및 쿠버네티스 환경에서의 BPF 사용법
Couldn't load pickup availability
출판사 리뷰
출판사 리뷰
목차
목차
▣ 01장: 들어가며
▣ 02장: BPF란?
2.1 cBPF
2.2 eBPF
2.3 BCC, bpftrace, 그리고 IO Visor
2.4 트레이싱과 샘플링
▣ 03장: BPF의 개념
3.1 BPF 아키텍처
3.2 BPF 프로그램 타입
3.3 맵과 오브젝트 피닝
__3.3.1 맵
__3.3.2 오브젝트 피닝
3.4 BTF와 CO-RE
3.5 테일 콜과 BPF to BPF 콜
3.6 JIT
3.7 XDP와 하드웨어 오프로드
3.8 헬퍼 함수
3.9 검사기
3.10 제약사항
3.11 다른 방법과 비교
__3.11.1 커널 모듈
__3.11.2 시스템 탭
__3.11.3 LTTng
__3.11.4 Perf
__3.11.5 {f,l,s,uf}trace
▣ 04장: 이벤트
4.1 kprobe
4.2 uprobe
4.3 트레이스포인트
4.4 USDT
4.5 소프트웨어 및 하드웨어 이벤트
▣ 05장: 스택 트레이스
5.1 스택 트레이스 종류
__5.1.1 프레임포인터
__5.1.2 DWARF
__5.1.3 LBR
__5.1.4 ORC
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.2 BCC tools
6.3 bpftrace
__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.2 BPF 초기화
7.3 이벤트
__7.3.1 kprobe와 kretprobe
__7.3.2 트레이스포인트
__7.3.3 kfunc와 kretfunc
__7.3.4 uprobe와 uretprobe
__7.3.5 USDT
7.4 맵
__7.4.1 파이썬에서 맵 다루기
7.5 커널 및 사용자 영역의 데이터
7.6 출력 채널
7.7 심벌 처리
7.8 스택 트레이스
7.9 TC와 XDP
7.10 오브젝트 피닝
7.11 테일 콜
▣ 08장: BPF tool과 BTF
8.1 BPF tool
8.2 BTF
▣ 09장: 시스템과 애플리케이션
9.1 시스템
__9.1.1 CPU
__9.1.2 메모리
__9.1.3 파일 시스템
__9.1.4 블록 I/O
__9.1.5 네트워크
9.2 애플리케이션
__9.2.1 C/C++
__9.2.2 고랭
__9.2.3 러스트
__9.2.4 자바
__9.2.5 파이썬
__9.2.6 노드
__9.2.7 루비
__9.2.8 펄
__9.2.9 PHP
__9.2.10 Bash
▣ 10장: 컨테이너 및 클러스터 환경
10.1 컨테이너
__10.1.1 cgroup
__10.1.2 네임스페이스
__10.1.3 컨테이너 필터링
__10.1.4 USDT, UPROBE
10.2 쿠버네티스
__10.2.1 kubectl Trace
__10.2.2 Inspektor Gadget
▣ 11장: 모니터링
11.1 ebpf exporter
11.2 tracee
▣ 부록A: 트러블슈팅
▣ 부록B: 저수준 BPF 프로그래밍
B.1 libbpf 프로그래밍
B.2 커널의 BPF 예제
▣ 부록C: 결함 주입
▣ 부록D: 실습 환경 구축
▣ 02장: BPF란?
2.1 cBPF
2.2 eBPF
2.3 BCC, bpftrace, 그리고 IO Visor
2.4 트레이싱과 샘플링
▣ 03장: BPF의 개념
3.1 BPF 아키텍처
3.2 BPF 프로그램 타입
3.3 맵과 오브젝트 피닝
__3.3.1 맵
__3.3.2 오브젝트 피닝
3.4 BTF와 CO-RE
3.5 테일 콜과 BPF to BPF 콜
3.6 JIT
3.7 XDP와 하드웨어 오프로드
3.8 헬퍼 함수
3.9 검사기
3.10 제약사항
3.11 다른 방법과 비교
__3.11.1 커널 모듈
__3.11.2 시스템 탭
__3.11.3 LTTng
__3.11.4 Perf
__3.11.5 {f,l,s,uf}trace
▣ 04장: 이벤트
4.1 kprobe
4.2 uprobe
4.3 트레이스포인트
4.4 USDT
4.5 소프트웨어 및 하드웨어 이벤트
▣ 05장: 스택 트레이스
5.1 스택 트레이스 종류
__5.1.1 프레임포인터
__5.1.2 DWARF
__5.1.3 LBR
__5.1.4 ORC
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.2 BCC tools
6.3 bpftrace
__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.2 BPF 초기화
7.3 이벤트
__7.3.1 kprobe와 kretprobe
__7.3.2 트레이스포인트
__7.3.3 kfunc와 kretfunc
__7.3.4 uprobe와 uretprobe
__7.3.5 USDT
7.4 맵
__7.4.1 파이썬에서 맵 다루기
7.5 커널 및 사용자 영역의 데이터
7.6 출력 채널
7.7 심벌 처리
7.8 스택 트레이스
7.9 TC와 XDP
7.10 오브젝트 피닝
7.11 테일 콜
▣ 08장: BPF tool과 BTF
8.1 BPF tool
8.2 BTF
▣ 09장: 시스템과 애플리케이션
9.1 시스템
__9.1.1 CPU
__9.1.2 메모리
__9.1.3 파일 시스템
__9.1.4 블록 I/O
__9.1.5 네트워크
9.2 애플리케이션
__9.2.1 C/C++
__9.2.2 고랭
__9.2.3 러스트
__9.2.4 자바
__9.2.5 파이썬
__9.2.6 노드
__9.2.7 루비
__9.2.8 펄
__9.2.9 PHP
__9.2.10 Bash
▣ 10장: 컨테이너 및 클러스터 환경
10.1 컨테이너
__10.1.1 cgroup
__10.1.2 네임스페이스
__10.1.3 컨테이너 필터링
__10.1.4 USDT, UPROBE
10.2 쿠버네티스
__10.2.1 kubectl Trace
__10.2.2 Inspektor Gadget
▣ 11장: 모니터링
11.1 ebpf exporter
11.2 tracee
▣ 부록A: 트러블슈팅
▣ 부록B: 저수준 BPF 프로그래밍
B.1 libbpf 프로그래밍
B.2 커널의 BPF 예제
▣ 부록C: 결함 주입
▣ 부록D: 실습 환경 구축
저자
저자
정찬훈
올해로 10년 차가 된 소프트웨어 엔지니어입니다. 임베디드 환경에서 DRM 개발을 시작으로 컨테이너 기반 아키텍처 리서치를 거쳐, 지금은 통합검색 엣지 플랫폼을 개발하고 있습니다. 시스템의 성능 개선과 컨테이너 관련 기술에 관심이 많고 개발환경과 키보드를 꾸미는 걸 좋아합니다.
Payment & Security
Payment methods
Your payment information is processed securely. We do not store credit card details nor have access to your credit card information.

