BPF3 Grafana에서 bpftrace 사용하기 (feat. Performance Co-Pilot) 최근에 BPF 스크립트, Flame Graph를 Grafana 같은 모니터링 시스템에서 실행하는건 어떤가 생각했는데 이미 있었다. 와 이게 된다니!! 이 글에서는 Ubuntu 21.04 (hirsute)에서 Performance Co-Pilot 플러그인으로 Grafana에서 bpftrace를 사용하는 방법을 다룬다. bpftrace 설치 당연하게도 bpftrace를 Grafana에서 사용하려면 bpftrace를 먼저 설치해야한다. $ sudo apt-get install -y bpftrace bpftrace 설치는 간단한데 bpftrace를 사용하려면 커널이 BPF 관련 일부 config가 활성화된 상태로 빌드되어야 한다. 요즘 배포판에선 대부분 기본적으로 켜져있는 것 같다. CONFIG_BPF=y CO.. 2021. 11. 28. [Linux Kernel] BPF/eBPF란 무엇인가 BPF와 관측가능성 BPF 책을 보면 볼수록 흥미로워서 내용을 정리해본다. BPF는 패킷 필터로 시작해서 현재는 리눅스 시스템에 관측가능성을 부여하는 도구이다. 만들어진지는 거의 리눅스 급으로 오래됐는데 최근 5년간 새로운 용도(?)를 발견하면서 많이 핫해진것 같다. 이 글에서는 BPF가 어떤 구조로 되어있는지를 간단하게 설명한다. 더 공부하면서 bcc나 bpftrace에서 어떻게 프로그램을 실행하는지, BPF 관련 프로젝트에 무엇이 있는지 등등을 정리하려고 한다. 예전에도 BPF라는게 있구나 정도는 알았는데 관측가능성이라는 말의 의미가 잘 와닿지 않아서 그냥 스쳐 지나갔었다. BPF는 사용자 공간에서 명령어 몇개만으로 커널을 새로 빌드하지 않고도 커널 코드를 안전하게 수행할 수 있다. 심지어 커널 코드.. 2021. 10. 31. [책] BPF 성능 분석 도구 요즘 코드만 보다보니까 너무 시야가 좁아진다는 생각이 들어서 알라딘에서 볼만한 책을 찾다가 이 책을 만났다. 이 책은 BPF라는 도구가 어떻게 동작하고, 이 도구로 리눅스 시스템을 어떻게 계측하는지를 설명해준다. 나는 원래 BPF, TRACING, PERF와 같은 서브시스템이 왜 중요한지 몰랐다. 하지만 이 책을 읽다보니 생각이 완전히 바뀌었다. 예를 들어서 성능과 관련된 부분에서 작업을 한다면 성능을 정확하게 측정할 수 있어야 한다. 코드의 어떤 부분에서 병목이 생기는지, 어떤 코드 경로에서 시간을 잡아먹는지, 실행시에 어떤 이벤트가 발생하는지를 알아야 한다. 정확한 측정 없이는 문제를 찾을 수도 개선할 수도 없다. BPF가 리눅스 시스템을 더 잘 이해할 수 있도록 시야를 넓혀줄거란 기대가 생겼다. 그.. 2021. 10. 28. 이전 1 다음