HOME > 상세정보

상세정보

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

자료유형
단행본
개인저자
Gregg, Brendan 이호연, 역
서명 / 저자사항
BPF 성능 분석 도구 : BPF 트레이싱을 통한 리눅스 시스템 관측가능성과 성능 향상 / 브렌던 그레그 지음 ; 이호연 옮김
발행사항
서울 :   인사이트,   2021  
형태사항
xxviii, 944 p. : 삽화 ; 24 cm
총서사항
프로그래밍 인사이트
원표제
BPF performance tools : Linux system and application observability
ISBN
9788966263127
일반주기
BPF = Berkeley Packet Filter  
부록: A. bpftrace 원 라이너, B. bpftrace cheat sheet, C. BCC 도구 개발 외  
서지주기
참고문헌(p. 905-915)과 색인수록
일반주제명
Operating systems (Computers) --Evaluation Computer networks --Managemen Application software --Development
000 00000cam c2200205 c 4500
001 000046101246
005 20220106124156
007 ta
008 211215s2021 ulka b 001c kor
020 ▼a 9788966263127 ▼g 93000
035 ▼a (KERIS)BIB000015912629
040 ▼a 211014 ▼c 211014 ▼d 211009
041 1 ▼a kor ▼h eng
082 0 4 ▼a 005.4469 ▼2 23
085 ▼a 005.446 ▼2 DDCK
090 ▼a 005.446 ▼b 2021z1
100 1 ▼a Gregg, Brendan
245 1 0 ▼a BPF 성능 분석 도구 : ▼b BPF 트레이싱을 통한 리눅스 시스템 관측가능성과 성능 향상 / ▼d 브렌던 그레그 지음 ; ▼e 이호연 옮김
246 1 9 ▼a BPF performance tools : ▼b Linux system and application observability
260 ▼a 서울 : ▼b 인사이트, ▼c 2021
300 ▼a xxviii, 944 p. : ▼b 삽화 ; ▼c 24 cm
490 1 0 ▼a 프로그래밍 인사이트
500 ▼a BPF = Berkeley Packet Filter
500 ▼a 부록: A. bpftrace 원 라이너, B. bpftrace cheat sheet, C. BCC 도구 개발 외
504 ▼a 참고문헌(p. 905-915)과 색인수록
630 0 0 ▼a Linux
650 0 ▼a Operating systems (Computers) ▼x Evaluation
650 0 ▼a Computer networks ▼x Managemen
650 0 ▼a Application software ▼x Development
700 1 ▼a 이호연, ▼e
830 0 ▼a 프로그래밍 인사이트
900 1 0 ▼a 그레그, 브렌던, ▼e

No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 005.446 2021z1 등록번호 121258945 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 2 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 005.446 2021z1 등록번호 521006677 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 3 소장처 세종학술정보원/과학기술실/ 청구기호 005.446 2021z1 등록번호 151357376 도서상태 대출가능 반납예정일 예약 서비스 M
No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 005.446 2021z1 등록번호 121258945 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 2 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 005.446 2021z1 등록번호 521006677 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 세종학술정보원/과학기술실/ 청구기호 005.446 2021z1 등록번호 151357376 도서상태 대출가능 반납예정일 예약 서비스 M

컨텐츠정보

책소개

BPF 기반 성능 분석 도구들은 시스템과 애플리케이션에 대해 기존과는 차원이 다른 가시성을 제공한다. 이를 통해 성능 최적화, 문제 해결, 보안 강화, 비용 절감 등의 효과를 얻을 수 있다. 《BPF 성능 분석 도구》는 이러한 관측가능성 도구를 사용하는 방법을 안내한다.

BPF의 선구자이자 전문가인 저자는 바로 실행해 볼 수 있는 150개 이상의 성능 분석 및 디버깅 도구를 소개하고, 사용 방법을 설명한다. 또한, 독자가 스스로 성능 분석 도구를 제작할 수 있도록 단계별로 안내한다. 이 책을 통해서 CPU, 메모리, 디스크, 파일 시스템, 네트워킹, 언어, 애플리케이션, 컨테이너, 하이퍼바이저, 보안 및 커널을 분석하는 방법에 대해서 배울 수 있다. 저자는 기본 도구부터 고급 도구까지 사용해서 각 컴포넌트를 분석하고, 독자가 리눅스 시스템이나 애플리케이션에 대해 깊이 있고 유용한 시각을 가질 수 있도록 도와준다.

BPF 도구를 통한 성능 최적화, 문제 해결 및 시스템 내부 구조 분석

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

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

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

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


정보제공 : Aladin

저자소개

브렌던 그레그(지은이)

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

이호연(옮긴이)

2018년부터 리눅스 커널 BPF/XDP, uftrace 등의 오픈 소스 프로젝트에 기여해 오고 있으며, 2019년부터는 공개 SW 개발자센터에서 글로벌 전문 개발자(오픈 프런티어)로 활동했습니다. 시스템의 동작 원리를 탐구하는 데 관심이 많아 트레이싱 기술을 활용해 리눅스 커널 내부를 지속적으로 분석해 오고 있으며, 스토리지와 네트워크 성능 분석 관련 주제로 USENIX Vault 19, SOSCON 2019에서 발표를 진행하기도 했습니다. 저서로는 《Kong: Becoming a King of API Gateways》(Bleeding Edge, 2018)가 있습니다.

정보제공 : Aladin

목차

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 참고문헌

관련분야 신착자료