08.08.2017 11:07
OlegON
 
Несмотря на мою устойчивую нелюбовь к Solaris, ZFS в целом, как файловая система - просто выше всяческих похвал. К сожалению, как мне кажется, ей не уделяют должного внимания при развитии в целом (например, нет поддержки trim), с другой стороны, такая файловая система была настолько мощным рывком вперед, что до сих пор остается лучшей.

Поговорим о том, что нужно сделать, чтобы ZFS была еще и быстрой. В общих чертах и без учета конкретных условий.

1) Памяти должно быть много. Очень много и еще лучше - больше. ARC должен быть большой.

2) Если массив с батарейкой - set zfs:zfs_nocacheflush=1 (в /etc/system)

3) Выставьте zfs set atime = off

4) Правильно выставьте recordsize, слишком большой при маленьком блоке базы данных, например, приведет к излишним чтениям и замусориванию кеша. Обратите внимание, что recordsize распространяется только на новые файлы. Надо старые куда-то оттащить и вернуть обратно, чтобы они правильно легли. Для баз Oracle recordsize=db_block_size, для бекапов, redo, undo = 1M.

5) set zfs:zfs_vdev_max_pending=35 общее правило, что если нужен быстрый отклик, то снижаем к 10, если большая отдача - поднимаем.

6) Нельзя заполнять пул больше чем на 80%, в противном случае получите адскую фрагментацию и тормоза.

7) logbias надо выбрать правильный
26.12.2018 16:03
OlegON
 
с заполнением пула на 80% на днях попробовал
чтение с диска около 300Мб/сек, при нулевой записи и ожидании этой самой записи...
через некоторое время система стала практически неуправляемой... там крутились 4 базы, одна на 8Тб переливалась и вышла за пределы 80%. Замерло все... едва удалось сбить процесс переливаемой базы, после чего ещё полчаса торчали ожидающие записи другие процессы. После удаления одного большого файлика переливаемой базы все задышало, как новое...

рекомендую следить...

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.