Компания «СерверПро» — хостинг-провайдер с 400 физическими серверами. Команда из 6 инженеров обслуживала инфраструктуру традиционными инструментами: top, iotop, tcpdump, strace. Проблема: на одном из серверов с 200 контейнерами периодически проседала сетевая производительность. tcpdump генерировал гигабайты трафика, strace замедлял процессы на 40%.
eBPF (extended Berkeley Packet Filter) — технология, позволяющая запускать изолированные программы внутри ядра Linux без модификации исходного кода ядра и без перезагрузки. Программы eBPF проходят верификацию ядром перед загрузкой — гарантия безопасности.
| Инструмент | Overhead | Нужен перезапуск? | Гранулярность |
|---|---|---|---|
| strace | 30-50% | Да (attach) | Syscall уровень |
| tcpdump | 10-20% | Нет | Пакетный уровень |
| perf | 5-15% | Нет | CPU/память |
| eBPF/bpftrace | 1-3% | Нет | Любой уровень ядра |
Ключевые преимущества eBPF для production:
- Минимальный overhead — 1-3% vs 30-50% у strace
- Безопасность — верификатор ядра проверяет каждую программу перед запуском
- Динамическая загрузка — подключайте и отключайте трейсинг на лету
- Универсальность — от трейсинга syscall до фильтрации сетевых пакетов и профилирования CPU
Комментарии 0