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

Исходное сообщение
"Для ядра Linux подготовлены оптимизации, повышающие производительность планировщиков ввода/вывода"

Отправлено opennews , 22-Янв-24 08:37 
Йенс Эксбо (Jens Axboe), создатель io_uring и планировщиков ввода/вывода CFQ, Deadline и Noop, продолжил свои эксперименты с оптимизацией ввода/вывода в ядре Linux. На этот раз под его внимание попали планировщики ввода/вывода BFQ и mq-deadline, оказавшиеся узким местом как минимум в случае скоростных накопителей NVMe...

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


Содержание

Сообщения в этом обсуждении
"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено iCat , 22-Янв-24 08:41 
> ...конкуренция блокировок снизилась с 94% до 23%

Впечатляюще...


"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Аноним , 22-Янв-24 09:10 
>При тестировании

Но Торвальдс предложеные патчи отклонил?


"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Аноним , 22-Янв-24 09:22 
Они пока в отдельной ветке на стадии обсуждения (RFC) и их ещё не предлагали включить в основное ядро.


"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено shardddin , 25-Янв-24 01:32 
Видимо, все-таки нужно их вносить... BFQ у меня работал для жестких дисков - были регулярные подвисания при просмотре, особенно, большеразмерных видео - все прошло при переключении планировщика на bore...

"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Sem , 01-Фев-24 17:08 
А чем дефолтный Deadline не устроил?

"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Аноним , 20-Мрт-24 11:21 
бэкпорты в 5.х будут ?

"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено лютый жабби.... , 22-Янв-24 10:09 
>Впечатляюще...

да не очень. а вот то что предыдущее подэлие этого прогера выкинули из дефолтов после пачки cve вот это действительно впечатляюще. как и то, что его до сих пор не забанили в LKML


"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Аноним , 22-Янв-24 17:38 
> да не очень. а вот то что предыдущее подэлие этого прогера выкинули из дефолтов
> после пачки cve вот это действительно впечатляюще. как и то, что его до сих пор
> не забанили в LKML

Ох, иди уже, переписывай вон фрибзду на хруст, или, вот - лучше на яву сразу, чтоб два раза не вставать.


"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Bottle , 22-Янв-24 23:20 
В идеале - использовать Tiny Core Linux, а весь юзерспейс держать на Джаве.

"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Аноним , 23-Янв-24 03:53 
> В идеале - использовать Tiny Core Linux, а весь юзерспейс держать на Джаве.

Чудак, купи уже себе андроид и не парься. Получишь примерно это как раз.


"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Oe , 22-Янв-24 18:33 
Я пишу с firefox 113, прошу держать в курсе о пачках cve

"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено нах. , 23-Янв-24 11:28 
> как и то, что его до сих пор не забанили в LKML

а кто тогда кот писать будет? Нет кота - нет взносов от платиновых, Линусу нечем кормить свою дочку, а она - жрьоооот.

А тут вообще вон - оптимизации, понимать надоть! Тут платиновые в очередь выстроятца.


"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Аноним , 22-Янв-24 09:21 
Ждем новые уязвимости

"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Oe , 22-Янв-24 18:35 
Нинидо, процессоры превращаются в тыкву быстрее чем успевают выпускать новые

"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено RM , 23-Янв-24 14:42 
Скорее неприятные тяжело воспроизводимые и еще тяжелее исправляемые баги

"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Аноним , 22-Янв-24 10:14 
А потом полезут побочные эффекты его экспериментов. Потом окажется что эти блокировки не просто так стояли. Просто тот кто делал изначальное решение уже не помнит или не в деле. И не может сказать причину принятия решения.

"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено n00by , 22-Янв-24 13:32 
> полезут побочные эффекты

Совершенно внезапно для экспертов, побочным эффектом планировщика ввода-вывода является запись в файлы.


"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Sw00p aka Jerom , 22-Янв-24 16:18 
планировщик ввода-вывода - файлами оперирует?

"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Аноним , 22-Янв-24 18:51 
Он куда важнее этих мелочей. Он говорит когда эти операции произойдут и в каком порядке. От балды куда-то в память писать задача нехитрая, решается тысячью и одним способом. Да хоть выходом за пределы массива.

