BPF: профессиональная оценка производительности
- Добавил: literator
- Дата: 2-12-2023, 18:38
- Комментариев: 0
![](/uploads/posts/2023-12/thumbs/1701531581_bpf_profocenkaproizv.jpg)
Автор: Брендан Грегг
Издательство: Питер
Год: 2024
Страниц: 880
Язык: русский
Формат: pdf
Размер: 12,2 MB
Инструменты оценки производительности на основе BPF дают беспрецедентную возможность анализа систем и приложений. Вы сможете улучшить производительность, устранить проблемы в коде, повысить безопасность и сократить расходы. Книга «BPF: профессиональная оценка производительности» — ваш незаменимый гайд по применению этих инструментов. Брендан Грегг — эксперт и пионер проекта BPF — представляет более 150 готовых инструментов анализа и отладки, рекомендации по их применению, а также пошаговые инструкции по разработке ваших собственных инструментов. Вы узнаете, как анализировать процессоры, память, дисковый ввод/вывод, файловую систему, сети, языки программирования, приложения, контейнеры, гипервизоры, безопасность и ядро. Вы сможете выработать глубокое понимание того, как улучшить буквально любую Linux-систему или приложение.
Иногда программисты говорят, что они «стряпают патч» («cook a patch»), а не «реализуют» (implement). Я начал увлекаться программированием еще в школе. Чтобы получить хороший код, программист должен выбрать лучшие «ингредиенты». Разные языки программирования предлагают множество разных строительных блоков — «ингредиентов», но когда дело доходит до программирования ядра Linux, то кроме самого ядра у вас ничего нет.
В ядре Linux уже был похожий механизм, известный как BPF (Berkeley Packet Filter — пакетный фильтр Беркли), поддерживавший минимальный набор команд, которые можно использовать для фильтрации пакетов перед передачей их приложениям, таким как tcpdump. Надеюсь, что эта книга станет вашей настольной «кулинарной книгой», в которой известный шеф-повар учит, как использовать BPF на Linux-кухне.
Эта книга рассказывает об инструментах на основе BPF, которые применяются в основном для анализа и оценки производительности, но их можно использовать и в других областях: для поиска и устранения неполадок в ПО, для анализа безопасности и многого другого. Самое сложное в изучении BPF — не как писать код: любой интерфейс вы можете изучить примерно за день. Намного сложнее понять, что именно делать: какие из многих тысяч событий анализировать? Эта книга поможет найти ответ на этот вопрос, предоставив всю необходимую информацию об анализе производительности на множестве примеров анализа различных программных и аппаратных целей с помощью инструментов оценки производительности BPF на промышленных серверах Netflix.
Существует множество языков программирования, компиляторов и сред выполнения для них. У каждого языка есть свои особенности, по которым можно отследить запуск программ, написанных на нем. Глава 12 объясняет такие различия и помогает реализовать трассировку программ, написанных на любом языке. Начнем с описания способов реализации разных языков программирования, а затем исследуем возможности трассировки, используя в качестве примеров несколько языков: язык C будет представлять компилируемые языки, Java — языки с JIT-компиляцией, а язык командной оболочки bash — интерпретируемые языки. На примере каждого из них я расскажу, как искать имена функций (символы), аргументы функций, а также как получать и исследовать трассировки стека. В конце главы я также затрону вопросы трассировки программ на других языках: jаvascript (Node.js), C++ и Golang. Неважно, с каким языком вы работаете. Прочтя эту главу, вы научитесь его инструментировать, а также узнаете проблемы и их решения, которые встречались в других языках.
Скачать BPF: профессиональная оценка производительности
![](/templates/LitmyL/images/LitMyru.png)
[related-news] [/related-news]
Внимание
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.