Инструменты оценки производительности на основе BPF дают беспрецедентную возможность анализа систем и приложений. Вы сможете улучшить производительность, устранить проблемы в коде, повысить безопасность и сократить расходы. Книга «BPF: профессиональная оценка производительности» — ваш незаменимый гайд по применению этих инструментов.
Брендан Грегг — эксперт и пионер проекта BPF — представляет более 150 готовых инструментов анализа и отладки, рекомендации по их применению, а также пошаговые инструкции по разработке ваших собственных инструментов. Вы узнаете, как анализировать процессоры, память, дисковый ввод/вывод, файловую систему, сети, языки программирования, приложения, контейнеры, гипервизоры, безопасность и ядро. Вы сможете выработать глубокое понимание того, как улучшить буквально любую Linux-систему или приложение.
Понимание внутреннего устройства сетевого стека в ядре поможет разобраться в работе инструментов BPF, описанных далее в главе. Самое главное: пакеты проходят через ядро с использованием структуры sk_buff (socket buffer — буфер сокета). Сокеты определяются структурой sock, входящей в состав вариантов для разных протоколов, таких как tcp_sock. Сетевые протоколы присоединяются к сокетам с помощью структуры proto, например tcp_prot, udp_prot и т.д. Эта структура определяет функции обратного вызова для работы с протоколом, в том числе connect, sendmsg и recvmsg.