首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么L2ARC不给目录遍历提供更多的加速?

为什么L2ARC不给目录遍历提供更多的加速?
EN

Server Fault用户
提问于 2017-05-27 16:13:19
回答 1查看 845关注 0票数 5

L2Arc通常被配置为在SSD上缓存随机旋转盘读取。我已经设置了这个配置,希望加速目录遍历。

这是设置:

代码语言:javascript
复制
# 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 of的内存:足够的弧。

我希望文件系统上的find调用会加速很多。它的速度是5倍,但绝对速度仍然很慢。列出4600万个文件需要3.4小时。

代码语言:javascript
复制
# 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打印:

代码语言:javascript
复制
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
EN

回答 1

Server Fault用户

发布于 2017-06-07 09:53:28

如果您在Linux上使用ZFS,速度可能取决于xattr默认设置(xattr=on),它将扩展属性存储在隐藏的目录/文件中。

尝试将xattr设置为sa,发出类似于zfs set xattr=sa <pool/fs>的命令。但是,它只影响新创建的文件;因此,您需要删除/重新加载所有文件以获得显著的速度。

换句话说,在重新加载所有文件之前,进行一次小规模的尝试。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/852585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档