L2Arc обычно настроен для кэширования случайных операций чтения с диска на SSD. Я настроил эту конфигурацию в надежде ускорить обход каталогов.
Это установка:
# zpool list -v
NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
geek1 2.72T 1.18T 1.54T - 53% 43% 4.64x ONLINE -
sdc 1.36T 606G 786G - 54% 43%
sdd 1.36T 606G 786G - 53% 43%
log - - - - - -
zil 3.97G 0 3.97G - 0% 0%
cache - - - - - -
l2arc 32.0G 4.24G 27.8G - 0% 13%
В машине 20 ГБ памяти: для Arc достаточно.
Я ожидал find
вызовите файловую систему для значительного ускорения. Он ускорен в 5 раз, но в абсолютном выражении все еще медленный. Список 46M файлов занимает 3,4 часа.
# while true; do time find /geek1/ -type f|wc -l; done
46774149
real 1103m18.661s
user 2m15.143s
sys 5m52.096s
46774149
real 243m0.289s
user 2m3.063s
sys 5m7.107s
46774149
real 205m23.922s
user 2m7.566s
sys 6m32.638s
Как сделать обход каталогов более эффективным?
zpool get all
печатает:
NAME PROPERTY VALUE SOURCE
geek1 size 2.72T -
geek1 capacity 43% -
geek1 altroot - default
geek1 health ONLINE -
geek1 guid default
geek1 version - default
geek1 bootfs - default
geek1 delegation on default
geek1 autoreplace off default
geek1 cachefile - default
geek1 failmode wait default
geek1 listsnapshots off default
geek1 autoexpand off default
geek1 dedupditto 0 default
geek1 dedupratio 4.64x -
geek1 free 1.54T -
geek1 allocated 1.18T -
geek1 readonly off -
geek1 ashift 0 default
geek1 comment - default
geek1 expandsize - -
geek1 freeing 0 default
geek1 fragmentation 53% -
geek1 leaked 0 default
geek1 feature@async_destroy enabled local
geek1 feature@empty_bpobj active local
geek1 feature@lz4_compress active local
geek1 feature@spacemap_histogram active local
geek1 feature@enabled_txg active local
geek1 feature@hole_birth active local
geek1 feature@extensible_dataset enabled local
geek1 feature@embedded_data active local
geek1 feature@bookmarks enabled local
geek1 feature@filesystem_limits enabled local
geek1 feature@large_blocks enabled local
Если вы используете ZFS в Linux, скорость, вероятно, зависит от xattr
настройки по умолчанию (xattr=on
), который хранит расширенные атрибуты внутри скрытых каталогов / файлов.
Попробуйте установить ченинг xattr
к sa
, выдавая что-то вроде zfs set xattr=sa <pool/fs>
. Однако это влияет только на вновь созданные файлы; поэтому вам нужно удалить / перезагрузить все файлы, чтобы получить значительную скорость.
Другими словами, попробуйте в небольшом масштабе, прежде чем перезагружать все свои файлы.