Сергей
я к тому что может l2arc больше подойдёт
central
затем, что она умеет размещать метаданные и мелкие файлы на ssd
L2arc? Он для рандома же а вы пишите про линейную
George
в nginx sendfile отключите, он деградацию даст перформанса
George
L2arc? Он для рандома же а вы пишите про линейную
его можно настроить под линейный доступ тоже
edo1
читаться будут в основном одни и те же данные для разных клиентов?
9 терабайт кэша дают где-то 70-80% попаданий нет, l2arc в таких масштабах я не готов )
George
9 терабайт кэша дают где-то 70-80% попаданий нет, l2arc в таких масштабах я не готов )
в 2.0 l2arc стал персистентным, я бы смотрел в его сторону тоже. Схема со special даст просадки на больших файлах
edo1
ну так отдача на линейной скорости hdd меня вполне устроит )
George
если их мало то да, хватит линейного перформанса хдд
George
но их обычно много, и линейного чтения тоже много, prefetch может не справиться и будет деградация до случайного чтения
George
(а чтение в zfs в основном случайно без prefetch)
edo1
так я специально большой recorsize хочу поставить, чтобы чтение с hdd было блоками по 4мб
George
так я специально большой recorsize хочу поставить, чтобы чтение с hdd было блоками по 4мб
если получится всегда задействовать prefetch, то может получиться, да
Сергей
edo1
нет, без избыточности
edo1
это же кэш
edo1
думаю сделать 4 независимые fs и средствами нжинкса между ними распределить нагрузку
edo1
если получится всегда задействовать prefetch, то может получиться, да
так я же спрашивал: если recordsize 4m, то эти 4mb в arc только одновременно попадут
edo1
prefetch это немного другое, как я понимаю (фоновое чтение следующего блока)
George
так я же спрашивал: если recordsize 4m, то эти 4mb в arc только одновременно попадут
клиенту больше 4М от файла не нужно будет в данном случае?
George
обычно нужен весь файл
edo1
нужно, но у клиента канал может быть и 1 мегабит, и меньше
edo1
мне бы добиться, чтобы текущий кусок не вымывался из памяти, а следующий как нужен будет — прочитается
George
по идее вам поможет
edo1
а то вот начитался ужасов: https://serverfault.com/questions/1017892/nginx-with-zfs-on-linux-with-16m-recordsize-too-much-arc-fill-and-high-io-but-lo
George
а то вот начитался ужасов: https://serverfault.com/questions/1017892/nginx-with-zfs-on-linux-with-16m-recordsize-too-much-arc-fill-and-high-io-but-lo
output_buffers выкручивать, да. С огромным recordsize всё верно получается, вычитается блок полностью, надо успеть в приложении получить, иначе придётся ещё раз вычитывать. Может даже 1М размер блока подойти лучше. В конечном итоге да, упрётесь в скорость клиентов, чем она ниже тем чаще будете перечитывать при большом recordsize
George
от статистики бы нагрузки от клиентов оттолкнуться
George
количество параллельное, средняя скорость
edo1
ну в примере со SO явно клиентов было намного больше, а arc не такой уж и большой, вот он и вымывался постоянно
George
ну в примере со SO явно клиентов было намного больше, а arc не такой уж и большой, вот он и вымывался постоянно
ага, вообще recordsize>1M имеет смысл только если весь блок точно понадобится и в очень ближайшее время
edo1
я планирую 48ГБ под arc, это условно 12к блоков поместится, думаю, до 6к одновременных клиентов должно держать
George
я как-то прикидывал latency доступа к hdd, 128К не спроста дефолт
edo1
как раз агрессивный prefetch мне тут может помешать )
Владимир
норм?
George
вроде был параметр сколько держать блок перед вымыванием, можно его покрутить на всякий
George
я 1мб ставлю на волюмах с бекапами
ага, для бекапов если они линейные и однопоточные и больше можно, но там разница не большая получается
George
как раз агрессивный prefetch мне тут может помешать )
да, при параллельном доступе верно
edo1
максимальное 16 )
George
prefetch будет заменён просто нужным размером блока
George
максимальное 16 )
да, если параметр модуля поменять)
Владимир
а что мне даст из плюсов значение 16 кроме того что сжаться будет лучше?
edo1
а чем жать? если lz4, то не так уж и лучше, у него размер словаря маленький
edo1
в случае zstd разница должна быть https://openzfs.org/w/images/b/b3/03-OpenZFS_2017_-_ZStandard_in_ZFS.pdf вот тут есть табличка до 1мб блока
edo1
в nginx sendfile отключите, он деградацию даст перформанса
а можно детали? или просто эмпирическое правило?
George
а можно детали? или просто эмпирическое правило?
несколько лет назад на 0.7 чтоли на тестах поймал, если правильно помню - sendfile хочет directio, которого в 0.7 не было и fallback только время занимал
George
на 0.8 имитация directio есть и мб уже без разницы, но не тестил
edo1
то есть O_DIRECT тоже не факт, что стоит включать?
edo1
мне в нём нравится, что не забивается буфер линукса )
George
то есть O_DIRECT тоже не факт, что стоит включать?
нет смысла, пока в zfs он не поддерживается
edo1
какой процент заполненности раздела стоит ставить?
Vladislav
Там ufs
про UFS стоит забыть как страшный сон.
edo1
хотя сама фрагменитрованность файлов мне не так страшна, меня пугает, если из-за фрагментированности свободного пространства zfs вообще не сможет новую запись разместить ) (напомню, речь про recodsize=4M)
George
-15% как-то жирновато
Конечно зависит от размера пула
edo1
А как работает аллокатор? Ищет до победного, и только если не найдёт, то пишет по кускам?
edo1
Наверное, сначала выбирает metaslab, а в него уже запихивает как получится?
George
А как работает аллокатор? Ищет до победного, и только если не найдёт, то пишет по кускам?
там 2 аллокатора, один включается по 90+% заполнению пула (точную цифру надо смотреть, она менялась недавно), обычный емнип ищет наиболее свободный slab, а второй ищет первое подходящее
George
за деталями в код нужно идти
nagual
Можете не верить, но один раз мне попался сервер с виндой где фрагментация достигла 76%
George
кажется, я когда-то видел и больше под ораклом
George
так что верю)
Murmuring
А кто нибудь использует intel 5100 ssd? Под zfs
Alexander
Опять 25)))
Murmuring
5100 это не nvme?
Нет) 2.5 sata
Alexander
Нет) 2.5 sata
Аа тогда ссори)) а чем он от других тогда отличается🤷‍♂️используйте
ArtAnt
авоткстати я ведь правильно понимаю что у DDR5 ECC является дефолтной частью стандарта?
Не знаю как насчет DDR5, будут ли ставить дополнительный чип для работы в режиме ECC, но Intel от жадности исключила поддержку ECC из десктопных Pentium и Celeron, буквально до девятого поколения было все хорошо и можно было организовать недорогое хранилище на ZFS с ECC. В десятом поколении на десктопных оставили только у i3 которые с индексами E и TE, в продаже их не нашел.