В Руководство по лучшим практикам Solaris ZFS рекомендует использовать пул ZFS ниже 80% для лучшей производительности:
- Используйте пространство пула менее 80% для поддержания производительности пула. В настоящее время производительность пула может снижаться, когда пул очень заполнен, а файловые системы часто обновляются, например, на загруженном почтовом сервере. Полные пулы могут вызвать снижение производительности, но никаких других проблем. Если основная рабочая нагрузка - это неизменяемые файлы (писать один раз, никогда не удалять), то вы можете сохранить пул в диапазоне использования 95-96%. Имейте в виду, что даже при в основном статическом содержимом в диапазоне 95–96% производительность записи, чтения и переноса данных может пострадать.
Распространенное предложение, как это реализовать, состоит в том, чтобы создать файловую систему или том, который не используется для хранения каких-либо данных, но имеет резервный размер около 20% емкости пула.
С помощью поведения копирования при записи ZFS я могу абсолютно понять, как это поможет с ротационным хранилищем, потому что ротационное хранилище, как правило, довольно сильно ограничено IOPS, поэтому предоставление файловой системе места для больших непрерывных распределений имеет большой смысл (даже если бы они не использовались как таковые все время).
Однако я не уверен, что цель 80% имеет такой же смысл с твердотельным хранилищем, которое, помимо того, что он немного дороже на гигабайт, не имеет никаких ограничений IOPS для ротационного хранилища.
Если пулы ZFS на SSD-дисках должны быть ограничены использованием емкости менее 80% по соображениям производительности точно так же, как пулы с жесткими дисками, или можно ли допустить, чтобы пулы с твердотельными накопителями заполнялись больше без значительного отрицательного воздействия на производительность ввода-вывода?
Я бы сказал да.
Мое правило - не превышать 87% в пулах, состоящих только из твердотельных накопителей, при использовании дисков, которые не были чрезмерно выделены.
Вариант использования SSD вводит компонент выносливости диска, в то время как случайная задержка записи является меньшей проблемой, чем с вращающимися дисками.
В любом случае, независимо от выбора диска, зачем вам намеренно планировать выполнение рабочих нагрузок на высоком уровне емкости? Все файловые системы с копированием при записи предупреждают / рекомендуют этого не делать, поэтому я бы все равно не стал заходить так высоко, если этого можно избежать.
Проблема с любой системой, которая становится слишком полной, заключается в том, чтобы найти следующее свободное место для записи. ZFS и любая система, которая копирует при записи, могут быть особенно восприимчивы к этой проблеме, а также любая система на основе журналов, где есть фоновый процесс для очистки неиспользуемых данных после того, как они были перезаписаны в принципе, но новые данные были фактически написано где-то еще. Также существует проблема фрагментации, которая влияет на производительность, поскольку становится все труднее найти большое непрерывное пространство для записи, и данные должны быть записаны фрагментированными в разных местах.
Все это не имеет отношения к носителю, будь то HDD или SSD.