Примітка! Оригінал статті знаходиться в процесі постійного доповнення, переклад може відрізнятися від оригіналу.
При використанні ZFS рекомендується використовувати як мінімум 1Гб оперативної пам'яті. Можлива робота з ZFS і на системах з меншим об'ємом ОЗУ, але в цьому випадку буде потрібно настройка параметрів ядра, в іншому випадку не уникнути проблем.
Історія релізів FreeBSD, що включають ZFS, виглядає наступним чином:
- 7.0, 7.1 - імпорт оригінальної версії ZFSv6. Вимагає значної настройки для стійкої роботи
- 7.2 - все ще ZFSv6, поліпшена обробка пам'яті, можливо, amd64 не потребує ні в який налаштування
- 7.3+ - зворотне портирование коду ZFSv13, але можуть бути відсутні деякі нові можливості
- 8.0+ - використовується код ZFSv13, проведена велика робота над помилками, рекомендується до використання
Так само рекомендується прибрати з ядра все невикористовувані драйвера і опції, що дозволить заощадити кілька Мб пам'яті. Є відомості про те, що була досягнута стабільна робота зі значенням параметра vm.kmem_size = »1536M» на немодифіковані ядрі 7.0-RELEASE, що виявилося достатнім для роботи драйверів і установки KVA_PAGES = 512.
[Ad name = "Google Adsense»]
Робота під навантаженням може зажадати значного зменшення розміру ARC і кеша VDEV. ZFS управляє ARC через багатонитковою процес і в разі, якщо ARC потребують більше пам'яті, то ZFS виділить необхідне. В цьому випадку arc_max (vfs.zfs.arc_max) може перевищуватися, в той час як інший потік в межах ZFS періодично звільняє пам'ять, виділену ARC, в разі перевищення arc_max. Таким чином, навіть з невеликим значенням arc_max можливе перевищення ARC параметра kmem_size_max і паніка ядра. В системах, де пам'яті недостатньо, рекомендується використовувати мінімально можливий arc_max. Наприклад, можна встановити vm.kmem_size і vm.kmem_size_max в значення 512M, vfs.zfs.arc_max в значення 160M, зберігаючи vfs.zfs.vdev.cache.size вполовину його заданого розміру за замовчуванням 10Мб (при цьому, дивовижним чином, забезпечується краща стабільність).
echo TEXT = $ TEXT, `echo $ TEXT | awk '' `echo DATA = $ DATA, `echo $ DATA | awk '' `
echo TOTAL = $ TOTAL, `echo $ TOTAL | awk '' `
Увага: можливо є інший спосіб визначення розміру vm.kmem_size. але розробникам про нього невідомо. В даний час для цього потрібні експерименти. Однак, якщо ви встановите в loader.conf значення vm.kmem_size занадто велике, то ядро запанікує на етапі початкового завантаження. Ви можете виправити це, вийшовши в командний рядок завантажувача і встановивши vm.kmem_size = «512M» (або менше).
Параметр vm.kmem_size_max безпосередньо не використовується в системних операціях (не є межею збільшення kmem), але використовується для початкової автоматичної конфігурації різних системних параметрів настройки, найважливішим з яких для цього обговорення є розмір ARC. Якщо kmem_size і arc_max будуть налаштовані вручну, то kmem_size_max буде проігнорований.
Проблема виснаження пам'яті ядра досить складна і залежить від швидкості диска, прикладних програм і кешуванням, яке робить ZFS. Більш швидкі диски запишуть кешувального дані швидше, але також швидше заповнять кеші. Взагалі, чим більше і швидше диски, тим більше пам'яті необхідно ZFS.
В операційних системах від FreeBSD 7.2 і вище, стратегія розподілу пам'яті значно поліпшена, в результаті, на системах з більше ніж 2 Гб оперативної пам'яті, немає необхідності в будь-якої налаштування.
На системах, які використовують FreeBSD 7.0 і 7.1, пам'ять ядра (vm.kmem_size) повинна бути збільшена приблизно до 1 ГБ, а розмір ARC зменшений:
vm.kmem_size_max = "1024M"
vm.kmem_size = "1024M"
vfs.zfs.arc_max = "100M"
Це може допомогти в разі, якщо машина завантажена іншими завданнями, такими як мережева активність (файловий сервер), і т.д. Налаштування KVA_PAGES на amd64 не потрібно.
[Ad name = "Google Adsense»]