LINUX.ORG.RU

Состоялся релиз F-Stack 1.13

 , , , ,


2

3

Компания Tencent выпустила новую версию F-Stack 1.13, фреймворка на базе DPDK и TCP/IP стека FreeBSD. Основной платформой для фреймворка является Linux. Код распространяется под лицензией BSD.

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

Из заявленных особенностей фреймворка:

  • Полная загрузка сетевых карт: были достигнуты 10 млн активных сетевых подключений, 5 млн RPS и 1 млн CPS
  • Перенос стека пространства пользователя из FreeBSD 11 с удалением большого количества несущественных возможностей, что значительно повысило сетевую производительность
  • Поддержка Nginx, Redis. Другие приложения также могут использовать F-Stack
  • Легкость расширения за счет мультипроцессной архитектуры
  • Обеспечивает поддержку микропотоков. Различные приложения могут использовать F-Stack для повышения производительности без реализации сложной асинхронной логики
  • Поддерживаются стандартные API epoll/kqueue

В новой версии:

  • Добавлены интерфейсы ff_dup, ff_dup2, ff_ioctl_freebsd, ff_getsockopt_freebsd, ff_setsockopt_freebsd
  • Добавлен параметр «idle_sleep», позволяющий снизить использование процессора, если отсутствуют входящие пакеты
  • Добавлена поддержка arm64
  • Добавлена поддержка Docker
  • Добавлена поддержка vlan
  • В реализации nginx для F-Stack заменены функции getpeername, getsockname, shutdown
  • DPDK обновлен до версии 17.11.4 LTS

>>> Подробности

Ответ на: комментарий от IPR

Вообще-то, нет.

А драйвера им под новое ядро сраный анон с лора будет писать?

Драйвера это в dpdk пожалте. Это к реализации стека tcp в юзерспейс не особо. И да, я писал для dpdk для crypto devices драйвера. Что не так? Ну и насчёт «сраного», батенька, Вы бы обороты-то скинули бы малость? =)))

А так-то, драйвера именно сетевых устройств вполне себе пишут те же интела. И не обламываются. И даже под ARM.

anonymous ()

Стесняюсь спросить...

А чем F-Stack лучше vpp?

anonymous ()
Ответ на: Вообще-то, нет. от anonymous

Re: Вообще-то, нет.

А для несети кто будет писать? В случае с линуксом только для сабжа драйвера нужны, в случае нового ядра для всего драйвера нужны

anonymous ()
Ответ на: комментарий от PETER

Да. Именно.

dpdk вообще то сильно интел продвигает, типа можно с минимальными задержками пакеты в сеть толкать

Это именно для быстрого (без участия стека в ядре) трансфера пакетов из/в памяти сетевого адаптера в/из юзерспейс-приблуду. Начали всё это suricata, там типа в кольцевой буфер в юзерспейс пихали и анализировали. Теперь подсистема dpdk отдельно есть, а реализации стека tcp могут быть произвольными. Тот же vpp.

anonymous ()
Ответ на: комментарий от Liz812

специальное ядро со встроенным Redis, будет еще быстрее

Делали уже, со встроенным http, потом выбросили. Неудобно. Но мысль такая продолжает витать, да.

no-such-file ★★★★★ ()
Ответ на: Re: Вообще-то, нет. от anonymous

Re: Вообще-то, нет.

А для несети кто будет писать? В случае с линуксом только для сабжа драйвера нужны, в случае нового ядра для всего драйвера нужны

Не. Это касается только сети. И проброса пакетов. Всё остальное точно так же как и было. Просто стороной обходим сетевой стек ядра (skbuff и прочее) и не более.

anonymous ()
Ответ на: комментарий от araks

Стек tcp выносится.

Стек присутствует. Только изрядно перепиленный

Его из kernel space в user space выносят. Только вот гонять nginx я бы стал осторожнее. Если для коммутаторов-роутеров (L2 и L3 модели tcp) это нормально, то на уровне L4 и залететь можно.

Требуются тесты на безопасность для L4.

anonymous ()
Ответ на: комментарий от LittleKawaiiNeko

Что? NVMEoF, например, так и работает.

Идея-то хорошая. Единственная проблема это как аккаунтинг и дебаг производить. Сейчас, имея в цепких лапках strace, perf и ip/netstat можно дебажить мелкие сетевые проблемы, особо даже не вникая в логику приложения.

