Исследование: EBPF не всегда «серебряная пуля» для сетевых приложений

Исследовательский документ в последнем выпуске «Слушания ACM по сетевому общению» ставит под сомнение превосходство производительности EBPF, по крайней мере, с точки зрения ускорения рабочих нагрузок на основе сети.

Во многих случаях EBPF не приносит значительной выгоды от производительности, а иногда даже может замедлить приложение, указывало на четырех исследователей в статье, «демистифицируя производительность сетевых приложений EBPF».

«В действительности многие сетевые приложения не могут извлечь выгоду из EBPF, и, что еще хуже, использование EBPF может ограничить то, как развертываются приложения», — написали авторы бумаги, Фарбод Шахинфар и Себастьяно Миано, оба из Полиценико ди Милано, Милан, Италия; Ауроджит Панда Нью -Йоркского университета; и Джанни Античи Политико Ди Милано, Лондонский университет Милана и королевы Марии.

EBPF-это технология для встраивания кода программирования непосредственно в сам ядро ​​операционной системы, посредством песочницы и предварительной компиляции, с идеей, что он может запускать код быстрее, чем этот код может запускать в программе пользовательского пространства, которая связывается с ядром. Код для запуска на EBPF составлен в платформу-независимый байт-код и скомпилируется во время загрузки.

Жизненный цикл программы EBPF (PACMNET)

EBPF обнаружил ранний дом во многих сетевых функциях, таких как балансировка нагрузки, протоколы переключения пакетов и сетевого ускорения, где он используется для фильтрации и маршрутизации пакетов и данных телеметрии.

Попрос на претензии EBPF в результате исполнения EBPF

Исследователи создали серию критериев, чтобы проверить, действительно ли были реализованы широко распространенные повышение производительности EBPF.

Другими словами, исследователи хотели знать, если вы включили EBPF в свое сетевое приложение, это пойдет быстрее?

Они обнаружили, что на самом деле, код разгрузки не всегда приводит к повышению производительности.

«Мы обнаружили, что улучшается ли производительность приложения, зависит от того, сколько логики может быть выгружена», — написали они.

В некоторых случаях они обнаружили улучшение, но в других, используя EBPF, имеющую скудную разницу. И в некоторых случаях EBPF фактически делал производительность еще более вялой, не только за применение, но и другие приложения вокруг него.

Брингеринг различных типов разгрузки EBPF

Исследователи установили и включили три различных типа приложения на основе EBPF. Один работал полностью в EBPF («Полная разгрузка«) Еще одна разгруженная только самая чувствительная к во времени часть кода («быстрое перегрузка«)-Подумайте о кэшах базы данных. И третий использовал EBPF для предварительного обработки данных («Предварительная обработка разгрузки«).

Тесты проводили на двух взаимосвязанных 24-ядерных серверах Intel Xeon, взаимосвязанными с 100 Гбит / с ссылок, и оснащены 1,1 МБ кэша L1, 30 МБ кэша L2 и 36 МБ кэша L3, а также 128 ГБ памяти DDR4. Они оба запустили ядро ​​Linux версии 6.8.0-RC7. Clang, V 14, собрал байт -код, нацеливаясь на набор инструкций EBPF Архитектура v. 3.

С Полная разгрузкарезультаты были смешанными. Приложения, которые работают на отдельных пакетах, приносят пользу, хотя приложения, которые работают на потоках или сообщениях, не улучшаются путем маршрутизации через EBPF.

Оказывается, EBPF ISA не поддерживает множество функций процессора, таких как однопрокат-Multiple-Data (SIMD), разгрузки криптографии или операции с плавающей запятой. В результате некоторые из сложных операций обмена сообщениями фактически работают быстрее в пространстве пользователя.

Исследователи проверили быстрое перегрузка С BMC программа EBPF для ускорения магазина Memcached Key-Value.

Здесь они обнаружили, что преимущества в значительной степени зависят от типа рабочей нагрузки BMC управляет. Большая часть трафика будет выгружена в BMC, действительно увидит более быстрое время производительности. Но если большая часть этого трафика должна быть обработана по коду пользовательского пространства, любые преимущества в лучшем случае минимальны.

Для Предварительная обработка разгрузкиИсследователи обнаружили, что программа EBPF может потенциально уменьшить движение данных путем предварительной обработки запросов. Но это не обязательно значительно улучшит производительность самого приложения.

Уменьшение размера пакета значительно не увеличивает пропускную способность. (PACMNET)

Эффект «шумного соседа» приложений EBPF

Исследователи обнаружили другие тревожные новости, а именно, что приложения на основе EBPF могут сделать для недружественных соседей на сервере. Доминируя ядро ​​ОС, они препятствуют производительности других приложений, работающих на том же сервере. EBPF был разработан для Linux и в основном использовался там, но версия Windows также приводится в жизнь.

«Приложения, использующие EBPF, могут нарушить изоляцию производительности», — написала исследовательская группа.

Рекомендации по улучшению технологии EBPF

Исследователи сообщают, что есть несколько вещей, которые хранители EBPF могли бы сделать, чтобы облегчить болезни их технологии.

Одним из них является усовершенствование только что-то время, которое из-за пределов ядра ОС часто создает неоптимальный код. Даже общие действия, такие как копирование в память и из памяти (например, Memcpy), выполняются неэффективным образом, замедляя любую потенциальную оптимизацию.

В определенной степени хранители EBPF застряли, поскольку эта проблема не будет легко исправлена, «поскольку это добавило бы значительную сложность в ядро», — заметили исследователи.

Тем не менее, они могли бы уточнить свой процесс генерации машинного кода. EBPF ISA может быть расширен, в том числе значительное увеличение количества поддерживаемых регистров.

Также предлагалось добавление планировщиков и буферов, а также реализация предварительной выборки данных.

Исследователи заключили, что благодаря этим усовершенствованиям EBPF может по -настоящему решить широкий спектр вариантов использования, которые выиграют от лучшей производительности.

Фонд EBPF не вернул запрос на комментарий.

Trending Stories youtube.com/thenewstack Tech движется быстро, не пропустите эпизод. Подпишитесь на наш канал YouTube, чтобы транслировать все наши подкасты, интервью, демонстрации и многое другое. Группа подпишитесь с эскизом. Joab Jackson является старшим редактором нового стека, охватывающего облачные нативные вычисления и системы системы. Он сообщил об инфраструктуре и развитии ИТ в течение более 30 лет, в том числе в IDG и государственных компьютерных новостях. До этого он … читал больше от Джоаба Джексона

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *