BPF를 설명하는 글을 보면 대개 “BPF는 버클리 패킷 필터(Berkeley Packet Filter)의 약자로….”라는 문장으로 시작되곤 합니다. 그러나 현재의 BPF는 패킷이나 필터링과 거의 관계가 없어서 ‘버클리 패킷 필터’의 약어라고 보기 힘듭니다. 고급 성능 분석 도구에 이용되는 등 다양한 분야에 사용 가능한 범용 실행 엔진을 일컫는 독립적인 기술이라 할 수 있죠. 하지만 BPF가 이렇게 확장된 계기를 만들었던 알렉세이 스타로보이토프(Alexei Starovoitov) 그리고 이 책의 저자 브렌던 그레그(Brendan Gregg)는 이름을 새로 짓는 게 너무나 어려워 그냥 ‘BPF’라 부르기로 합니다.

<BPF 성능 분석 도구>(브렌던 그레그 저, 이호연 역, 인사이트, 2021) 23p

이 책의 저자이자 BPF 메인 컨트리뷰터인 브렌던 그레그는 BPF를 관측가능성과 성능 분석 용도로 사용할 수 있음을 꿰뚫어 보고 성능 분석을 위한 수많은 BPF 도구를 개발했습니다. 저자는 BPF를 활용하면 시스템과 애플리케이션에 대한 기존의 가시성을 뛰어넘어, 마치 초능력이 생긴 것처럼 커널의 내부를 들여다 볼 수 있다고 강조합니다.

BPF 성능 분석 도구를 사용하면 시스템의 성능 향상, 비용 절감, 소프트웨어 문제점 해결에 도움을 주어 여러분의 시스템과 애플리케이션을 최대한으로 활용할 수 있습니다. 이 도구를 사용하면 기존의 도구보다 훨씬 깊이 있게 분석할 수 있으며, 프로덕션 환경에서 시스템에 관계된 어떠한 의문점에 대해서도 즉시 해결책을 얻을 수 있습니다.

《BPF 성능 분석 도구》는 BPF의 수많은 활용법 중 성능 분석과 관측가능성에 초점을 맞추고 있습니다. 각 분석 대상(CPU, 메모리, 파일 시스템 등)별 성능 분석에 필요한 배경지식을 제공한 다음, 분석 대상별 BPF 도구를 소개하고 사용 방법을 설명합니다. 또한 독자 스스로 성능 분석 도구를 제작할 수 있도록 단계별로 안내합니다.

이 책에서 보여주는 도구들은 기능을 임의로 보여주기 위해 개발한 것이 아니라 저자가 넷플릭스에서 일하면서 실제로 문제 해결에 사용한 것입니다. 기존 분석 도구로는 해결이 되지 않던 프로덕션 이슈를 해결하기 위해 만든 도구들이어서 실무에서 참고하고 활용할 수 있습니다. 또 성능 분석 도구를 제작할 수 있도록 상세하게 안내하고 있어 상황에 맞는 도구가 없을 때 자신만의 도구를 제작할 수도 있습니다.

● 트레이싱의 핵심 개념과 주요 BPF 프론트엔드인 BCC, bpftrace

● 바로 실행해 볼 수 있는 150개 이상의 강력한 BPF 도구

● 컴파일, JIT 컴파일, 인터프리터 언어를 계측, 분석하는 방법

● 상호 보완적인 분석 도구들을 사용해 성능 향상점을 빠르게 찾아내는 방법

● 다양한 지표, 스택 트레이스 및 커스텀 지연 시간 히스토그램을 생성하는 방법

● BPF 기반으로 만든 고급 도구 활용 방법

● 효과적인 분석을 위한 실용적인 전략과 팁

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

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

이 책에 나오는 150여 가지의 다양한 도구를 배우는 것도 의미가 있지만 무엇보다 BPF 도구로 무엇을 할 것인지, 어디에 활용해야 하는지를 아는 것이 중요합니다. 성능 분석에 필요한 배경지식과 다양한 예제를 통해 자신이 겪고 있는 문제 상황에 대한 통찰을 얻을 수 있을 것입니다.

《BPF 성능 분석 도구》를 통해 리눅스 커널과 BPF, 성능 분석에 대해 이해하고 실무에 활용해 보고 나아가 자신만의 도구를 만들어 보세요.

《BPF 성능 분석 도구》는 다음 서점에서 구매하실 수 있습니다.

교보문고 | YES24 | 알라딘 | 인터파크