kirk_johnson ★☆ ()
Последнее исправление: kirk_johnson (всего исправлений: 2)
Ответ на: комментарий от kirk_johnson

Что?

Да вообще вся эта хрень стрёмная - патченый неизветсно кем из китая

http://www.f-stack.org/about.html

стек и сервисы. Кроме попугаев что-нибуть тестируют ?

anonymous ()
Ответ на: комментарий от anonymous

Наверное было бы не плохо построить на таком стеке сетку для виртуалок.

anonymous ()
Ответ на: Re: Вообще-то, нет. от anonymous

Re: Вообще-то, нет.

Разговор был про экзоядро, кто под него будет драйвера писать?

anonymous ()
Ответ на: Re: Вообще-то, нет. от anonymous

Re: Вообще-то, нет.

Разговор был про экзоядро, кто под него будет драйвера писать?

Анонимус напоминает, что последние юридические между vmware и какой-то там линуксо-гплью были насчёт использования линусовых драйверов в вмваревском ядре. Писать свои не осилили.

Не пишут сейчас драйверы под новые ядра.

anonymous ()
Ответ на: Re: Вообще-то, нет. от anonymous

Re: Вообще-то, нет.

Ну дак а я то о чем толкую. Кому нужно ядро без драйверов на периферию? Для того, чтобы портировать существующие, тоже ресурсы нужны. Потому предложение того анонима реализовать dpdk для экзоядра бессмысленны.

anonymous ()
Ответ на: комментарий от kirk_johnson

Openbsd не сильно младше линукса. И то маргинальщина без блютута. Что с fuchsia или redox?

anonymous ()
Ответ на: комментарий от anonymous

Что с fuchsia

комитят туда ежедневно с космической скоростью, драйверы свои пишут. Голодранцам из f-stack такое и не снилось.

anonymous ()
Ответ на: комментарий от no-such-file

Сомнительно, что скорость в юзерспейсе будет лучше, чем в ядре.

скорость в юзерспейсе и ядре одинаковая, а вот накладные расходы на системный вызов таки значительные

reprimand ★★★★★ ()
Ответ на: комментарий от anonymous

Понятия не имею, что с ними. Это не продакшон реди пока не разу.

kirk_johnson ★☆ ()
Ответ на: комментарий от anonymous

комитят туда ежедневно с космической скоростью, драйверы свои пишут.

И что, уже на рандомном железе запускается?

Надо потыкать.

anonymous ()
Ответ на: Re: Вообще-то, нет. от anonymous

Re: Вообще-то, нет.

Не пишут сейчас драйверы под новые ядра.

А?!? Чё??? /me аж ухой поперхнулся. =)))

anonymous ()
Ответ на: комментарий от anonymous

Аккуратнее.

И что, уже на рандомном железе запускается?

Если dpdk (а именно это уровень дров), то проверьте их наличие под dpdk. Вполне вероятно что заведётся.

anonymous ()
Ответ на: Re: Вообще-то, нет. от anonymous

Re: Вообще-то, нет.

А?!? Чё??? /me аж ухой поперхнулся. =)))

Приятного аппетита. Это не про версии ядра, если что. Хочешь оспорить?

anonymous ()
Ответ на: Re: Вообще-то, нет. от anonymous

Re: Вообще-то, нет.

Хочешь оспорить?

На … («зачем») мне спорить, если я эти самые дрова по временам и пишу? В последнее время с криптодевайсом под дпдк в основном «воюю». Но с интересом выслушаю альтернативные точки зрения… =)))

anonymous ()

Аналог виндузового Trumpet WinSock?

Infra_HDC ★★★★★ ()
Ответ на: Re: Аккуратнее. от anonymous

Re: Аккуратнее.

Если dpdk

fuchsia

Это разные вещи. Просто. Разные. Не туда.

anonymous ()
Ответ на: Re: Вообще-то, нет. от anonymous

Re: Вообще-то, нет.

На … («зачем») мне спорить, если я эти самые дрова по временам и пишу? В последнее время с криптодевайсом под дпдк в основном «воюю». Но с интересом выслушаю альтернативные точки зрения… =)))

Альтернативная точка зрения: дпдк – это не новое ядро.

anonymous ()
Ответ на: Re: Аккуратнее. от anonymous

