URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 130618
[ Назад ]

Исходное сообщение
"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_uring"

Отправлено opennews , 29-Май-23 11:53 
Опубликован выпуск библиотеки libuv 1.45.0, применяемой для мультиплексирования соединений и асинхронной обработки ввода/вывода во многих проектах, нацеленных на высокопроизводительную обработку сетевых и файловых запросов, например, в платформе Node.js, DNS-серверах BIND 9 и Knot DNS, HTTP-сервере H2O, Lua-фреймворке  Luvit,  виртуальной машине MoarVM,  языке Julia и   Python-фреймворке uvloop. Библиотека позволяет организовать цикл обработки событий в неблокирующем режиме, реализованный на базе таких методов, как epoll в  Linux, kqueue в BSD и macOS, IOCP в Windows и event ports в Solaris. Код проекта написан на языке Си и распространяется под лицензией MIT...

Подробнее: https://www.opennet.me/opennews/art.shtml?num=59213


Содержание

Сообщения в этом обсуждении
"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Аноним , 29-Май-23 11:53 
Т.е. теоритически работа Ноды может зависеть от версии ведра лол?

"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Аноним , 29-Май-23 13:07 
Нет, практически зависит текстового редактора.

"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Аноним , 30-Май-23 03:09 
Охренеть, оказывается, запросы програм на IO выполняет кернел операционки. Вот это прозрение!

"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено iiiypuk , 30-Май-23 07:18 
Ранее из каждой жели орали "Linux не ниже 2.6"

"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Аноним , 29-Май-23 12:03 
теперь однопоточная нода будет работать быстрее, чем типичная многопоточная прога на сишке, в которой авторы по религиозным соображениям ограничивает себя posix api (у дидов на юниксе не было io_uring)

"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Annnno , 29-Май-23 12:21 
Мультимилионы зависимостей с вами не согласятся

"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Аноним , 29-Май-23 12:38 
у мультимиллионов зависимостей require('fs') автомагически получит ядерно-поддерживаемую асинхронщину вместо тред-пул-бейзед.

"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено keydon , 29-Май-23 12:40 
Внезапно ОС-специфичные штуки нередко оказываются быстрее, но влияют на совместимость.
Никогда так не было и вот опять.

"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Аноним , 29-Май-23 13:09 
Софт, не совместимый с AIX — не софт вовсе. Даже если поддержка совместимости вызывает проблемы и заставляет отказываться от новых фич — она обязана быть, ведь это UNIX-way

"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Аноним , 29-Май-23 13:44 
Да ладно, в продакшоне уж давно Linux way.

"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Самый Лучший Гусь , 29-Май-23 13:11 
А ничего кроме линукса в средне-вминяемом продакшене и не бывает. А там где бывает как правило быстрота не нужна.

"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено keydon , 29-Май-23 14:09 
> А ничего кроме линукса в средне-вминяемом продакшене и не бывает. А там
> где бывает как правило быстрота не нужна.

Фряхи еще встречаются в вменяемых продакшенах.


"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Аноним , 29-Май-23 14:47 
Опять сейчас нетфликс притащат (а больше нечего).

"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено КриоМух , 29-Май-23 19:04 
Как это больше ничего? Ещё контора в которой я одминю. У меня тут пожалуйста и бэкапы и почтовик и vpn сервер и nginx и сайтики в клеточках и телефония многоголовая, всё это на милой фряшечке. Работает, не жужжит, пить - есть не просит.

"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено mistiq , 30-Май-23 04:26 
Нежно люблю фряху (академической любовью) но как конторка с сайтиками, телефонией и прочими впнами на фряхе коррелирует со словом "вменяемая"?

"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Кровосток , 30-Май-23 08:19 
Многократно извиняюсь, что влезаю в ваш разговор.
Но человек выше - описал свой продакшен, описал что у него там работает. Вы поставили под сомнение вменяемость его личного прода, почему?

"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено mistiq , 30-Май-23 08:21 
> Многократно извиняюсь, что влезаю в ваш разговор.
> Но человек выше - описал свой продакшен, описал что у него там
> работает. Вы поставили под сомнение вменяемость его личного прода, почему?

