Maksim
может у вас арк в настройках ограничен 192 гигабайтами?
Georg🎞️🎥
может у вас арк в настройках ограничен 192 гигабайтами?
Вообще туда не лазил … Как поставил 🤔🤷🏻‍♂️закину скоро еще данных … тут скоре - почему он не кэширует когда я одни и теже файлу гоняю (((
Georg🎞️🎥
central
Что то около 260
И прямо все 260 по честному читаете
Georg🎞️🎥
И прямо все 260 по честному читаете
Что значит - по честному ?)
central
Что значит - по честному ?)
Как файлы гоняете?
Georg🎞️🎥
Как файлы гоняете?
Монтажные сборки разных проектов через программы для монтажа
Georg🎞️🎥
Так или иначе , переодически обращаемся ко всему , архива почти нет , то , что сдано - просто удаляется , не лежит 🤷🏻‍♂️
Georg🎞️🎥
Как файлы гоняете?
Монтаж - это префетч по идее, может он его не кэширует 🤷🏻‍♂️😭
central
central
Они по другому толком работать и не могут
Georg🎞️🎥
Georg🎞️🎥
central
У вас пару сообщений выше было 260 Грига
Georg🎞️🎥
У вас пару сообщений выше было 260 Грига
Это в терабайтах .. простите, решил что очевидно :((
Александр
Всех приветствую, есть несколько вопросов по дедупликации, подскажите пожалуйста 1) Какой максимальный размер DDT может храниться в ОЗУ? в разных источниках я видел что пишут этот предел как 1/4 от ARC max, если это так, то можно ли как то увеличить этот предел не увеличивая ARC max? 2) как высчитать точный размер DDT? я находил несколько вариантов, самый точный из них пишут это zdb -b <pool_name>, где нужно размер bp count умножить на 320, и получится размер таблицы в байтах. другой вариант это zdb -S <pool_name>, где total blocks нужно так же умножить на 320, но конечный результат получается разным в 1,5-2 раза. то есть например в первом случае получается 2гб, во втором 800МБ. так же натыкался на третий вариант zpool status -D poolname, где нужно кол-во DDT entries умножить на размер in core, и в этом случае получается еще одна цифра отличная от предыдущих. какой в итоге способ верный? 3) в какой момент выгружается DDT в озу? если она находится в ARC, то например после ребута его размер минимален arcstat.py time read miss miss% dmis dm% pmis pm% mmis mm% arcsz c 09:58:05 0 0 0 0 0 0 0 0 0 3.3M 84G
Evgenii
Можно ли перенести meta на недавно подключенный special через операцию replace единственного диска в пуле на другой диск того же размера?
George
Всех приветствую, есть несколько вопросов по дедупликации, подскажите пожалуйста 1) Какой максимальный размер DDT может храниться в ОЗУ? в разных источниках я видел что пишут этот предел как 1/4 от ARC max, если это так, то можно ли как то увеличить этот предел не увеличивая ARC max? 2) как высчитать точный размер DDT? я находил несколько вариантов, самый точный из них пишут это zdb -b <pool_name>, где нужно размер bp count умножить на 320, и получится размер таблицы в байтах. другой вариант это zdb -S <pool_name>, где total blocks нужно так же умножить на 320, но конечный результат получается разным в 1,5-2 раза. то есть например в первом случае получается 2гб, во втором 800МБ. так же натыкался на третий вариант zpool status -D poolname, где нужно кол-во DDT entries умножить на размер in core, и в этом случае получается еще одна цифра отличная от предыдущих. какой в итоге способ верный? 3) в какой момент выгружается DDT в озу? если она находится в ARC, то например после ребута его размер минимален arcstat.py time read miss miss% dmis dm% pmis pm% mmis mm% arcsz c 09:58:05 0 0 0 0 0 0 0 0 0 3.3M 84G
1) ddt это мета, лимиты на мету через параметры можно выставить, все возможные параметры (практически актуальный список) тут https://openzfs.github.io/openzfs-docs/Performance%20and%20Tuning/Module%20Parameters.html 2) 320байт это средний размер, он зависит от версии кода, в мастере он около 200 байт чтоли сейчас. из zdb -S стоит брать итоговое количество блоков 3) при первом доступе, когда-то сделали возможность предзагрузить их форсированно, не помню правда как
Evgenii
с обычных vdevs? так нельзя, сейчас - только через перезапись данных
Спасибо за ответ, жаль. Было бы круто, если бы без простоя можно было это делать
Александр
1) ddt это мета, лимиты на мету через параметры можно выставить, все возможные параметры (практически актуальный список) тут https://openzfs.github.io/openzfs-docs/Performance%20and%20Tuning/Module%20Parameters.html 2) 320байт это средний размер, он зависит от версии кода, в мастере он около 200 байт чтоли сейчас. из zdb -S стоит брать итоговое количество блоков 3) при первом доступе, когда-то сделали возможность предзагрузить их форсированно, не помню правда как
Спасибо большое за ответ! по поводу параметров да нашел уже zfs_arc_meta_limit_percent, и он выставлен в 75%, получается 3/4 от ARC, но глядя в cat /proc/spl/kstat/zfs/arcstats, arc_meta_used==~1.5гб(размер ARC - 42ГБ), хотя при том что таблица дедупликации около 11гб(посчитал как вы сказали, из вывода zdb -S взял Total allocated blocks и умножил на 200, хоть у меня и не мастер, но все равно цифры отличаются на много), и особо не растет, причем сейчас идет запись тестовыми файлами. почему вообще задался этим вопросом, потому что при нагрузке с винды большим файлом на том с включенной дедупликацией нагрузка бывает падает в ноль и плавает и через zpool iostat -vy видно что происходит чтение с дисков в этот момент, если нагружать том без дедупа, то такого не происходит. то что можно выгрузить форсированно это прям хорошо, попробую поискать, если вдруг вы вспомните в какую сторону глянуть, буду премного благодарен
Dimitri
Всем привет! Прошу поделиться опытом загрузки Linux с ZFS: какой дистрибутив и способ установки. Информация нужна для доклада на тему Linux boot from ZFS на конференции FrOSCon . Сам добился загрузки openSUSE путём миграции корня после инсталляции штатными средствами на ZFS.
George
Всем привет! Прошу поделиться опытом загрузки Linux с ZFS: какой дистрибутив и способ установки. Информация нужна для доклада на тему Linux boot from ZFS на конференции FrOSCon . Сам добился загрузки openSUSE путём миграции корня после инсталляции штатными средствами на ZFS.
https://openzfs.github.io/openzfs-docs/Getting%20Started/index.html см. Секцию root on zfs для каждого дистра. Я сам на дебиане с ним, там всё просто - с livecd создаётся пул, потом штатно на него ставится через debootstrap ось.
George
Спасибо большое за ответ! по поводу параметров да нашел уже zfs_arc_meta_limit_percent, и он выставлен в 75%, получается 3/4 от ARC, но глядя в cat /proc/spl/kstat/zfs/arcstats, arc_meta_used==~1.5гб(размер ARC - 42ГБ), хотя при том что таблица дедупликации около 11гб(посчитал как вы сказали, из вывода zdb -S взял Total allocated blocks и умножил на 200, хоть у меня и не мастер, но все равно цифры отличаются на много), и особо не растет, причем сейчас идет запись тестовыми файлами. почему вообще задался этим вопросом, потому что при нагрузке с винды большим файлом на том с включенной дедупликацией нагрузка бывает падает в ноль и плавает и через zpool iostat -vy видно что происходит чтение с дисков в этот момент, если нагружать том без дедупа, то такого не происходит. то что можно выгрузить форсированно это прям хорошо, попробую поискать, если вдруг вы вспомните в какую сторону глянуть, буду премного благодарен
эх, недотащили https://github.com/openzfs/zfs/pull/9464
George
Выступал на питерском хайлоаде про ZFS https://highload.ru/spb/2023/abstracts/10158 Уже видео появилось https://www.youtube.com/watch?v=x2XYOOiyhSc
George
доклад не хардкорный, но постарался сделать интересно-ознакомительно
Vladimir
вопрос про производительность: есть очень большой zfs pool , используется как cold storage. Читаю из него файлы утилиткой dar (с tar аналогично) , получаю среднюю read bandwidth ~ 2-3mb/sec (по zpool iostat). Вопрос - почему так медленно и как сделать быстрее? $ zfs version zfs-0.8.3-1ubuntu12.15 zfs-kmod-0.8.3-1ubuntu12.15 под ubuntu 20.04
Vladimir
А если смотреть не по zpool iostat?
смотрю ещё по pv за 76 часов перекачалось 2.83 ТБ, т.е в среднем получаем ~ 10mb/sec
Shaker
Там будет понятно по какому диску упирается, если это диск
Shaker
или atop еще информативно показывает
Shaker
Если ты через сеть качаешь, то она может быть узким местом.
Vladimir
Если ты через сеть качаешь, то она может быть узким местом.
качаю, но там 10gbit и точно может работать быстрее
central
качаю, но там 10gbit и точно может работать быстрее
Может и работает сильно разные вещи
central
Тут ни раз было когда у людей линк был в режиме 100 мб/с
Vladimir
Может и работает сильно разные вещи
проверил: с SSD диска файлик на 4ГБ : 4.21GiB 0:00:25 [ 171MiB/s] так проверял: cat big_file |pv|ssh -i backup-key backup-server "cat - > /backups/..../test"
Alexander
А что там по iostat?
Vladimir
А что там по iostat?
iostat -xdr zfs непоказывает zpool iostat -v Можно отдельные диски смотреть , но вроде ничего интересного не видно
Alexander
iostat -zxm 5
Vladimir
iostat -zxm 5
у всех дисков rMB/s ~ 0.07 - 0.21 или надо на что-то другое смотреть?
Alexander
avgrq-sz
Alexander
Я думаю, что проблема в dar. Он там может сжимать/шифровать - у вас это используется? если да - то как?
Alexander
Ну и заодно zpool -v
George
файлов много мелких
Поточнее бы размер)
Vladimir
Я думаю, что проблема в dar. Он там может сжимать/шифровать - у вас это используется? если да - то как?
dar -m 1024 -zlzo -G 4,12 compress-exclusion т.е исключаем всё что запаковано, используем 12 потоков для упаковки, минимальный файл 1кб
Artem
файлов много мелких
И пул на хардах? Возможно, это и есть ответ
Alexander
Для теста попробуйте без сжатия - может в него упирается?
Vladimir
avgrq-sz
вде диски rareq-sz~ 4-6
Alexander
вде диски rareq-sz~ 4-6
Это явно очень-очень мало((
Artem
да, на хардах
Ну вот и сравните со скоростью копирования одного большого файла с пула
Vladimir
А если сделать cat big-file-from-pool |... то тоже медленно?
быстро: 2.33GiB 0:00:17 [ 136MiB/s] (другой файл)
Alexander
Ну и если dar сейчас используется для восстановления из бэкапа (я так понимаю читается из zfs и пишется куда-то на локальный диск) - может это проблема локального диска (ему не хватает скорости - особенно если много мелких файлов), а не zfs?
Artem
Ну не умеют харды читать рандомно быстро
Alexander
Проблема скорее всего в локальном диске (с которого делается архив) и настройках dar, а не в zfs..
Vladimir
Проблема скорее всего в локальном диске (с которого делается архив) и настройках dar, а не в zfs..
dar читает из масссива под zfs и передаёт по ssh данные в один большой файл на другой сервер. эксперимент с передачей одного большого файла показывает что туда льётся со скоростью 171мб/сек
Artem
Проблема скорее всего в локальном диске (с которого делается архив) и настройках dar, а не в zfs..
Проблема в том, что куча мелких файлов - это куча мелких файлов
Alexander
вы читаете много мелких файлов (с HDD), потом еще их сжимаете, в этом и проблема. Один большой файл всегда лучше кучи мелких файлов))
Vladimir
вы читаете много мелких файлов (с HDD), потом еще их сжимаете, в этом и проблема. Один большой файл всегда лучше кучи мелких файлов))
ну наверно, а как ускорить или zfs переконфигурировать, чтобы быстрее с мелкими файлами работал ?
Alexander
Кардинально думаю никак. Я бы пересмотрел технологический процесс если возможно - чтобы мелкие файлы создавались на SSD например..
Alexander
Ну и для теста попробуйте без компрессии
Alexander
dar без компрессии я имею ввиду. На zfs кстати включена компрессия или нет?
Alexander
Если есть возможность - сделайте отдельный zpool на ssd и потестируйте на нем. Если будет лучше - тогда можно например будет делать dar с ssd zpool на hdd zpool а потом копировать по сети..
Alexander
включена - lz4
Вы получается 2 раза жмете (вернее пытаетесь - zfs не будет пережимать пожатое)..
George
Какой средний размер файла? Какие параметры датасета отличаются от дефолта?
Про параметры так и не ответили. Доступ к мете можно ускорить через xattr=sa , также не помешает atime=off
George
Ну и не хранить в 1 директории больше 10000 файлов