eBPF (extended Berkeley Packet Filter) — технология ядра Linux, позволяющая запускать безопасный код в пространстве ядра без модификации ядра или загрузки модулей. Программы eBPF перехватывают системные вызовы, сетевые пакеты, дисковые операции, планировщик и другие события — при этом overhead составляет наносекунды на событие.
Для системного администратора eBPF открывает возможности, недоступные классическим инструментам:
- strace замедляет приложение в 50-100 раз, eBPF-трассировка — менее 1%
- tcpdump показывает только пакеты, eBPF связывает пакет с процессом и сокетом
- perf требует специальных сборок, eBPF работает на любых бинарниках
В этом руководстве разберём практические инструменты на базе eBPF: BCC (BPF Compiler Collection) — набор готовых утилит, и bpftrace — скриптовый язык для создания собственных трассировщиков.
Оставить комментарий