Прочитайте всю ветку, так есть ответ на ваш вопрос, в том числе и в моем ответе этому человеку.


"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Tron is Whistling , 30-Май-23 09:40 
> Фряхи еще встречаются в невменяемых продакшенах.

Fixed.


"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Аноним , 29-Май-23 13:52 
так вся эта библиотека и есть обертка для совместимости и единообразности работы с зоопарком - вокруг кучи разных костылей разных систем тебе дают единый костыль со своей единой абстракцией. Т.е., упрощенно, под капотом (под единой универсальной абстракцией) была спрятана поддержка 4-х движков, чтобы ты не мучался с каждой системой по отдельности и сейчас тебе добавили очередной частный 5-й. Да, это повлияло на совместимость - совместимость библиотеки с системами и их механизмами увеличилась. И да, тут получилось удачно, вопреки мему про "14-ть несовместимых + 1 универсальный протокол = 16 несовместимых протоколов" - этот "нулевой универсальный протокол" вышел таки хорошечным.

"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Аноним , 29-Май-23 15:55 
Однопоточная нода будет работать быстрее из-за ключевой C-библиотеки - libuv.so

"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Вы забыли заполнить поле Name , 29-Май-23 18:11 
Она статически линкуется

"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Аноним , 30-Май-23 05:34 
> теперь однопоточная нода будет работать быстрее, чем типичная многопоточная прога на сишке,
> в которой авторы по религиозным соображениям ограничивает себя posix api (у дидов на
> юниксе не было io_uring)

...благодаря сишной либе? Легко стоять на плечах гигантов :)


"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Аноним , 29-Май-23 12:45 
А для Rust будет?

"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Ananimus , 29-Май-23 12:46 
Да, уже занесли.

"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Аноним , 29-Май-23 13:08 
Из безопастного языка вызывать небезопасную библиотеку? Некошерно же. Перепешите на Rust.

"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Аноним , 29-Май-23 13:14 
Почему, некошерно? Ведь уже известно, что на расте нельзя ничего написать серьёзного. И такими темпами не скоро ещё можно будет, где асинхронные генераторы? Сколько генераторный голод будет продолжаться? Это всё бюрократы проклятые. А так, любители поиграться со ржавчиной порадуются хоть.

"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Аноним , 29-Май-23 13:19 
Слишком жирно, попробуй еще раз.

"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Аноним , 29-Май-23 13:22 
Не, это то, почему лично я отправил раст на помойку до лучших времён, питон куда лучше справляется с асинхронной нагрузкой, и не зависанет рандомно опять же (и никакой возможности определить из-за чего).

"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Иисус , 29-Май-23 13:57 
Так давно уже всё написали. Вон в tokio поддержка ещё в далёком 2021 году появилась: https://tokio.rs/blog/2021-07-tokio-uring

"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Аноним , 29-Май-23 16:57 
https://lib.rs/crates/ringbahn

"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Вы забыли заполнить поле Name , 29-Май-23 18:08 
> https://lib.rs/crates/ringbahn

4 releases
0.0.0-experimental.3     Jun 19, 2020
0.0.0-experimental.2     Jun 8, 2020
0.0.0-experimental.1     May 27, 2020
0.0.0-experimental     May 26, 2020

Узнаю растоманов - люботелей обмазаться (не)свеженьким


"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Аноним , 29-Май-23 13:09 
8 мегабайт стек? Это много или мало? Типичный асинхронный пул в районе сотен тредов.

"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Аноним , 30-Май-23 17:28 
Но ведь она не выделяется вся сразу, а только необходимый объем?

"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Аноним , 29-Май-23 14:54 
>выставление единого размера стека в 8 МБ для пула потоков на всех архитектурах и платформах

low-memory системы теперь на свалку?


"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено _hide_ , 29-Май-23 16:39 
У разработчиков всё работает :-)

"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Аноним , 29-Май-23 16:55 
Тащить целую библиотеку в low-memory system? Ну уж нет, двигай биты вручную, как диды, ведь ты же именно этого хочешь, признайся себе. Кто не хочет, пусть берёт с полки читы с большим количеством памяти, благо они и дёшевы, и доступны для любого практического применения.

