Сергей
#benchmark https://pastebin.com/CkS7zv76 lsi 9211 fsync=1 RAID10 8HDD 4Tb compression=lz4 ashift 12 + slog 2xp4801x fsync=1 + lz4 + slog
а без SLOG такой же тест был (fsync=1)? Чтобы понять насколько в вашем случае SLOG улучшил показатели
Vyacheslav
нет, сделаю
Vyacheslav
завтра )
Vyacheslav
Сергей
спасибо за результаты!
Vyacheslav
интересно, почему write почти такой же как randwrite
Vyacheslav
WRITE: bw=59.7MiB/s (62.6MB/s) RANDWRITE: bw=56.0MiB/s (59.7MB/s)
Сергей
WRITE: bw=59.7MiB/s (62.6MB/s) RANDWRITE: bw=56.0MiB/s (59.7MB/s)
вроде при синхронной записи zfs не может собрать несколько подряд идущих записей чтобы из них сделать последовательную запись. Но возможн, Георгий меня поправит
Vyacheslav
А VM в proxmox какую запись использую по умолчанию?
Сергей
если параметры кэша стоят по умолчанию, то sync
Сергей
хотя кажется я не прав: https://pve.proxmox.com/wiki/Performance_Tweaks#Disk_Cache
Vyacheslav
При blocksize 32 производительность на запись выше в 2 раза
Vyacheslav
есть ли смысл и интересно, как это соотносится с сжатием lz4
Сергей
При blocksize 32 производительность на запись выше в 2 раза
сильне сжатие будет соответственно. Но не забывайте что чаще происходят короткие записи. Если конечно внутри ВМ не будет работать что-то, что постоянно будет писать на диск данные.
Vyacheslav
Когда дойду, сделаю pgbench на vm с разным blocksize.
Vyacheslav
Vyacheslav
все, теперь точно
Сергей
Когда дойду, сделаю pgbench на vm с разным blocksize.
делать postgres внутри ВМ - не очень хорошая идея. слишком много уровней вложенности получается
George
вроде при синхронной записи zfs не может собрать несколько подряд идущих записей чтобы из них сделать последовательную запись. Но возможн, Георгий меня поправит
Ну zil'у пофиг, а в txg оно может и успеть смержиться. В общем то в том и прелесть cow и zfs в частности, что рандомная запись несложным действием превращается в поточную. А поточное чтение в рандомное😁
George
Этот merge имеет свои огрехи, но работает)
George
Вы главное если zvol тестите, то в таком кейсе его полностью заполненным тестите тоже чтобы worst case увидеть
George
А пока он пуст (т.е. Sparsed) рандомная запись оч легко мержится)
Vyacheslav
Ок, интересно.
Vyacheslav
challenge accepted
George
Сначала вы упрётесь в тротлинг записи, а потом вы дойдёте до её тюнинга)) но это я спойлерю
Vladislav
в общем, вы нагрузили человека на выходные
Sergey
а что спешл вдев даст в случае с виртуалками кроме быстрой метадаты?
Sergey
допустим вся запись с гипервизора идет sync
Сергей
а что спешл вдев даст в случае с виртуалками кроме быстрой метадаты?
Скорее ничего в данном случае. Для синк можно slog использовать. Ну и переходить на ссд на основных вдев если там хдд
George
а что спешл вдев даст в случае с виртуалками кроме быстрой метадаты?
Ну оно в целом по иопс и пропускной способности пул улучшает, если он на hdd
Сергей
Ну оно в целом по иопс и пропускной способности пул улучшает, если он на hdd
Кстати вопрос - а не мелькала ли у разработчиков мысль использовать ссд в качестве write cache если пул собран из hdd? Типа быстро пишем на ссд, а потом когда нет нагрузки на диски переносим туда данные из ссд. Или овчинка выделки не стоит?
George
Кстати вопрос - а не мелькала ли у разработчиков мысль использовать ссд в качестве write cache если пул собран из hdd? Типа быстро пишем на ссд, а потом когда нет нагрузки на диски переносим туда данные из ссд. Или овчинка выделки не стоит?
ну во первых такой формат не особо то даст вам выигрыш, вы используя отдельный slog уже с hdd выжимаете что сейчас можно последовательно писать (не считая несовершенства кода) Во вторых для такого придётся либо добавлять ещё один слой абстракции (так сделаны сейчас уже влитая возможность удалить vdev из пула, если в нём нет raidz, и возможность добавить диск в raidz vdev), либо сделать уже легендарный block pointer rewrite, ведь zfs это merkle tree с чексуммами, и это оч не просто
George
а если сделать этот BPR, то многие проблемные вещи в управлении считай будут решены, и можно будет и менять свойства уже записанных данных (изменять компрессию без перезаписи, например), и сделать ту же offline dedup
Сергей
Sergey
Ну оно в целом по иопс и пропускной способности пул улучшает, если он на hdd
Ну я так понимаю в данном случае оно уберет только мету с основного пула, а блоки самой вм рано всеравно окажутся на хдд т.к. они станут = рекордсайзу?
George
Ну я так понимаю в данном случае оно уберет только мету с основного пула, а блоки самой вм рано всеравно окажутся на хдд т.к. они станут = рекордсайзу?
Верно, но с hdd снимутся iopsы на мету, а она пишется x2. Точный выигрыш я не замерял, выше Сергей кидал ссылку
Sergey
Верно, но с hdd снимутся iopsы на мету, а она пишется x2. Точный выигрыш я не замерял, выше Сергей кидал ссылку
Я так и думал, еще пользуясь случаем есть вопрос который давно волнует, но не доходят руки проверить, зфс отрезает от конца диска какое-то пространство, что б потом при замене не оказалось, что новый диск, например, на 200мб меньше и не может выступать заменой?
Sergey
В гугле ответ не нашел, зато с сата такое бывает не редко
Sergey
Хардварные контроллеры при этои округляют вниз размер
Sergey
8мб видел, да, но 8 это ж мало
Sergey
Она именно резерв?
Sergey
Вот меня все время смущает, что на полном диске нельзя указать размер)
George
8мб видел, да, но 8 это ж мало
ну тут стату надо смотреть по размеру дисков, мне казалось что все честно сейчас говорят в терабайтах (т.е. степень 10ки)
George
т.е. диск на 2 терабайта обязан содержать 2 терабайта, 8МБ запас в таком случае выглядит норм
Sergey
Пюза последние не скажу, но вообще встречался с разбросом
Sergey
ну разметь просто сам :)
Ну как-то кажется, что у зфс больше идеология "я все сама")
Sergey
Так то да, а она не переразметит если отдать диск целиком?
George
Хуже если начальный 2 содержал + 32мб :D
ну это да) вообще разметка партиций у ZoL просто по старинке отнаследовалась от солярки для совместимости, тут согласен что она не идеальна
George
Так то да, а она не переразметит если отдать диск целиком?
врать не буду, проще попробовать) я обычно сам партиции нарезаю
Sergey
Ну в саны то только сертифицированные диски ставили, там этой проблемы нет)
Sergey
врать не буду, проще попробовать) я обычно сам партиции нарезаю
А потом отдаешь партиции или диск при zpool create?
Sergey
Обязательно проверю
Sergey
У меня даже вм специальная есть, где я всякие кейсы тестил что б мониторинг сделать
George
партиции
Sergey
партиции
А везде говорят бэд практисес, хотя шедулер всеравно в последних версиях советуют через udev ставить)
Sergey
@gmelikov а zinject же может сильно устройства замедлять?
Sergey
Думал тут кейсы с ресильвером для мониторинга потестить, а он уж очень быстро проходит :D
George
@gmelikov а zinject же может сильно устройства замедлять?
zinject -d vdev -D latency:lanes pool Add an artificial delay to IO requests on a particular device
George
http://zfs.datto.com/man/man8/zinject.8.html
Sergey
Ага, смотрел сюда, т.е. тупо всем вдевам выставить большой лейтенси?)
Sergey
Жаль при присоединении новому нельзя)
Sergey
@gmelikov в очередной раз спасибо за консультацию)
George
Ага, смотрел сюда, т.е. тупо всем вдевам выставить большой лейтенси?)
можно ещё просто другие средства заюзать, например dmsetup create dm-slow
Sergey
можно ещё просто другие средства заюзать, например dmsetup create dm-slow
Кстати об этом я не подумал, действительно)
Sergey
В линупсе ж вагон таких возможностей, а я все что-то на файлах зациклился)
Sergey
Спасибо
Sergey
Заодно багу нашел, когда мониторинг делал - zpool list -v -o огрничивает поля в -о только для самих пулов, надо PR открыть)
Vladislav
Заодно багу нашел, когда мониторинг делал - zpool list -v -o огрничивает поля в -о только для самих пулов, надо PR открыть)
Что не так? # zpool list -v -o free FREE 2,92T mirror 2,72T 1,26T 1,46T - - 38% 46% gpt/disk-ada2 - - - - - - - gpt/disk-ada3 - - - - - - - mirror 2,72T 1,26T 1,46T - - 38% 46% gpt/disk-ada0 - - - - - - - gpt/disk-ada5 - - - - - - - 324G mirror 456G 132G 324G - - 58% 28% gpt/system-ada1 - - - - - - - gpt/system-ada16 - - - - - - -
Vladislav
https://www.unixsheikh.com/articles/samba-and-nfs-performance-zfs-on-linux-vs-zfs-on-freebsd.html