The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Выпуск nginx 1.24.0 , opennews (??), 12-Апр-23, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


13. "Выпуск nginx 1.24.0 "  –1 +/
Сообщение от жявамэн (ok), 12-Апр-23, 09:29 
> Чтобы превзойти nginx нужно уйти от сисколов на dpdk/netmap, иметь свой сетевой
> стёк, тогда получится срезать немного углов которые спрятаны в ядре ОС.

на липуксах кстати ему добавили поддержку sendfile2 ?
раньше чисто на фряхе держали статику ради этого


Ответить | Правка | Наверх | Cообщить модератору

14. "Выпуск nginx 1.24.0 "  +1 +/
Сообщение от жявамэн (ok), 12-Апр-23, 09:38 
> на липуксах кстати ему добавили поддержку sendfile2 ?
> раньше чисто на фряхе держали статику ради этого

https://nginx.org/en/docs/http/ngx_http_core_module.html#sen...
судя по документации это до сих пор фряха онли фича бггг


Ответить | Правка | Наверх | Cообщить модератору

39. "Выпуск nginx 1.24.0 "  +/
Сообщение от Аноним (51), 12-Апр-23, 12:16 
На линуксе поддержка aio/directio есть уже много лет.
Она просто не потребовала вмешательства разработчиков nginx :)
Ответить | Правка | Наверх | Cообщить модератору

82. "Выпуск nginx 1.24.0 "  +/
Сообщение от пох. (?), 12-Апр-23, 18:51 
кстати - а есть ли поддержка aio в фрибсдшной zfs?

Ибо на линухе ее как бы есть, но все же нет. Учитывая откуда теперь во фре openzfs  и что нетфликсе оно до лампочки...

Ответить | Правка | Наверх | Cообщить модератору

104. "Выпуск nginx 1.24.0 "  +/
Сообщение от Аноним (51), 13-Апр-23, 13:50 
aio нужно для скорости (быстрой отдачи статики)
zfs - это вообще не про скорость.

Нафига выигрывать условные 20% по скорости на aio, если условные 30% потеряются из-за фрагментации?

Вот поэтому нетфликсу и до лампочки проблемы zfs.

Ответить | Правка | Наверх | Cообщить модератору

115. "Выпуск nginx 1.24.0 "  +/
Сообщение от пох. (?), 13-Апр-23, 14:30 
zfs вполне себе про скорость (отдачи уж точно) - когда-то у меня получались вполне себе упиравшиеся в сетевуху результаты. Правда это была еще нормальная версия написанная руками.

aio нужно чтоб не жрать при этом ресурсы и спокойно заниматься другими потоками пока этот отдает данные.

Но вот работает ли оно у нас - я к сожалению уже не могу проверить.

Ответить | Правка | Наверх | Cообщить модератору

62. "Выпуск nginx 1.24.0 "  +/
Сообщение от Ivan_83 (ok), 12-Апр-23, 14:46 
Нет, там такого не написано.
Ответить | Правка | К родителю #14 | Наверх | Cообщить модератору

68. "Выпуск nginx 1.24.0 "  +/
Сообщение от Аноним (51), 12-Апр-23, 15:43 
Здесь изложение истории https://www.nginx.com/blog/nginx-and-netflix-contribute-new-.../

tl;dr: sendfile во Фре не поддерживал асинхронный ввод-вывод, и Нетфликс решил, вместо переезда на линукс, переписать этот sendfile.

Для линукса проблема не актуальна, они много лет назад смогли сделать aio/directio без помощи нетфликса.

Ответить | Правка | Наверх | Cообщить модератору

90. "Выпуск nginx 1.24.0 "  +/
Сообщение от Ivan_83 (ok), 12-Апр-23, 22:23 
Он и сейчас его не поддерживает, по ссылке тоже ничего про асинхронность :)

Асинхронность есть в венде на CompletionIOPort (WSAOVERLAPPED и вот это всё), и типа AIO на фре и линухе. Но AIO в nginx использовалось типа для подгрузки данных перед вызовом sendfile().

Ответить | Правка | Наверх | Cообщить модератору

92. "Выпуск nginx 1.24.0 "  +/
Сообщение от Аноним (92), 12-Апр-23, 23:10 
> Для линукса проблема не актуальна, они много лет назад смогли сделать aio/directio
> без помощи нетфликса.

man aio
HISTORY
     The aio facility appeared as a kernel option in FreeBSD 3.0.

Ответить | Правка | К родителю #68 | Наверх | Cообщить модератору

105. "Выпуск nginx 1.24.0 "  +/
Сообщение от Аноним (51), 13-Апр-23, 13:51 
А речь идет не про ядро, а про sendfile.

Потому что какой толк, если в ядре фича есть, а в юзерспейсе её использовать нельзя?