"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено n00by , 23-Янв-24 08:15 
Определение терминов "побочный эффект" и "ввод-вывод" несложно найти самостоятельно.

"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Sw00p aka Jerom , 23-Янв-24 12:45 
> Определение терминов "побочный эффект" и "ввод-вывод" несложно найти самостоятельно.

Тогда надо указать "дебилу", который засунул документацию по ио-шедуллеру в раздел блок, чтобы он исправил и перенес в раздел файлсистемс.

https://docs.kernel.org/block/index.html


"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено n00by , 24-Янв-24 12:22 
>> Определение терминов "побочный эффект" и "ввод-вывод" несложно найти самостоятельно.
> Тогда надо указать "дебилу", который засунул документацию по ио-шедуллеру в раздел блок,
> чтобы он исправил и перенес в раздел файлсистемс.
> https://docs.kernel.org/block/index.html

Жду ссылку на твоё письмо в LKML.


"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Sw00p aka Jerom , 24-Янв-24 13:42 
> Жду ссылку на твоё письмо в LKML.

так это по вашей логике ио-шедуллер оперирует файлами, вот вы и пишите :)


"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено n00by , 24-Янв-24 17:19 
>> Жду ссылку на твоё письмо в LKML.
> так это по вашей логике ио-шедуллер оперирует файлами

Это по твоей логике так, потому что у тебя файлы лежат в папочке, а не в ФС на блочном устройстве.


"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Sw00p aka Jerom , 25-Янв-24 02:09 
> Это по твоей логике так, потому что у тебя файлы лежат в
> папочке, а не в ФС на блочном устройстве.

а шо, вне папочки файлы хоть лежат? :D


"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Аноним , 22-Янв-24 13:45 
Рискну, что опять быдет "Скрыто ботом-модератором"
По поводу -
"причину принятия решения"
- а их надо в коде выражать. Типа - статический ассерт. Или ещё какая проверка\завязка на что-то.
И ещё - а пресловутый здесь раст позволяет кодом выражать причины? (именно кодом а не комментариями в коде)

"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено ПомидорИзДолины , 22-Янв-24 14:39 
> а пресловутый здесь раст позволяет кодом выражать причины?

Да, позволяет. Но еще удобнее позволяет выражать причины на уровне типов.

Программиорование типами вообще классная штука. Рекомендую попробовать, например оценить удобство `Option` в сравнении с null_ptr.


"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Аноним , 22-Янв-24 17:40 
> Потом окажется что эти блокировки не просто так стояли.
> Просто тот кто делал изначальное решение уже не помнит или не в деле.
> И не может сказать причину принятия решения.

Так блокировки ж на месте остались, привет птичкодятлам. Просто работу с ними пересмотрели, что идиотизма стало меньше. Изначально система делала откровенную фигню, тратя дофига времени на какой-то "thrashing".


"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Oe , 22-Янв-24 18:37 
Эти блокировки стояли потому что интел занёс чтобы процессоры с супермега бустом на 6.6ГГц не троттлили хотя бы пол года с начала продаж.

"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Аноним , 22-Янв-24 20:08 
У Intel троттлинг на буст частоты сдела так что бы проходить бенчмарки с максимальным ускорением, а дальше включается троттлинг. Если запускать длинные бенчмарки или несколько раз подряд прогнать один и тот же бенчмарк то скорость процессора начинает падать на глазах.

"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Oe , 22-Янв-24 20:29 
На ведроидах висит демон, отслеживающий запуски популярных бенчмарков в тупую по названию, и передающий ядру параметры для тюнинга под конкретный бенчмарк, стоит пересобрать апкшечку с другим названием и результаты падают.

"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Аноним , 22-Янв-24 20:34 
А пруфы есть?

"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Oe , 22-Янв-24 20:59 
Ищи в прошивке, демон зовется что то вроде com.mediatek.mtkpower, конфиги с тюнингом хранятся в открытую в .xml файлах в etc, вроде power_config.xml, удаляешь конфиги и результат в бенчмарках тоже падает.

"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Аноним , 23-Янв-24 03:58 
> Ищи в прошивке, демон зовется что то вроде com.mediatek.mtkpower,

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

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

