Viktor
при линейний операциях так и происходит
Viktor
диск пишет сектора подряд
Roman
несколько мелких записей рядом диск может обработать разом
Roman
но!
Roman
выше есть очередь в самом линуксе
Mark ☢️
несколько мелких записей рядом диск может обработать разом
АХА! а я думал наоробот профит при рандомной записи
Roman
и весьма высока вероятность что операция будет смержена уже атм
Mark ☢️
мол типа успевает спозиционироваться за время проворота несколько раз
Mark ☢️
зависит от размера записываемого, кмк
кмк ? что это. ну и в чём суть зависимости?
Roman
ну смотри. у тебя на блочном устройстве есть фс, да?
Roman
когда ты на неё пишешь, фс находит свободные блоки и запись идёт туда.
Mark ☢️
в будущем не будет ФС (bluestore)
Roman
в будущем не будет ФС (bluestore)
ну вот не надо вот этого.
Roman
в будущем будет pmem
Mark ☢️
ну вот не надо вот этого.
согласен, пока не будем
Roman
я не понимаю, что ты хочешь. ncq - это такая task queue, как и очередь в linux.
Roman
если задания в ncq попадают уже правильно упорядоченные то толку от неё не будет
Roman
ну и глубина очереди в linux по дефолту 128 команд, что в 4 раза больше самой ncq. я не думаю, что тут можно что-то сильно выиграть.
Mark ☢️
линукс упорядочивает как шедулеру хочется, а диск упорядочивает как на блинах лежит
Mark ☢️
у них разные же понятия правильности
Mark ☢️
ПРИКОЛЬНО
Mark ☢️
fio падает в коредамп если удалить цефный пул во время бенчмаркинга
Mark ☢️
(случайно) во время экспериментов
Mark ☢️
Шо?
что не так ?
Roman
Шо значит "как шедулеру хочется"?
Mark ☢️
ну так он он же и шедулер чтобы очереди переставлять как вздумается. (а я думаю ещё и сектора между барьерами)
Mark ☢️
как вздумается — это имеется в виду, в соответствие с алгритмами шедулера дабы обеспечить все настроенные в нём крутилки
Mark ☢️
но с точки зрения приложений — это "как вздумается".
Roman
Вот есть deadline, есть cfq
Mark ☢️
ну дак они же занимаются перестановками, верно ?
Roman
И?
Mark ☢️
мы же им чётко не говорим порядок выполнения операций?
Mark ☢️
это вопрос на вопрос
Mark ☢️
ну мы же не говорим, верно?
Roman
ну мы же не говорим, верно?
да. потому что у нас нет возможности.
Roman
да и это было бы тогда полным нарушением абстракции
Mark ☢️
значит шедулер сам решает как именно выполнить его работу.
Roman
ну и?
Mark ☢️
ну так это и есть "как ему вздумается"
Roman
и?
Mark ☢️
блджад
Mark ☢️
10 goto 10
Roman
с чего вывод, что "как ему вздумается" - это равносильно "не как на блинах лежит"?
Roman
я такого не говорил
>линукс упорядочивает как шедулеру хочется, а диск упорядочивает как на блинах лежит
Mark ☢️
линукс же в случае с CFQ может упорядочить не так как на блинах, а в соответствие с тем какие приоритеты админ понаставил на тредах
Roman
причём тут io приоритеты процессов и расположение на диске?
Mark ☢️
причём тут io приоритеты процессов и расположение на диске?
линуксный шедулер переупорядочивает по одним критериям, а когда пачка пришла в диск, то он может переупорядочить это в рамках того что ему скормили в своём порядке.
Mark ☢️
верно ?
Roman
посмотри, как работает тот же deadline
Mark ☢️
погоди. у меня есть конкретный вопрос
Mark ☢️
сейчас, получу цифры.
Roman
он ориентируется по 2 критериям: оффсету в request и дедлайну.
Roman
точнее, он постоянно поддерживает 2 сортированные очереди
Roman
и да, считается что 2 сектора с близкими по значению номерами лежат рядом.
Mark ☢️
пжжи.
Mark ☢️
есть вопрос из практики который я не доконца понял.
Mark ☢️
fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --bs=4k --iodepth=1 --size=1G --readwrite=write --filename=/dev/sdb
Mark ☢️
write: io=13492KB, bw=491403B/s, iops=119, runt= 28115msec
Mark ☢️
500 кб/сек
Mark ☢️
теперь увеличиваем иодепс
Roman
и?
Mark ☢️
(считается)
Mark ☢️
write: io=17040KB, bw=981602B/s, iops=239, runt= 17776msec
Mark ☢️
тоесть 1 МБ/сек
Mark ☢️
иодепс ставим 2 и получается вот это:
Mark ☢️
Вопрос — почему так произошло?