728x90
  • 한빛미디어의 나는 리뷰어다 2020에 선정되어 도서를 지원받아 작성한 글입니다.

https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=238212504

 

BPF로 리눅스 관측 가능성 향상하기

시스템 엔지니어를 위한 리눅스 커널의 BPF VM에 관한 전문 지식을 제공하는 책이다. BPF 프로그램의 수명 주기를 자세히 설명할 뿐만 아니라, 커널에서 벌어지는 사건들을 감시, 추적, 관찰하는 ��

www.aladin.co.kr

  • 프로그램 개발에서 가장 중요한 요인은 프로그램의 성능 그 자체일 것이다. 대개는 로그 기능을 이용하여 프로그램의 정상 동작 여부 및 성능을 평가하는 방식을 사용한다. 이 방식 대비 상대적으로 최근 관측 가능성이라는 개념이 제시되었는데, 이는 응용 프로그램을 실행시켜 임의의 입력을 제시할 때의 응답 특성을 확인한다.

  • 단순한 시스템이라면 이러한 방식이 유용하게 쓰일 수 있지만, 최근의 리눅스 시스템은 도커 등 컨테이너 기능을 활발하게 쓰면서 기존보다 훨씬 복잡한 구조를 갖게 되었고, 이로 인해 관측 가능성 방식에는 한계가 존재하게 된다. 이러한 문제를 해결하기 위해 BPF라는 도구가 제시된다. 이는 커널의 subsystem의 일종이며, 시스템의 오작동을 방지하여 안전하게 성능 측정을 가능하게 한다. 커널부에 문제가 일어날 소지가 없는 코드를 커널에 로드 후, 프로그램의 시작 지점을 기준으로 응답 특성을 제시한다.

  • 리눅스 컴파일러단에서 지원하는 Virtual Machine 기능이므로, BPF는 C언어를 통해 작성하게 된다( <#include linux/bpf.h> 헤더를 사용한다고 한다 ). 작성한 코드에 bpf 헤더에 존재하는 명령어를 이용하여 시스템 동작 특성을 추적하거나, 네트워크 트래픽을 조사하는 등의 검사를 진행할 수 있다.

  • BPF 라이브러리의 최대 강점은 네트워크, 추적 면에서 매우 다양한 기능을 제공한다는 점이다. 현재 한국어로 번역된 BPF 관련 도서는 해당 도서가 유일한데, 읽어 본 결과 다양한 예제 코드를 기반으로 한 BPF 라이브러리 사용 가이드의 기능을 다소 충실히 구현하고 있었다.

728x90

+ Recent posts