bpftrace로 리눅스 시스템 콜과 지연시간 디버깅하기
특정 프로세스가 어떤 시스템 콜을 얼마나 자주 호출하는지, 혹은 파일 하나를 여는 데 왜 갑자기 수십 밀리초가 걸리는지 알아내야 할 때 strace부터 떠올리기 쉽다. 하지만 strace는 매 시스템 콜마다 대상…
특정 프로세스가 어떤 시스템 콜을 얼마나 자주 호출하는지, 혹은 파일 하나를 여는 데 왜 갑자기 수십 밀리초가 걸리는지 알아내야 할 때 strace부터 떠올리기 쉽다. 하지만 strace는 매 시스템 콜마다 대상…
라즈베리파이 OS에는 이미 최신 커널이 올라가 있고, CONFIG_BPF_SYSCALL과 CONFIG_BPF_JIT도 기본으로 켜져 있어서 단순한 eBPF 프로그램은 커널을 새로 빌드하지 않아도 로드된다. 문제는 그다음부터다. bpftrace나 최신 BCC 도구 상당수는 BTF(BPF Type Format)…
리눅스 커널의 CPU 스케줄러(CFS 등)는 범용 워크로드에 맞춰 설계됐지만, 게이밍처럼 짧은 지연시간이 중요한 워크로드와 데이터센터의 처리량 위주 워크로드, 배터리 절약이 우선인 모바일 워크로드를 하나의 스케줄링 정책으로 동시에 만족시키기는 어렵다. 과거에는…
커널 재컴파일 없이 안전하게 실행되는 eBPF 프로그램으로 Linux 커널을 실시간 추적하는 방법. bpftrace, BCC, kprobe, tracepoint 완벽 가이드.