Ответить | Правка | Наверх | Cообщить модератору

93. "Выпуск nginx 1.24.0 "  +1 +/
Сообщение от Аноним (93), 13-Апр-23, 00:47 
aio/directio в линуксе настолько хорошо работает, что в nginx пришлось сделать тредпулы.

Справедливости ради, async на io_uring работает действительно хорошо, но он появился совсем недавно, и в nginx его пока не впиливали.

Ответить | Правка | К родителю #68 | Наверх | Cообщить модератору

16. "Выпуск nginx 1.24.0 "  –1 +/
Сообщение от пох. (?), 12-Апр-23, 10:38 
какой в ней сегодня смысл? Если все файлы отдаются через https.

а поддержки in-kernel https в нем нет и не будет.

Ответить | Правка | К родителю #13 | Наверх | Cообщить модератору

24. "Выпуск nginx 1.24.0 "  +/
Сообщение от жявамэн (ok), 12-Апр-23, 11:27 
> какой в ней сегодня смысл? Если все файлы отдаются через https.
> а поддержки in-kernel https в нем нет и не будет.

ну вот была новость о KTLS в новом релизе.
правда как поддержку этого впилить в нжинкс не особо понятно.

Ответить | Правка | Наверх | Cообщить модератору

27. "Выпуск nginx 1.24.0 "  +/
Сообщение от пох. (?), 12-Апр-23, 11:41 
как - довольно понятно, непонятно зачем и главное - кто этим теперь будет заниматься.
Нет разработчиков.

Апач вполне вероятно запилит через пару лет (у них все небыстро). А тут - только улучшенная поддержка винды (потому что ее удобно было скопипастить с nginx+)

Ответить | Правка | Наверх | Cообщить модератору

58. "Выпуск nginx 1.24.0 "  +/
Сообщение от Ivan_83 (ok), 12-Апр-23, 14:36 
Нетфликс это давно сделал уже.
Вот апачу и прочим - реально не понятно кто делать будет.
Ответить | Правка | Наверх | Cообщить модератору

70. "Выпуск nginx 1.24.0 "  +/
Сообщение от Аноним (51), 12-Апр-23, 16:31 
>  Нетфликс это давно сделал уже.

Что именно?

Ответить | Правка | Наверх | Cообщить модератору

84. "Выпуск nginx 1.24.0 "  +/
Сообщение от Ivan_83 (ok), 12-Апр-23, 19:53 
KTLS в ядро фри а в nginx запилили его поддержку правда я не уверен кто.
Ответить | Правка | Наверх | Cообщить модератору

122. "Выпуск nginx 1.24.0 "  +/
Сообщение от Аноним (122), 14-Апр-23, 14:03 
jhb впилил. Отлично работает.
Ответить | Правка | Наверх | Cообщить модератору

48. "Выпуск nginx 1.24.0 "  +/
Сообщение от Sw00p aka Jerom (?), 12-Апр-23, 12:46 
>нжинкс не особо понятно

Там через openssl ktls прикрутить никак?

Ответить | Правка | К родителю #24 | Наверх | Cообщить модератору

78. "Выпуск nginx 1.24.0 "  +/
Сообщение от пох. (?), 12-Апр-23, 17:25 
>>нжинкс не особо понятно
> Там через openssl ktls прикрутить никак?

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


Ответить | Правка | Наверх | Cообщить модератору

86. "Выпуск nginx 1.24.0 "  +/
Сообщение от Sw00p aka Jerom (?), 12-Апр-23, 19:56 
> а у нее openssl был без его поддержки.

можно из портов поставить openssl-1.1.1t_2,1, там уже есть поддержка

https://www.freshports.org/security/openssl/

Configuration Options:
===> The following configuration options are available for openssl-1.1.1t_2,1:
     KTLS=on: Kernel TLS offload

и нджинксу передать ssl_conf_command Options KTLS;

работать не будет? или обязательно 3 версия должна быть?

Ответить | Правка | Наверх | Cообщить модератору

98. "Выпуск nginx 1.24.0 "  +/
Сообщение от пох. (?), 13-Апр-23, 09:06 
хз  - проверь. У меня уже нигде нет того на чем можно экспериментировать (увы).
Нжинксу для начала надо объяснить что в твоей библиотеке вообще есть поддержка. Т.е. возможно оно там гвоздем прибито к проверке версии и вручную не подсовывается.

Ответить | Правка | Наверх | Cообщить модератору

87. "Выпуск nginx 1.24.0 "  +1 +/
Сообщение от Ivan_83 (ok), 12-Апр-23, 20:00 
Ставите 13 фрю, идёте собирать nginx из портов, там выбираете KTLS.
Ответить | Правка | К родителю #48 | Наверх | Cообщить модератору

