Станислав
Зил то причём тут
Потому, что это кеш на запись.
Vladislav
Какая ФС и как тюнингована на zvol?
https://www.reddit.com/r/zfs/comments/wgyf3p/zolfio_randwrite_nvme_bs8k32io_148mbs/
Vladislav
Сейчас - zpool create -o ashift=12 -O compression=lz4 -O atime=off -O recordsize=8k nvme /dev/nvme0n1 /dev/nvme1n1 /dev/nvme3n1
Georg🎞️🎥
Потому, что это кеш на запись.
Это ни разу ни кэш на запись
Станислав
Это ни разу ни кэш на запись
https://docs.oracle.com/cd/E19253-01/820-0836/gfgaa/index.html
Станислав
Первый абзац
Vladislav
Смысла в 512 форматировать нвме вроде как давно уже нет. Коллеги, поправьте, если ошибаюсь.
Пробовал и nvme format -l 0 ashift=9 и nvme format -l 1 ashift=12 - да скорость повысилась (30% примерно), но это увеличение с 154миб до 202 миб
Georg🎞️🎥
Первый абзац
Укажите пожалуйста словосочетание или синоним его - кэш на запись 👋
Fedor
Это не кеш, а быстрая фиксация транзакции
Станислав
Сначала запись происходит в журнал транзакций, а потом уже в пул. Если ZiL вынести на отдельное устройство, то по смыслу он кэш
Vladislav
Это не кэш запись на запись в плане тиринга, где сперва все данные пишутся туда, а потом в свободное время идут на холодное хранилище. Это кэш на запись в плане inode, куда сливаются очень мелкие блоки, чтобы потом отправить их на пул
Vladislav
Айноды это в другой абстракции.
Окей, терминология не самая моя сильная сторона
Fedor
Возвращаюсь: как это устроисвто помогает ворочать медиа файлы ?🤔
Почти никак. Но зависит от нагрузки. Если много небольших записей - ускорит отзывчивость. Пример - БД. А на запись линейно больших файлов смысла особо нет
Fedor
Так и так в диски будет упираться
Vladislav
Возвращаюсь: как это устроисвто помогает ворочать медиа файлы ?🤔
Оно поможет если Ваше ПО постоянно куда-то записывает мелкие метки на диски, вместо того, чтобы просто читать с них. Если Ваше ПО целиком выгружает файл в оперативу, а потом сохраняет каждые 5 минут на диск - то никак
Georg🎞️🎥
Почти никак. Но зависит от нагрузки. Если много небольших записей - ускорит отзывчивость. Пример - БД. А на запись линейно больших файлов смысла особо нет
Это то я знаю )) хотел чтобы товарищ написал )) я убрал из своей схемы его давно 🤷🏻‍♂️и так пуляет хорошо на запись
Vladislav
Сейчас - zpool create -o ashift=12 -O compression=lz4 -O atime=off -O recordsize=8k nvme /dev/nvme0n1 /dev/nvme1n1 /dev/nvme3n1
lz4 никак не влияет на результаты fio, по крайней мере, не больше 0.5% recordsize=8к режет максимальную скорость до 1200 миб/с, а если ставить 64к, то скорость конечно 2к миб (при блоках fio 64k), но то это полностью убивает нагрузку в 4к и 8к
Fedor
Можно нагрузку раскидывать по разным датасетам или зволам, смотря что у вас там
Vladislav
Можно нагрузку раскидывать по разным датасетам или зволам, смотря что у вас там
zpool create -o ashift=12 -O compression=lz4 -O atime=off -O recordsize=8k nvme /dev/nvme0n1 /dev/nvme1n1 /dev/nvme3n1
Vladislav
Просто 3 диска nvme в stipe
Vladislav
Всё
Fedor
8к практически бессмысленно
Fedor
Почти все ОС делают объединение операций ввода вывода
Fedor
Начать с 64 или 128, а там посмотреть
Fedor
Основное что надо тестить это чтение под рабочей нагрузкой
Vladislav
Начать с 64 или 128, а там посмотреть
То есть при блоке 64к скорость fio с блоками 4k - 60 миб/сек при NVMe дисках это норм?
Fedor
Зависит от количества потоков
Fedor
И тормознутости среды - например через эзернет будет медленнее
Vladislav
Зависит от количества потоков
iodepth=32, numjobs=1, внутри системы
Fedor
Намджобс сделай например 32-64
Fedor
Зфс это не про производительность в однопотоке
Ivan
Смысла в 512 форматировать нвме вроде как давно уже нет. Коллеги, поправьте, если ошибаюсь.
недавно читал что какая-то модель на 512 оказалась быстрее. хотя это исключение из правил.
Vladislav
Зфс это не про производительность в однопотоке
Хорошо, в чём тогда такая принципиальная разница при тестах на запись на устройство? Каким образом raid0 из трёх дисков mdadm просто умножает на x3, а у ZFS остаётся производительность одно диска?
Vladislav
Зфс это не про производительность в однопотоке
numjobs=32 и numjobs=4 показывают одинаковую производительность для recordsize=8к с блоком fio 64к ~400 миб/с
Fedor
Настолько глубоко не закапывался, но стоит учитывать это. Райд не транзактная штука. А зфс- да. Транзакции нужны для консистентности. Что в БД, что в ФС без транзакций оно работает быстрее. Ещё по ряду нюансов вроде как для одного потока зфс работает на скорости самого медленного диска.
Fedor
Переключи блок в 64
Vladislav
zpool create -o ashift=12 -O compression=lz4 -O atime=off -O recordsize=64k nvme /dev/nvme0n1 /dev/nvme1n1 /dev/nvme3n1 -f fio -name=rndw4k16 -ioengine=libaio -direct=1 -buffered=0 -invalidate=1 -filesize=30G -numjobs=32 -bs=8k -iodepth=32 -rw=randwrite -filename=/nvme/temp.tmp WRITE: bw=448MiB/s (470MB/s), 13.1MiB/s-15.4MiB/s (13.7MB/s-16.2MB/s), io=18.2GiB (19.5GB), run=41455-41539msec
Fedor
Так как смысла в целом в этом тесте нет
Fedor
Ты на каждый блок 8кб читаешь 64кб
Vladislav
Поэтому я и делал изначально recordsize=8k. учитывая, что я планирую выдавать это в vmware - Винда, линукс, Cisco и кучка БД конечно не особо будут рады, когда им скажут, что в 4к писать низя
Fedor
Бд скорее всего в 32кб будет писать
Fedor
Разнести нагрузку по разным датасетам
Fedor
Нфс кстати пишет не кусками по 4-8
Vladislav
Так как смысла в целом в этом тесте нет
При 64к пуле и fio 64к я получаю 3.2 миб, что в целом /50% от mdadm (который упирается уже в шину диска)
Vladislav
Нфс кстати пишет не кусками по 4-8
А он тут причём? Выдаваться это будет по iSER
Fedor
Ок
Vladislav
Бд скорее всего в 32кб будет писать
Windows с ntfs с дефолтным 4к и linux с ext4 и дефолтным 4к и mysql с дефолтным 16к - конечно их всех можно тюнить
Fedor
zil для nvme?
А, да. Не надо
Fedor
Если сервисы ЗФС стоят этих 50 процентов, то ставь ее
Vladislav
А, да. Не надо
В том и дело! Ладно бы это результаты были для 3 SATA ssd или 30-40-50 HDD. Это NVMe!
Vladislav
Если сервисы ЗФС стоят этих 50 процентов, то ставь ее
50% если мы берём за данность что все БД\ОС, даже Cisco IOS и прочие проприетарные ОС, будут писать объединяя операции ввода\вывода
Vladislav
Иначе это 2800 МиБ для mdadm vs 325 МиБ у ZFS Что мягко говоря вызывает у меня wtf
Fedor
Транзакции и CoW
Fedor
Цена надёжности и консистентности
Fedor
Если это не нужно, то и смысла особо нет
Vladislav
Цена надёжности и консистентности
То, есть консистентность в 0 рейде съедает 92% пропускной способности?
Fedor
Она просто работает иначе :) Если рейд0, то в зфс смысла вообще нет
Vladislav
Цена надёжности и консистентности
То есть на Ваш взгляд это нормально?
Fedor
То есть на Ваш взгляд это нормально?
Зфс показывает себя с точки зрения производительности на продуманной настройке и соответствующих задачах
Vladislav
Зфс показывает себя с точки зрения производительности на продуманной настройке и соответствующих задачах
При продуманной настройке всех ОС, БД, проприетарного софта, что лежат выше?
Fedor
Необязательно, это всего лишь потребители
Fedor
На скорость отзывчивости фс не влияют
Vladislav
Необязательно, это всего лишь потребители
Размер блока которые они используют для записи
Fedor
Они в 99 процентах случаев используют агрегацию
Fedor
Данные пишутся по CoW линейно