요즘 코드만 보다보니까 너무 시야가 좁아진다는 생각이 들어서 알라딘에서 볼만한 책을 찾다가 이 책을 만났다. 이 책은 BPF라는 도구가 어떻게 동작하고, 이 도구로 리눅스 시스템을 어떻게 계측하는지를 설명해준다. 나는 원래 BPF, TRACING, PERF와 같은 서브시스템이 왜 중요한지 몰랐다. 하지만 이 책을 읽다보니 생각이 완전히 바뀌었다. 예를 들어서 성능과 관련된 부분에서 작업을 한다면 성능을 정확하게 측정할 수 있어야 한다. 코드의 어떤 부분에서 병목이 생기는지, 어떤 코드 경로에서 시간을 잡아먹는지, 실행시에 어떤 이벤트가 발생하는지를 알아야 한다. 정확한 측정 없이는 문제를 찾을 수도 개선할 수도 없다. BPF가 리눅스 시스템을 더 잘 이해할 수 있도록 시야를 넓혀줄거란 기대가 생겼다. 그리고 심지어 유연하기까지 하다.
생각보다 재미있어서 며칠동안 5챕터 정도를 읽었다. 아직 컴퓨터 아키텍처나 LLVM, 프로그래밍 언어론쪽을 잘 알지는 못해서 내부를 이해하지는 못했지만, BCC나 bpftrace로 만든 프로그램들으로 리눅스 시스템이 실제로 어떻게 동작하는지 계측하기에 매우 좋겠다는 생각이 들었다.
최근에는 커널 관련 주제만 공부했는데 BPF는 어플리케이션을 이해하고 개선하는 데에도 큰 도움이 될 것이다. 어플리케이션이 커널과 밀접한 관계를 맺고있기도 하고, BPF를 사용하면 커널 뿐만 아니라 어플리케이션의 동작도 계측할 수 있다. 당분간은 BPF/TRACING/PERF 등의 서브시스템을 활용하는 법을 배워야겠다.
'Books' 카테고리의 다른 글
[나는 리뷰어다] 전문가를 위한 C (1) | 2022.10.30 |
---|---|
독서법을 공부해야하는 이유를 찾았다. (1) | 2017.08.20 |
이미지(Image) 수학이란 무엇일까. (0) | 2017.02.17 |
점수 올리는 수학머리 따로 있다 (0) | 2017.02.14 |
머리가 좋아지는 1분 공부법 (1) | 2017.02.14 |
댓글