[openzfs] Ускоряем resilver/scrub/destroy

Если значения по умолчанию вам не очень подходят:

int zfs_top_maxinflight = 32;           /* maximum I/Os per top-level */
int zfs_resilver_delay = 2;             /* number of ticks to delay resilver */
int zfs_scrub_delay = 4;                /* number of ticks to delay scrub */
int zfs_scan_idle = 50;                 /* idle window in clock ticks */
int zfs_scan_min_time_ms = 1000;        /* min millisecs to scrub per txg */
int zfs_free_min_time_ms = 1000;        /* min millisecs to free per txg */
int zfs_resilver_min_time_ms = 3000;    /* min millisecs to resilver per txg */
int zfs_no_scrub_io = B_FALSE;          /* set to disable scrub i/o */
int zfs_no_scrub_prefetch = B_FALSE;    /* set to disable srub prefetching */


то можно ускорить этот процесс (все значения меняются налету).

FreeBSD:

# sysctl vfs.zfs.resilver_min_time_ms=5000
# sysctl vfs.zfs.resilver_delay=0
# sysctl vfs.zfs.scrub_delay=0
# sysctl vfs.zfs.top_maxinflight=128
# sysctl vfs.zfs.scan_idle=2

Для перманента вносим в /etc/sysctl.conf.

OmniOS/Illumos (не для Oracle Solaris 11 !!!):

# echo "zfs_resilver_min_time_ms/W0t5000" | mdb -kw
# echo "zfs_resilver_delay/W0t0" | mdb -kw
# echo "zfs_scrub_delay/W0t0" | mdb -kw
# echo "zfs_top_maxinflight/W0t128" | mdb -kw
# echo "zfs_scan_idle/W0t2" | mdb -kw

Для перманента вносим в /etc/system.conf:

set zfs:zfs_resilver_min_time_ms = 5000
set zfs:zfs_resilver_delay = 0
set zfs:zfs_scrub_delay = 0
set zfs:zfs_top_maxinflight = 128
set zfs:zfs_scan_idle = 2

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *