Название: BPF: профессиональная оценка производительности Автор: Брендан Грегг Издательство: Питер Год: 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. Неважно, с каким языком вы работаете. Прочтя эту главу, вы научитесь его инструментировать, а также узнаете проблемы и их решения, которые встречались в других языках.
Внимание
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.