ebpf 사용
기본적으로 ebpf 에서 직접적으로 돌아가는 code를 만드는 것은 잘 하지 않는다고 한다. 대체로 framework 를 통해서 coding 을 한다. bcc, bpftrace 같은 tool 도 iovisor 라는 framework 위에 만들어졌다.[ref. 1]
- iovisor/bcc: BCC - Tools for BPF-based Linux IO analysis, networking, monitoring, and more
- iovisor/bpftrace: High-level tracing language for Linux eBPF
ref. 1 의 예제를 보면, tcp 통신에서 보내고, 받은 bytes 를 보여주는 program, tcplife 가 나온다. 이것을 기존의 kernel technology 로 만들 수 있는데, 그러면 performance overhead 가 더 생길 것이고, security issue 도 있을 것이라 한다.
packet 수 보다는 적은 TCP session event 만 trace 한다. 그래서 모든 packet 을 trace 하는 것보다 overhead 를 줄인다.
bpfcc-tools 사용
- 쿠…sal: [컴] wsl2 에서 bcc 설치 및 실행
- bcc/docs/tutorial.md at master · iovisor/bcc · GitHub : 11개 tool 에 대한 설명이 있다.
- execsnoop
- opensnoop
- ext4slower (or btrfs, xfs, zfs*)
- biolatency
- biosnoop
- cachestat
- tcpconnect
- tcpaccept
- tcpretrans
- runqlat
- profile
bpftrace
bcc tools 같은 기능을 원하는대로 변경(customize)하려면, bpftrace 를 사용할 수 있다. bcc 만큼 자유롭게 customize 할 수는 없다.
댓글 없음:
댓글 쓰기