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

Отключение кеша в ZFSonLinux

Использование ZFS для использования некоторых доступных опций и управления томами, а не RAID. У меня есть одно логическое устройство (HW RAID), добавленное в zpool.

ZFS ARC, похоже, не работает так же хорошо, как мой кеш HW RAID, поэтому я пытался отключить его, чтобы посмотреть, смогу ли я получить результаты, аналогичные результатам тестов, запущенных на устройстве HW RAID, но производительность страдает на томах ZFS.

Я попытался отключить первичный и вторичный кэш, но на самом деле это повредило производительности, так как не удалось использовать кеш HW RAID, как я ожидал. Так что я в растерянности. Невозможно использовать мой кэш HW RAID с ZFS? Возможно, параметры primarycache и secondarycache не подходят для изменения.

Конфигурация HP P410i RAID10 с кэшем BBU с обратной записью.

Zpool с одним логическим устройством из RAID

Создал тестовый sparse zvol для проверки скоростей устройства (/ dev / zd0)

Обновить этот вопрос Отсутствие производительности было вызвано накладными расходами ZFS. Когда ZoL ARC (primarycache) отключен, в это время возникают чрезмерные накладные расходы, особенно при произвольной записи. Я не уверен, относится ли это к ZoL или ZFS в целом. Я рекомендую по крайней мере оставить primarycache = metadata, если вы хотите уменьшить размер ARC, но сохранить производительность своих дисков.

Я использую ZFS с аппаратным RAID, использую кэш записи HW RAID-контроллера с флеш-поддержкой (вместо устройства ZIL) и использую кеш ZFS ARC для чтения.

Лучшие практики ZFS с аппаратным RAID

Как вы думаете, почему ZFS не работает? Вы можете поделиться своим zfs get all pool/filesystem производительность, а также тесты, о которых вы говорите? Скорее всего, проблема с настройкой.

Редактировать:

Значения по умолчанию в ZFS в Linux не очень хороши. Вам нужна настройка.

Пожалуйста, ознакомьтесь с рабочим процессом, который я разместил по адресу: Прозрачная файловая система сжатия в сочетании с ext4

Их ключевые части ashift ценность и volblocksize за звол.

Кроме того, вам нужно будет изменить свой /etc/modprobe.d/zfs.conf

Пример:

# zfs.conf for an SSD-based pool and 96GB RAM
options zfs zfs_arc_max=45000000000
options zfs zfs_vdev_scrub_min_active=48
options zfs zfs_vdev_scrub_max_active=128
options zfs zfs_vdev_sync_write_min_active=64
options zfs zfs_vdev_sync_write_max_active=128
options zfs zfs_vdev_sync_read_min_active=64
options zfs zfs_vdev_sync_read_max_active=128
options zfs zfs_vdev_async_read_min_active=64
options zfs zfs_vdev_async_read_max_active=128
options zfs zfs_top_maxinflight=160

Редактировать:

Что ж, я бы посоветовал всегда использовать сжатие lz4, использовать значение volblocksize 128k, ограничить ARC примерно 40% ОЗУ или меньше, настроить значения в zfs.conf, которые я опубликовал, по вкусу (возможно, уменьшите все значения на 50% если вы используете диски SAS 10k) и включите настроенный ADM framework с участием tuned-adm profile enterprise-storage.