Re: Аккуратнее.

Это разные вещи.

Я знаю.

Ты отвечаешь невпопад. В левом верхнем углу коментария есть ссылка «Ответ на комментарий», потыкай на неё.

anonymous ()
Ответ на: комментарий от Liz812

Во-первых не может, но дело не в этом. Во-вторых - это не имеет смысла. Если кто-то вытеснит твою юзерспейс-логику, то точно так же будет вытеснен nginx, либо твой пхп. Таким образом вся скорость тоже куда-то денется.

maalik_briton ()

На подобных штуках биржи гоняются. Иначе 40 гбит в приложении не выжать.

anonymous ()
Ответ на: Re: Вообще-то, нет. от anonymous

Re: Вообще-то, нет.

Альтернативная точка зрения: дпдк – это не новое ядро.

А откуда такая мысль-то прокралась в чью-то голову что dpdk это новое ядро? Это и близко не новое ядро и вопрос так даже и не ставился никогда. /me вторично подавился ухой… =)))

anonymous ()

времена ms dos возвращаются! :-D

anonymous ()

в пространстве пользователя и работающий напрямую с сетевым оборудованием.

как это? с оборудованием от имени юзера?

Alve ★★★★★ ()

Я тут подумал, вот юзерспейсный вывод звука мог бы стать куда более реалтаймовым.

Deleted ()
Ответ на: комментарий от anonymous

времена ms dos возвращаются! :-D

У меня была задумка ОС, в которой прикладной код компилируется вместе с ядром в один процесс.Что-то чуть более высокоуровневое, чем специализированные прошивки встраиваемых устройств, но более низкоуровневое, чем роутер с линуксом.

Потом я узнал о проекте Embox и понял, что если в моей фантазии было что-то здравое, то реализовали его именно там.

hobbit ★★★★★ ()
Ответ на: комментарий от anonymous

Да вообще вся эта хрень стрёмная - патченый неизветсно кем из китая

Tencent - крупнейшая интернет-компания Китая, известна мессенджерами QQ и WeChat, которыми пользуются почти все 1.2 миллиарда населения, так что в хайлоаде они немного должны шарить

Harald ★★★★★ ()

интересно. про DPDK давно знаю, а про этот проект не слышала.

Iron_Bug ★★★★ ()

Что только не придумают БСДшники, чтобы заставить пользоваться своим кодом )

P.S.: против BSD ничего не имею, а против автора новости имею, ибо он — BSD-тролль.

te111011010 ()
Ответ на: комментарий от anonymous

Тогда надо сделать специальное ядро со встроенным Redis, будет еще быстрее.

нельзя сделать ядро со встроенным софтом по двум причинам:

  1. весь этот софт - проприетарный, а все ядерное должно быть GPL.

  2. нормальные люди ничего не будут писать на Си, только в случае крайней, самой последней необходимости. Тем более такой отстойный си, который в ядре, ты даже динамическую библиотеку не загрузишь. В ынтерпрайзе нужен или C++, или какой-нибудь взрослый рантайм типа Java/.NET Core/V8/LuaJIT. Насколько знаю, ничего из этого не запустить в ядерном режиме

stevejobs ★★★★☆ ()
Последнее исправление: stevejobs (всего исправлений: 1)
Ответ на: комментарий от PETER

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

deep-purple ★★★★★ ()
Ответ на: комментарий от deep-purple

ну ядро является более общим решением, нежели это. Смысл этой поделки передавать сетевые пакеты на уровне пропускной способности железа. Даже вот, пример из практики, у нас стоят сервера доступа (pppoe), искали причину падучести софтины, пробовали разные линуксы, в оконцовке центось со стареньким ядром зело медленнее работает, чем гента. А фрибсд с мпд вообще дико тормозят. Разница довольно ощутима, когда покупаешь сервер по цене автомобиля, вобщем как то так

PETER ★★ ()
Ответ на: комментарий от PETER

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

deep-purple ★★★★★ ()
Ответ на: комментарий от deep-purple

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

PETER ★★ ()
Последнее исправление: PETER (всего исправлений: 1)
Ответ на: комментарий от PETER

а, ну так полноценно допилив свою поделку, они обнаружат тормоза сравнимые с ядром.

deep-purple ★★★★★ ()
Ответ на: комментарий от deep-purple

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

Deleted ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.