"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Аноним , 29-Май-23 22:49 
>двигай биты вручную, как диды

Смузи не расплескай. Биты не трогай, даешь булев тип в 64 бита!


"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено YetAnotherOnanym , 29-Май-23 17:24 
Там обычно не требуются скорости, для которых придуман сабж.

"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Аноним , 29-Май-23 20:20 
1. Зато там требуется энергоэффективность. А снизив оверхед (бесполезную трату времени, а значит - энергии (E = P * T, P = U**2/R * долю "светлого" кремния) можно либо большей энергоэффективности добиться, либо большей производительности.
2. Разработчики софта тебя спросить забыли. Просто возьмут и притащат либу, потому что им так удобно. И потребуют новую версию, потому что это тоже удобно, и там могут функции и API появится.

"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Аноним , 29-Май-23 20:23 
Доля "светлого" кремния регулируется аппаратно в зависимости от того, на что чип рассчитан, программист её может только уменьшить, отправив программу спать. А уменьшение оверхеда - это уже работа программера.

"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Славик , 29-Май-23 20:52 
А зачем сабж для таких систем? Пользуй liburing.

"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Аноним , 30-Май-23 19:07 
> low-memory системы теперь на свалку?

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

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

В третьих, малоемкие чипы уже с производства поснимали в целом и проблема как-то сама собой отпадает, даже десятибаксовый одноплатник не напряжется особо. Остается разве что совсем винтажное железо. А у вас там точно вообще будет libuv последней версии на таком железе, хоть когда-нибудь?


"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено ivan_erohin , 29-Май-23 20:16 
где анон, писавший в каждой новости про баги в io_uring "ненужное ненужно" ?
интересно, что он напишет сейчас ?

"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено анон , 29-Май-23 23:24 
> интересно, что он напишет сейчас ?

разумеется - "ненужное ненужно" напишу.

Безусловно твоя поделка на ноде тормозит из-за недостаточно модного апи в недостаточно свежей оберточке. А не потому что js с лефтпадами.


"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Tron is Whistling , 30-Май-23 09:43 
"применение io_uring в libuv позволяет добиться повышения пропускной способности в 8 раз"

Пропускной способности чего? В случае того же BIND обработка запросов тяжелее их пересылки в разы.
Или там пропускная способность фекалий в системе отведения измерялась?


"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Tron is Whistling , 30-Май-23 09:44 
А я таки не ошибся :D

"Did some basic benchmarking, and it's giving me > 8x performance when reading small chunks out of /dev/zero"


"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Tron is Whistling , 30-Май-23 09:46 
Ну и дальше, как обычно с иоуриной, началось...

"You know what's coming now... This change has introduced regressions in some file operations"
"So an official way to disable io_uring, preferably through the API, would be necessary for us."

Короче все проблемы с этой хренью у libuv ещё впереди :D Действительно, отключение не помешает.


"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено another_one , 30-Май-23 11:05 
Можешь глянуть бенчмарки ноды с обновленным libuv:
https://ci.nodejs.org/view/Node.js%20benchmark/job/benc...

"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Tron is Whistling , 30-Май-23 12:57 
Зачем мне нода?

"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено another_one , 30-Май-23 12:58 
Ну ты просил реально применение, а не /dev/zero

"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Tron is Whistling , 30-Май-23 12:59 
Это знаешь, как к газели двигатель от спорта приделывать. Смысл тот же.

"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Tron is Whistling , 30-Май-23 12:59 
Тем более что про неё всё выше правильно отметили

"Безусловно твоя поделка на ноде тормозит из-за недостаточно модного апи в недостаточно свежей оберточке. А не потому что js с лефтпадами"


"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Аноним , 30-Май-23 14:01 
Я просто оставлю это здесь. https://unixism.net/loti/

"Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_ur..."
Отправлено Анином , 05-Июн-23 14:25 
Было сравнение io_uring и epoll в работе с потоком. Epoll отказался быстрее.