108. "Выпуск nginx 1.24.0 "  +/
Сообщение от Аноним (51), 13-Апр-23, 13:55 
И получаете только ускоренный SSL_sendfile()
Ответить | Правка | Наверх | Cообщить модератору

57. "Выпуск nginx 1.24.0 "  +/
Сообщение от Ivan_83 (ok), 12-Апр-23, 14:35 
Опция при сборке порта была помнится для этого, может щас вообще включили по дефолту и опцию убрали - давно не смотрел.
Ответить | Правка | К родителю #24 | Наверх | Cообщить модератору

71. "Выпуск nginx 1.24.0 "  +/
Сообщение от Аноним (51), 12-Апр-23, 16:34 
> ну вот была новость о KTLS в новом релизе.

Это SSL_sendfile(). Достаточно специфичный случай, когда все упирается в отдачу статики.
Куда интересней SSL-терминирование для проксируемых соединений.

Ответить | Правка | К родителю #24 | Наверх | Cообщить модератору

76. "Выпуск nginx 1.24.0 "  +/
Сообщение от пох. (?), 12-Апр-23, 17:20 
> Это SSL_sendfile(). Достаточно специфичный случай, когда все упирается в отдачу статики.
> Куда интересней SSL-терминирование для проксируемых соединений.

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

Если ты построил этажерку прокси для _статики_ - поздравляю, шарик, ты балбес.


Ответить | Правка | Наверх | Cообщить модератору

85. "Выпуск nginx 1.24.0 "  +/
Сообщение от Ivan_83 (ok), 12-Апр-23, 19:56 
SSL_sendfile() - нет такого.

KTLS это когда хэндшейк идёт в юзерспейсе а дальше когда есть общий ключ он привязывается к сокету и дальше передаваемые по нему данные автоматом ядром шифруются.
И обычный sendfile(), read()/write() / send()/recv() для приложения прозрачно работают.
А всякие TLS специфичные штуки как то отдельно падают в юзерспейс.


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

А так то можно распарсить SNI и проксировать без снятия крипты, притом можно извратится и делать это прямо в ядре средствами фаервола, но тут допилинг нужен, я вроде ничего такого готового не видел.

Ответить | Правка | К родителю #71 | Наверх | Cообщить модератору

97. "Выпуск nginx 1.24.0 "  +/
Сообщение от пох. (?), 13-Апр-23, 09:04 
> SSL_sendfile() - нет такого.

это опенссл3шная обертка вокруг ktls. Делает ровно как ты хотел в рамках стандартной opensslной сессии.

В линуксах оно давно, а вот во фре с 13й оказывается. И вроде даже по слухам оно работает.

Ответить | Правка | Наверх | Cообщить модератору

107. "Выпуск nginx 1.24.0 "  +/
Сообщение от Аноним (51), 13-Апр-23, 13:54 
> SSL_sendfile() - нет такого.

Есть. И именно этот вызов и подразумевается под ktls в nginx.
Продублирую ссылку: https://www.nginx.com/blog/improving-nginx-performance-with-.../

Ответить | Правка | К родителю #85 | Наверх | Cообщить модератору

111. Скрыто модератором  +/
Сообщение от Аноним (-), 13-Апр-23, 14:12 
Ответить | Правка | Наверх | Cообщить модератору

112. Скрыто модератором  +/
Сообщение от Аноним (-), 13-Апр-23, 14:13 
Ответить | Правка | К родителю #107 | Наверх | Cообщить модератору

75. "Выпуск nginx 1.24.0 "  +/
Сообщение от Аноним (75), 12-Апр-23, 17:17 
https://www.nginx.com/blog/improving-nginx-performance-with-.../
На сайт сходить не пробовал?
Ответить | Правка | К родителю #24 | Наверх | Cообщить модератору

56. "Выпуск nginx 1.24.0 "  +/
Сообщение от Ivan_83 (ok), 12-Апр-23, 14:34 
Уже больше года как есть.
Ответить | Правка | К родителю #16 | Наверх | Cообщить модератору

77. "Выпуск nginx 1.24.0 "  +/
Сообщение от пох. (?), 12-Апр-23, 17:24 
> Уже больше года как есть.

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


Ответить | Правка | Наверх | Cообщить модератору

53. "Выпуск nginx 1.24.0 "  +/
Сообщение от Аноним (51), 12-Апр-23, 13:32 
> на липуксах кстати ему добавили поддержку sendfile2 ?

Так называемая "новая реализация sendfile", про которую было много шума в 2016 - работа разработчиков Nginx по решению конкретной проблемы с асинхронным IO на FreeBSD.

При чём тут линукс? У него такой проблемы нет.

Ответить | Правка | К родителю #13 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру