![](https://habrastorage.org/webt/3t/cj/47/3tcj47ahekaqqwavk5xdijf6g3s.png)
27 февраля 2024 года команда разработчиков из Netflix представила инструмент bpftop, который помогает оптимизировать производительность программ BPF (Berkeley Packet Filters) в ядре Linux. Исходный код проекта опубликован на GitHub под лицензией Apache License 2.0.
Инструмент bpftop обеспечивает динамическое представление запущенных программ eBPF в режиме реального времени. Утилита отображает среднее время выполнения, количество событий в секунду и расчётный общий процент использования ЦП для каждой программы. Этот инструмент минимизирует накладные расходы, включив статистику производительности только тогда, когда он активен.
![](https://habrastorage.org/webt/wo/s-/xh/wos-xhrismbeb6j4_egip5ul07o.gif)
Возможности bpftop:
отображает список всех запущенных программ eBPF на хосте, включая идентификатор, тип и имя;
показывает период и общее среднее время работы для каждой программы eBPF;
вычисляет количество событий в секунду и оценивает загрузку ЦП для каждой программы eBPF;
обеспечивает графическое представление среднего времени выполнения, событий в секунду и расчётной загрузки ЦП за 10-секундный период времени;
динамически обновляет список каждую секунду;
включает функцию сбора статистики только тогда, когда утилита активна.
Требования к системе для запуска bpftop:
для запуска bpftop требуются права sudo;
версия ядра Linux должна быть 5.8 или новее;
бинарный файл динамически связан с libz и libelf, поэтому эти библиотеки должны присутствовать в системах, где вы собираетесь запускать bpftop.