Назад | Перейти на главную страницу

Почему L2ARC не дает больше ускорения для обхода каталогов?

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>. Однако это влияет только на вновь созданные файлы; поэтому вам нужно удалить / перезагрузить все файлы, чтобы получить значительную скорость.

Другими словами, попробуйте в небольшом масштабе, прежде чем перезагружать все свои файлы.