Выпуск сетевого стека F-Stack 1.24, выполняемого в пространстве пользователя

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 3299
Зарегистрирован: 20.08.2022

#

Выпуск сетевого стека F-Stack 1.24, выполняемого в пространстве пользователя
Дата публикации:Sat, 19 Oct 2024 21:43:12 +0300




Опубликован сетевой стек F-Stack 1.24, представляющий собой редакцию сетевого стека FreeBSD, работающую в пространстве пользователя и использующую фреймворк DPDK для достижения максимальной производительности. Проект создан крупнейшей в Китае телекоммуникационной компанией Tencent и используется в её продуктах и сервисах. Код написан на языке Си и распространяется под лицензией BSD. Поддерживается работа в Linux и FreeBSD.




F-Stack позволяет задействовать в приложениях собственный локальный сетевой стек, не зависящий от сетевого стека операционной системы, функционирующий в пространстве пользователя и напрямую работающий с сетевым оборудованием. F-Stack позиционируется как решение, позволяющее повысить производительность обработчиков сетевых запросов в условиях, когда штатный TCP/IP стек ядра Linux становится узким местом и ограничивает масштабирование - в некоторых ситуациях проект даёт возможность в разы увеличить число обрабатываемых мелких сетевых запросов. Теоретически F-Stack позволяет достигнуть потолка сетевой производительности, возможного для используемой сетевой карты.




Повышение производительности достигается за счёт исключения таких операций, как копирования сетевых пакетов, планирование потоков, обработка прерываний и применение системных вызовов. Для взаимодействия с сетевой картой, минуя интерфейсы ядра операционной системы, применяется фреймворк DPDK (Data Plane Development Kit), развивающий набор библиотек для низкоуровневой работы с сетевыми адаптерами. DPDK даёт возможность снизить накладные расходы и уложиться в минимальное число циклов CPU при приёме или отправке сетевых пакетов.




Функциональность TCP/IP стека соответствует сетевому стеку FreeBSD 13 и выделена из данной операционной системы в независимую библиотеку. Для разработки приложений можно использовать стандартный API POSIX (socket, epoll, kqueue) или собственный программный интерфейс на основе микропотоков, упрощающий создание сетевых приложений и позволяющий обойтись без сложной логики асинхронной обработки запросов.




Проектом поддерживаются переведённые на использование F-Stack редакции многопротокольного сервера Nginx 1.25.2 и СУБД Redis 6.2.6, демонстрирующие производительность выше обычных сборок, работающих поверх системного сетевого стека.





Наиболее заметные изменения в новом выпуске:
  • В файле конфигурации config.ini предоставлена возможность выбора между использованием KNI (Kernel NIC Interface) и virtio_user в качестве транспорта для передачи пакетов между ядром и приложением обработки пакетов на базе DPDK. Добавлена возможность использования ratelimit для KNI.

    Добавлена поддержка включения настройки сетевого стека "net.add_addr_allfibs=1" для добавления адресов во все таблицы маршрутизации.

    Добавлен API ff_get_traffic для получения трафика, например, для реализации QoS (Quality of Service).
    Добавлены функции pthread_create и pthread_join, напоминающие аналогичные функции из POSIX.

    Добавлен API ff_dpdk_raw_packet_send для отправки приложением raw-пакетов напрямую через DPDK, а не через сокет.

    Реализована поддержка автоматической настройки VLAN, маршрутизации и policy routing.
    Осуществлён переход на версию DPDK 22.11.6 LTS.

    В реализации Nginx поверх F-Stack добавлена поддержка модуля stream.


Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=62076

Жизнь за Нер'зула!

Ответить