Назад | Перейти на главную страницу

Кэширует ли ZFS сжатые или несжатые данные в файловой системе ZFS с включенным сжатием?

ZFS поддерживает сжатие файловой системы, а также кэширует часто или недавно используемые данные.

Если в системе много ЦП, но базовая система хранения данных работает медленно. Возможно, ZFS будет лучше работать с включенным сжатием. Это можно легко проверить при записи файлов, измерив использование и пропускную способность ЦП и диска. (конечно, может существовать задержка, но это не будет проблемой для больших файлов).

А как насчет кеша? Если данные придется распаковывать каждый раз при чтении, это, вероятно, не очень хорошая идея.

Кэшированные данные сжаты? У кого-нибудь есть информация по этому поводу?

Я задал этот вопрос Ричарду Эллингу, бывшему инженеру ZFS. Он сказал мне, что L2ARC не сжат, как и ARC.

Извините, я не могу предоставить документацию или спецификации. Мое единственное доказательство - это то, что один из парней, которые помогали разрабатывать ZFS, рассказал мне лично, когда я встретился с ним на прошлой неделе. :)

Сегодня L2ARC можно сжать с помощью LZ4, но ARC все еще не сжат. Более подробная информация доступна на сайте OpenZFS -> http://open-zfs.org/wiki/Features#l2arc_compression

Кэшированные данные в ARC или L2ARC всегда несжаты. Период. В противном случае каждое чтение из ARC или L2ARC будет иметь соответствующие накладные расходы ЦП, которые с некоторыми алгоритмами могут быть значительными (я смотрю на вас, bzip2). Предполагая, что сжатие = да в вашей файловой системе (ах), данные на дисках пула и ZIL (если применимо) всегда будут сжиматься.

Вы правы, при хранении данных, которые хорошо сжимаются, и система с большим количеством ЦП, но с ограниченным вводом-выводом может лучше преформироваться с включенным сжатием. Это не уникальная характеристика ZFS, вы найдете множество ссылок на нее в отношении включения сжатия в NTFS или других файловых системах.

Это изменилось в последних версиях zfs (по крайней мере, в Linux). Мы только что сравнили яблоки с яблоками с двумя наборами данных 32k, один со сжатием lz4, другой без него. В случае несжатой памяти arc использовалась вдвое больше памяти.

Похоже, что на самом деле обычно более эффективно распаковать данные, которые действительно необходимы, в краткосрочный кеш, поскольку кэш дуги часто считывает данные, которые никогда не запрашиваются. Вроде выбор был сделан на сжатие в память ..

Я также вижу несколько параметров в файле / proc / spl / kstat / zfs / arcstats, которые подтверждают это:

c                               4    135156049920
c_min                           4    8447253120
c_max                           4    135156049920
size                            4    3288083480
compressed_size                 4    3070738432
uncompressed_size               4    9339208192

Этот коммит выглядит актуальным https://www.illumos.org/issues/6950

Да. ZFS будет кэшировать часто используемые данные в любой форме. Производительность со схемой сжатия по умолчанию хорошая и не требует ничего, кроме небольшого процессорного времени. Сжатие происходит на лету. Вы можете расширить это еще больше, добавив кэш-память SSD L2ARC.