> конфиги с тюнингом хранятся в открытую в .xml файлах в etc, вроде power_config.xml, удаляешь
> конфиги и результат в бенчмарках тоже падает.

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


"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено RM , 23-Янв-24 14:43 
Ну первой начала Nvidia в своих дровах. Давно.

"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Аноним , 24-Янв-24 12:24 
Напомнило, лежит у меня телефон, Blackberry KeyOne, так у него в прошивке на уровне iptables были заблокированны IP адреса многих бенчмарков для android

Вот часть файла

```
/system/etc $ cat iptables-blacklist.sh
# This file will be removed as per JIRA 844536
# Custom blocking rules as per JIRA AVEN-9297
# Antutu blocked section
iptables -A OUTPUT -d 114.112.93.111 -j REJECT --reject-with icmp-net-unreachable
iptables -A OUTPUT -d 114.112.93.113 -j REJECT --reject-with icmp-net-unreachable
iptables -A OUTPUT -d 114.112.93.203 -j REJECT --reject-with icmp-net-unreachable
iptables -A OUTPUT -d 183.60.153.114 -j REJECT --reject-with icmp-net-unreachable
iptables -A OUTPUT -d 123.125.115.123 -j REJECT --reject-with icmp-net-unreachable
iptables -A OUTPUT -d 76.73.85.186 -j REJECT --reject-with icmp-net-unreachable
# CoreMark( AndEBench ) blocked section
iptables -A OUTPUT -d 198.154.241.10 -j REJECT --reject-with icmp-net-unreachable
...
```


"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено 12yoexpert , 22-Янв-24 12:42 
как дебажат race conditions на mutex-ах на таких скоростях? там ведь даже время не замерить, это повлияет на работу и даст невалидные результаты

"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Аноним , 22-Янв-24 12:50 
Синхронизацию отдебажить нельзя в принципе, как и другие редко воспроизводимые проблемы. Сначала долго медитируют на код и проверяют модель, потом детально разбирают баги через логи и корки.

"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено _oleg_ , 22-Янв-24 13:46 
А разбирательство с корками это не дебаг :-)?

"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Аноним , 22-Янв-24 14:03 
Это в основном разбор инцидентов. У автора выше совсем узкое понимание процесса отладки

"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Аноним , 22-Янв-24 17:43 
> Синхронизацию отдебажить нельзя в принципе, как и другие редко воспроизводимые
> проблемы. Сначала долго медитируют на код и проверяют модель, потом детально разбирают
> баги через логи и корки.

В кернеле таки есть инструменты для отлова факапов с блокировками. Lockdep, детектор deadlock, все такое.


"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Аноним , 22-Янв-24 19:14 
> Синхронизацию отдебажить нельзя в принципе

Это не так. Любой параллельный процесс может быть сериализован.


"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Аноним , 22-Янв-24 13:41 
логирование не?

"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Rev , 22-Янв-24 15:03 
Так вам ведь показали цифры. Вот так их замеряют и понимают, что скорость выросла :)

"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Аноним , 22-Янв-24 17:33 
Не знаю как в ядре, в юзерспейсе можно статистический профайлер заюзать: эпизодически тормозишь процесс, чтобы записать его IP, а потом смотришь на какие адреса попадает. Если оно на спинлоках или на залоченных мьютексах много времени проводит, то это легко ловится таким образом. Умозрительно рассуждая, я не вижу проблем такое в ядро тоже запилить. Тот код который под запретом прерываний работает, понятно не удастся так профайлить, но если ты по прерыванию таймера семплы собираешь, то оно автоматически не будет прерывать непрерываемый код, и таким образом ничего не испортит. Данных об этом коде ты не получишь, но и сломать его не сломаешь. Но это умозрительно.

"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Аноним , 22-Янв-24 17:45 
> Не знаю как в ядре, в юзерспейсе можно статистический профайлер заюзать:
> эпизодически тормозишь процесс, чтобы записать его IP, а потом смотришь на какие адреса

Питекантроп рассказывал о профилировании. Хотя-бы "perf" из линуха он не видел и поэтому как сие белый человек делает - он ессно не знает. Как и тот факт что в большинстве железок, даже ARM малохольных - много лет есть "HW perf counters". Чтобы всем вон тем - не заниматься.


