Arseniy
Не, я про HDD.
Vladislav
Не, я про HDD.
А они тут причём?
Arseniy
Ну на HDD при зеркале, скорость на чтение же удваивается?
Vladislav
Ну на HDD при зеркале, скорость на чтение же удваивается?
На SSD да, на HDD x1.4-1.9 в зависимости от типа нагрузки
Алексей
Ребята всем привет. подскажите, пожалуйста, как правильно сравнить производительность массива? Тестировал с помощью фио до тех пор пока не обнаружил что при повторном запуске (просто подряд) с теми же параметрами результаты различаются на 30%. Тестирую не на файловой системе, а на блочном устройстве непосредственно памяти 32гб размер тестовой выборки 128гб fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=/dev/sda --bs=4k --iodepth=64 --size=128G --readwrite=randrw --rwmixread=75 ткните где я дурак, пожалуйста.
Vladislav
При randrepeat у Вас постоянно они и те же случайные данные генерируются, само собой кэш какую часть из них запоминает Плюс опция refill_buffers
Алексей
Ребята, спасибо!
Art
Не в случае с ZFS пока не будет IO_direct
Хмм... Я просто думал, что раз с блоками 4k всё равно скорости маленькие, то эти ограничения ЗФС не скажутся. С блоками 4к скорости на практике измеряются лишь сотнями МБ/сек в лучшем случае. Всё равно отсутствие IO_direc скажется? Так хочется увдвоения скорости, и чтоб на ЗФС, и чтоб прямо сейчас)
George
Коллеги, вопрос: Если у NVME-диска заявлено 80к IOPS записи блоком 4K при QD32, то могу ли я рассчитывать, что зеркальный пул из 4-х таких дисков даст 160к IOPS записи?☺️
пока приложение не умеет работать напрямую с каждым диском - полностью кратный рост ничто не даст, если что
Art
Сделать x2 ssd дисков относительно текущих
под ssd имеются в виду sata/sas девайсы?
Vladislav
Да
Art
пока приложение не умеет работать напрямую с каждым диском - полностью кратный рост ничто не даст, если что
оо... понял. Ну, меня бы устроил даже и полуторный прирост. Но мне в прицнипе уходить с ЗФС не хочется, вот в чём дело... Там IO_Direct не на подходе ещё?🥹
George
оо... понял. Ну, меня бы устроил даже и полуторный прирост. Но мне в прицнипе уходить с ЗФС не хочется, вот в чём дело... Там IO_Direct не на подходе ещё?🥹
ну тут стоит на бенчи взглянуть, до 4 nvme zfs при норм проце и памяти ещё тянет, а вот дальше да, нужен o_direct
Алексей
При randrepeat у Вас постоянно они и те же случайные данные генерируются, само собой кэш какую часть из них запоминает Плюс опция refill_buffers
а как же --direct=1 ? насколько я понял из описания - randrepeat это паттерн чтения-записи т.е. самого теста. он то как раз и должен быть одинаковый если я хоть что то в чём то понимаю иначе это какой то не правильный мёд.
Vladislav
а у меня не зфс))))))
А причём тут тогда этот чатик?
Ivan
BAN !
Алексей
просто спросил как правильно протестировать производительность хранилища. сначала на кошках тренируюсь потом на зфс пойду
Ivan
а у меня не зфс))))))
на самом деле следовало сразу про это написать. потому что есть zfs специфичные вещи.
Алексей
не со зла, прада
Ivan
извините
ну просто мог получить неправильный ответ.
Vladislav
просто спросил как правильно протестировать производительность хранилища. сначала на кошках тренируюсь потом на зфс пойду
Впринципе разные алгоритмы тестирования. У ZFS Кэш Сжатие Запись + Проверка чексумм блоков Дедуп
George
не со зла, прада
@sds_flood тут могут накидать ещё
Алексей
проблема в том что разница в 30% при нескольких запусках
что как бы при выборке в 128гб такое себе
Алексей
При randrepeat у Вас постоянно они и те же случайные данные генерируются, само собой кэш какую часть из них запоминает Плюс опция refill_buffers
в общем вот такая конструкция даёт точно такой же разброс fio --randrepeat=0 --ioengine=libaio --direct=1 --gtod_reduce=1 --refill_buffers --name=test --filename=/dev/sda4 --bs=4k --iodepth=64 --size=8G --readwrite=randrw --rwmixread=75
Алексей
Ivan
https://pastebin.com/SDrNbDFs
чет непонятно какой латенси при всём при этом.
Алексей
да вообще не понятный тест...
Алексей
думал большим размером выборки можно будет как-то усреднить результаты а тут такое
Aleksei
https://pastebin.com/SDrNbDFs
это поверх чего тест запускался?
Алексей
это поверх чего тест запускался?
p420i 10ssd raid50 + ssd smart path, centos
Aleksei
p420i 10ssd raid50 + ssd smart path, centos
спасибо. интересный результат
Ivan
да вообще не понятный тест...
у меня fio чуть иначе инфу выводит инфу. Вот такой кусочек у тебя ожидал увидеть: slat (usec): min=51, max=11851, avg=111.16, stdev=407.41 clat (usec): min=4288, max=42206, avg=15343.75, stdev=503.21 lat (usec): min=4569, max=42312, avg=15455.50, stdev=516.32 clat percentiles (usec): | 1.00th=[15139], 5.00th=[15270], 10.00th=[15270], 20.00th=[15270], | 30.00th=[15401], 40.00th=[15401], 50.00th=[15401], 60.00th=[15401], | 70.00th=[15401], 80.00th=[15401], 90.00th=[15401], 95.00th=[15401], | 99.00th=[15795], 99.50th=[16057], 99.90th=[17695], 99.95th=[18482], | 99.99th=[30278]
Алексей
возможно этого кусочка нету потому что актвирован ssd smart path...
Алексей
из описания контроллера я так понял это включение использования кэша внутри диска
Art
Да
Расклад понятен. Или SSD+ЗФС или NVME+неЗФС Но всегда ведь хочется "быстро, качественно, дешёво". NVME всё же предлагают больше перформанса за те же деньги. Даже в случайном мелкоблоке раза в два больше. Узкое место выходит что ЗФС( Это обидное
Art
ну тут стоит на бенчи взглянуть, до 4 nvme zfs при норм проце и памяти ещё тянет, а вот дальше да, нужен o_direct
А вот это обнадёживает. Мне тут просто в рамках одного проекта нужно собрать флэш-сторадж Наверное всё же возьму четыре NVME, и постараюсь из них выжать побольше. И буду ждать IO_Direct😌
Art
Кстати, коллеги, а патчить IO_Direct вручную это вообще нормально? Я слышал, что это возможно, но какие минусы, подводные камни?
George
Кстати, коллеги, а патчить IO_Direct вручную это вообще нормально? Я слышал, что это возможно, но какие минусы, подводные камни?
ну патч можно наложить себе, но он ещё WIP, надо смотреть что там не готово, и может стрельнуть
Art
Оо, вот как... Не для прода значит от слова совсем
George
всё, что хотя бы не в мастере - стоит юзать только с пониманием кода
riv
Коллеги, вопрос: Если у NVME-диска заявлено 80к IOPS записи блоком 4K при QD32, то могу ли я рассчитывать, что зеркальный пул из 4-х таких дисков даст 160к IOPS записи?☺️
Сложный вопрос. Если говорить о чисто синхронном трафике, то получится менее 80K iops. Нане синхронном трафике, скорее всего будет намного больше 160Kiops, т.к. фактически возникнет writeback-буфер. В реальности, но zfs результаты лучше чем по тестам, если падает нагрузкас нескольких вм, например.
Vladislav
"будет намного больше 160Kiops" Не будет
Vladislav
Это уже не sync записи
Vladislav
Это цифры IOmeter на NTFS файловой системе
riv
Сделать x2 ssd дисков относительно текущих
Еще можно метаданнные вынести на отдельные ssd с хорошей латентностью. Например на optane.
Алексей
возможно этого кусочка нету потому что актвирован ssd smart path...
в общем, ребят ssd smart path тут ни при чём. персентили не появились. НО! запустил с параметром --numjobs=4 и результаты теперь более менее стабильные. похоже недозагружена было хранилище одним джобом, поэтому и плавало всё
Алексей
всем спасибо!
riv
оо... понял. Ну, меня бы устроил даже и полуторный прирост. Но мне в прицнипе уходить с ЗФС не хочется, вот в чём дело... Там IO_Direct не на подходе ещё?🥹
Уходить из чисто релегиозных соображений - дрочке на результаты синтетических тестов? Извините за грубую формулировку. Я приведу такой пример. Стстема тупила на аппаратном рейд с батаоейкой и writeback на 10 дисках в raidz10 и lvm поверх. Такая конфигурация двет больше iops чем zfs на тех же дисках в зеркале. После переноса на zfs на том же оборудовании (и замене аппаратный raid на hba) стало работать с запасом по нагркзке на диски, т.е. диски простаивали! И это во времена zfs 0.8x, нагрузку создавали windows-гости на libvirt Если уходить собрались, то интересно на что?
Алексей
больше уже не влияет
Art
О, у меня ещё один вопрос, коллеги) Вот смотрите. Консумерские NVME заявляют куда большие скорости/айопсы чем энтерпрайзные Но в любом обзоре на NVME есть скриншот, который показывает как резко падает скорость после записи первых N гигов Типа первые 200 гигов запишутся на супер-мега скорости, а потом всё, обломинго, скорость резко падает Это происходит из-за исчерпания псевдо-SLC области диска, так? Тогда как энтерпрайзные диски держат свою скорость ровно. Пусть и не такую супер-высокую.
Art
И вот вопрос: а для случайных мелкоблочных операций это⬆️ тоже справедливо? Или в этом случае разницы между консумерскими и энтерпрайзными дисками не будет?
George
чтение с qlc может быть быстрым, в общем то
George
я ржу со штатного nvme в playstation 5, он на поточную запись около 300МБ/с тянет, зато на чтение около 3ГБ/c чтоли
Vladislav
В пользовательских nvme при постоянной нагрузке (а у Вас всегда будет нагрузка в сервере), у Вас будет две ситуации 1) резкий дроп производительности до 80-100 МБ/с с ростом задержки до 0.6-1сек, когда будет трим отрабатывать 2) аналогичная ситуация, когда Вы превысите определенный % заполнения диска
George
ко мне прибегал товарищ, который повесил дешманские ссд за недошитый raid-hba, который не пропускал тримы. Раком оно эффектно вставало) трим в целом лечит, но с оговоркой что поток записи не на 100% утилизирующий диски
Art
смотря каких операций
У меня сторадж будет с преимущественно записью. Вообще это будут виртуалки, соотв много случайного мелкоблока, много потоков, с разной глубиной... Поэтому на NVME нацелился
Vladislav
Если Вы ищите скорость Вам скорее LVM/mdadm нужны
Georg🎞️🎥
Если Вы ищите скорость Вам скорее LVM/mdadm нужны
А что это ? Надёжность пониже будет ?🤔
Vladislav
А что это ? Надёжность пониже будет ?🤔
http://xgu.ru/wiki/LVM http://xgu.ru/wiki/mdadm
Vladislav
LVM слегка умный рейд mdadm предельно тупой софт рейд
Georg🎞️🎥
Vladislav
Ага … тупой но типа быстрый ?:)
Да, он фактически работает напрямую с блочным устройством с минимальным количеством буферов