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 | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
No. 2 | 소장처 과학도서관/Sci-Info(1층서고)/ | 청구기호 005.446 2021z1 | 등록번호 521006677 | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
No. 3 | 소장처 세종학술정보원/과학기술실/ | 청구기호 005.446 2021z1 | 등록번호 151357376 | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
No. | 소장처 | 청구기호 | 등록번호 | 도서상태 | 반납예정일 | 예약 | 서비스 |
---|---|---|---|---|---|---|---|
No. 1 | 소장처 과학도서관/Sci-Info(1층서고)/ | 청구기호 005.446 2021z1 | 등록번호 121258945 | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
No. 2 | 소장처 과학도서관/Sci-Info(1층서고)/ | 청구기호 005.446 2021z1 | 등록번호 521006677 | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
No. | 소장처 | 청구기호 | 등록번호 | 도서상태 | 반납예정일 | 예약 | 서비스 |
---|---|---|---|---|---|---|---|
No. 1 | 소장처 세종학술정보원/과학기술실/ | 청구기호 005.446 2021z1 | 등록번호 151357376 | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
컨텐츠정보
책소개
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 기반으로 만든 고급 도구 활용 방법
● 효과적인 분석을 위한 실용적인 전략과 팁
정보제공 :

저자소개
브렌던 그레그(지은이)
넷플릭스의 선임 성능 엔지니어입니다. 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)가 있습니다.

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