"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Аноним , 22-Янв-24 20:21 
Железные каунтеры отстой, белые люди хайпуют на них, но у них ведь регистров с гулькин нос. Пускай белые люди решают эти проблемы, пытаясь угадать, где может тормозить. Мы, питекантропы, предпочитаем софтварно мерять, и сразу получать расклад по мастям.

> Хотя-бы "perf" из линуха

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


"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Аноним , 22-Янв-24 22:02 
> Железные каунтеры отстой, белые люди хайпуют на них, но у них ведь регистров с гулькин нос.

Для счета циклов CPU по моему аж 1 достаточно, на все и вся. И даже совсем без на минималках вроде работает, просто кривее.

И кстати он видит и кишки ядра, и внутренности программ. С именами, если дебаг символы нашел. И вот они, троглодиты. Как на ладони. Можно как раз и посмотреть кто тут жиртрест.

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

Вы что-то полезное сравнимо с сабжем оптимизировали? Волобуев, где ваш патч?!


"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Аноним , 22-Янв-24 22:17 
А с софтварной статистикой ты имеешь, грубо говоря, по счётчику на каждую исполняющуюся инструкцию, и все эти счётчики увеличиваются пропорционально количеству выполнений соответствующих инструкций.

> Вы что-то полезное сравнимо с сабжем оптимизировали? Волобуев, где ваш патч?!

Спросил меня "белый" аноним опеннета...


"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено RM , 23-Янв-24 14:45 
Например так: https://github.com/dvyukov/relacy
Но, как уже написали, в основном в голове.

"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Rev , 22-Янв-24 15:05 
> В случае с mq-deadline производительность после применения предложенных патчей при использовании NVMe-накопителя увеличилась с 1070К до 2560K операций ввода/вывода в секунду (IOPS), а конкуренция блокировок снизилась с 94% до 23%.

Так вот, почему телефоны на Андроиде так тормозят? :)


"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Аноним , 22-Янв-24 17:47 
> Так вот, почему телефоны на Андроиде так тормозят? :)

Что за телефон такой, с NVMe? Сколько IOPS он выдает? И зачем это телефону? А так приложуха на электроне тормозит на чем угодно. Хоть на EPYC ее ставь.


"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено cheburnator9000 , 23-Янв-24 04:53 
Electron приложения работают на андроидах в разы быстрее и без микролагов в интерфейсе по сравнению с их работой на ПК. Сравни например discord.

"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено cheburnator9000 , 23-Янв-24 04:52 
Телефоны на андроиде тормозят из-за фактора под названием "бюджетный ARM процессор" + бюджетная flash память.

У всей продукции apple идут pcie линии и nvme контролеры, но не раскатывайте губу у samsung и стандарта UFS 4.0 скорости записи чтения от половины до двух раз выше айфонов.

Ты видел сколько МБ занимают apk? Там что не приложение от банка то уже 200+ МБ. В каждом свой голосовой помощник, своя телеметрия и куча всего своего проприетарного никак не оптимизированного и собранного в режиме debug.


"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Аноним , 22-Янв-24 15:19 
Нужны года на обкатку. Доверие зарабатывается годами. Даже если Линус примет патчи, на ядре моего дистра это не скажется.

"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Oe , 22-Янв-24 18:40 
"Мы установим это обновление в период вашей неактивности"

"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Аноним , 22-Янв-24 19:30 
Вы можете выбрать когда, но всё равно это будет в самый неподходящий момент

"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено User , 24-Янв-24 08:57 
Как будто в этом есть что-то плохое )

"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Аноним , 22-Янв-24 19:08 
Lock-free структуры данных.

"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено RM , 24-Янв-24 18:27 
> Lock-free структуры данных.

неа. Lock free не значит contention free.


"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено Xo , 23-Янв-24 00:52 
Для таких устройств есть kyber, например. Всё остальное для hdd.

"Для ядра Linux подготовлены оптимизации, повышающие производ..."
Отправлено cheburnator9000 , 23-Янв-24 04:41 
Ну наконец-то теперь хоть по скоростям nvme под линуксом сравняются с windows? Или уже в 5.15 починили через io_uring? Спрашиваю для друга, у меня обычные SSD.