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

Обсуждение новостей, соответствующих тематике форума

Модератор: Модераторы разделов

Ответить
Аватара пользователя
rssbot
Бот
Сообщения: 6002
ОС: gnu/linux

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

Сообщение rssbot »

После полутора лет разработки состоялся выпуск проекта F-Stack 1.13, развивающего работающий в пространстве пользователя высокопроизводительный сетевой стек, основанный на фреймворке DPDK и TCP/IP стеке FreeBSD (F-Stack не привязан к FreeBSD и в качестве первичной платформы для применения рассматривает Linux). Проект используется в различных продуктах и сервисах Tencent, крупнейшей в Китае телекоммуникационной компании. Код распространяется под лицензией BSD. Поддерживается работа в Linux и FreeBSD.

F-Stack даёт возможность организовать сетевое взаимодействие в приложениях, применяя вместо сетевого стека операционной системы собственный сетевой стек, функционирующий в пространстве пользователя и напрямую работающий с сетевым оборудованием. Предоставляются специализированные редакции Nginx и Redis, переведённые на использование F-Stack.

Для разработки приложений поддерживается как штатный Posix API (Socket, Epoll, Kqueue), упрощающий перевод на F-Stack существующих приложений, так и собственный программный интерфейс на основе сопрограмм (микропотоков), упрощающий создание сетевых приложений и позволяющий обойтись без сложной логики асинхронной обработки запросов. F-Stack также предоставляет средства для упрощения применения в приложениях с многопроцессной архитектурой.

Для взаимодействия с сетевой картой, минуя интерфейсы ядра операционной системы, применяется фреймворк DPDK (Data Plane Development Kit), предоставляющий набор библиотек для низкоуровневой работы с сетевыми адаптерами, взаимодействия в многоядерных системах, задействования кольцевых буферов и больших страниц памяти ("huge page"). Использование DPDK даёт возможность принимать и отправлять сетевые пакеты с выполнением минимального числа циклов CPU (около 80 циклов на пакет) и разрабатывать высокопроизводительные компоненты сетевого стека. Непосредственно функциональность TCP/IP стека заимствована из FreeBSD 11.1 и выделена в независимую от операционной системы библиотеку.

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


Увеличение производительности достигается за счёт исключения таких операций, как копирования сетевых пакетов, планирование потоков, обработка прерываний и применение системных вызовов. F-Stack позволяет достигнуть потолка сетевой производительности, возможного для используемой сетевой карты. Например, решения на базе F-Stack продемонстрировали возможность обработки 10 млн параллельных соединений, 5 млн запросов в секунду и 1 млн соединений в секунду. [/list]

В новом выпуске:
  • Добавлена поддержка VLAN;
  • Обеспечена возможность работы в изолированных контейнерах на базе Docker;
  • Реализованы интерфейсы ff_dup, ff_dup2, ff_ioctl_freebsd, ff_getsockopt_freebsd и ff_setsockopt_freebsd;
  • Добавлен параметр "idle_sleep" для сокращения нагрузки на CPU в ситуации отсутствия входящих пакетов;
  • Добавлена поддержка сборки для архитектуры ARM64;
  • В переведённой на F-Stack редакции Nginx заменены обработчики getpeername, getsockname и shutdown;
  • Осуществлён переход на новую версию DPDK 17.11.4 LTS;
  • В состав добавлена утилита traffic для отображения текущего трафика, обрабатываемого приложениями на базе F-Stack (напоминает trafshow).


Из планов на будущее отмечается поддержка IPv6, предоставление API для языков Python, PHP и Go, поддержка API Cyptodev (Intel QAT), использование zerocopy при отправке пакетов, поддержка SPDK и возможность запуска в форме фонового процесса.


Источник: https://www.opennet.ru/opennews/art.shtml?num=51884
(opennet.ru, основная лента)
Последний раз редактировалось rssbot 19.11.2019 13:06, всего редактировалось 4 раза.
Причина: Updated upstream
Спасибо сказали:
Ответить