Главная · eBPF

Зачем это

eBPF — это способ выполнить в ядре Linux короткую программу в момент события. Событием может быть запуск процесса, сетевой вызов, операция с диском или приход пакета. Ядро заранее проверяет программу и не даёт ей уйти в бесконечный цикл или писать в чужую память. Состояние между событиями лежит в map: из неё же результат читает обычная программа снаружи.

Это не сетевой протокол и не замена tcpdump. Протокол договаривается, как устроен пакет между узлами. eBPF смотрит или меняет то, что уже происходит на этой машине.

Три работы

Инженеру, который разбирает инцидент, почти всегда нужен первый пункт и готовые инструменты. Вторая и третья работа — уже изменение пути пакета или политики, их не смешивают с «просто посмотреть».

Чего вывод не доказывает

Инструмент показывает событие, которое случилось, пока он был включён. Он не говорит, что это событие — причина жалобы. Процесс мог запуститься рядом. Диск мог ответить быстро, а страница у пользователя ждала совсем другое.

Дальше имеет смысл открыть инструменты и прогнать одну команду на знакомый симптом. Модель — после этого, не до.

К оглавлению