콘텐츠로 이동

bpftop - 라이브 eBPF 프로그램 모니터 치트시트

bpftop - 라이브 eBPF 프로그램 모니터 치트시트

bpftop (Netflix)는 호스트의 모든 실행 중인 eBPF 프로그램을 실시간으로 보는 터미널 UI입니다. 각 프로그램에 대해 평균 실행 시간, 초당 이벤트, 예상 CPU 사용량을 표시하며 실시간 업데이트됩니다. 어떤 eBPF 프로그램이 실행 중인지, 얼마나 자주 발동하는지, 얼마나 많은 오버헤드를 추가하는지 볼 수 있습니다. eBPF가 관찰성, 네트워킹, 보안 도구에 확산되면서 bpftop은 “어떤 eBPF가 실행 중이고 비용이 얼마인가?”라는 질문에 답합니다.

요구사항

  • eBPF 실행시간 통계 지원이 있는 Linux 커널
  • 루트 권한 (커널 BPF 통계 읽기)
  • bpftop은 실행 중 kernel.bpf_stats_enabled를 활성화하고 종료 시 복구

설치

방법명령어
설치 스크립트`curl -sSfL https://raw.githubusercontent.com/Netflix/bpftop/main/install.sh
Cargocargo install bpftop
바이너리GitHub Releases 페이지에서 다운로드
검증bpftop --version

실행

명령어설명
sudo bpftop라이브 TUI 실행
bpftop --help옵션 표시
bpftop --version버전

bpftop은 커널 BPF 통계를 읽고 bpf_stats_enabled를 전환하므로 루트로 실행해야 합니다.

디스플레이

의미
IDBPF 프로그램 ID
Name프로그램 이름
Type프로그램 타입 (kprobe, tracepoint, XDP, cgroup, …)
Period Avg Runtime (ns)마지막 기간의 실행당 평균 시간
Total Avg Runtime (ns)통계 활성화 이후 평균
Events/sec호출 속도
Est. CPU %이 프로그램의 예상 CPU 사용률

대화형 키

액션
/ 선택 이동
Enter선택된 프로그램에 대한 상세 그래프 열기
정렬런타임 / 이벤트 / CPU로 순서 (열)
q종료 (이전 bpf_stats_enabled 상태 복구)

살펴봐야 할 것

관찰해석
한 프로그램의 높은 Est. CPU %eBPF 프로그램이 실제 오버헤드 추가
높은 events/sec핫 훅이 매우 자주 발동
상승하는 평균 런타임프로그램이 시간에 따라 더 비싸짐
예상치 못한 프로그램알지 못한 eBPF

왜 중요한가

eBPF는 Cilium/Tetragon, Falco, Tracee, Pixie, 많은 프로파일러 같은 도구의 기반입니다. 각각 프로그램을 커널에 로드합니다. bpftop은 집계 풋프린트를 보고 호스트를 저하시키기 전에 오작동하거나 과열된 프로그램을 잡을 수 있는 단일 장소입니다.

일반적인 워크플로우

# 지금 실행 중인 eBPF 및 비용 보기
sudo bpftop

# 새로 배포된 eBPF 보안 에이전트의 오버헤드 검증
sudo bpftop   # 부하 하의 에이전트 프로그램의 Est. CPU % 보기

# 추적 도구가 일으키는 신비한 CPU 회귀 조사
sudo bpftop   # Est. CPU %로 정렬, 최상위 프로그램으로 드릴

bpftop vs 관련 도구

측면bpftopbpftoolbtop / htop
초점라이브 프로그램별 eBPF 메트릭BPF 객체 검사/관리전체 시스템 프로세스
실시간 비용예 (런타임, 이벤트, CPU)정적 목록프로세스 CPU/mem
UITUI 그래프CLITUI
최고의 용도eBPF 오버헤드 모니터링BPF 프로그램/맵 관리일반 모니터링

리소스