bpftrace로 리눅스 시스템 콜과 지연시간 디버깅하기

특정 프로세스가 어떤 시스템 콜을 얼마나 자주 호출하는지, 혹은 파일 하나를 여는 데 왜 갑자기 수십 밀리초가 걸리는지 알아내야 할 때 strace부터 떠올리기 쉽다. 하지만 strace는 매 시스템 콜마다 대상…

Continue Readingbpftrace로 리눅스 시스템 콜과 지연시간 디버깅하기

eBPF를 위한 라즈베리파이 커널 빌드 가이드

라즈베리파이 OS에는 이미 최신 커널이 올라가 있고, CONFIG_BPF_SYSCALL과 CONFIG_BPF_JIT도 기본으로 켜져 있어서 단순한 eBPF 프로그램은 커널을 새로 빌드하지 않아도 로드된다. 문제는 그다음부터다. bpftrace나 최신 BCC 도구 상당수는 BTF(BPF Type Format)…

Continue ReadingeBPF를 위한 라즈베리파이 커널 빌드 가이드

sched_ext 사용법

리눅스 커널의 CPU 스케줄러(CFS 등)는 범용 워크로드에 맞춰 설계됐지만, 게이밍처럼 짧은 지연시간이 중요한 워크로드와 데이터센터의 처리량 위주 워크로드, 배터리 절약이 우선인 모바일 워크로드를 하나의 스케줄링 정책으로 동시에 만족시키기는 어렵다. 과거에는…

Continue Readingsched_ext 사용법