1 官网相关指导
1.1 启用元数据缓存
元数据缓存几乎可以提高所有工作负载的性能,这种场景除外:大多数工作负载是同时从多个客户端访问文件
1、执行以下命令启用元数据缓存和缓存失效:
gluster volume set <volname> group metadata-cache
此组命令允许缓存文件或目录的 stat 和 xattr 信息。缓存每10分钟刷新一次,并启用缓存失效以保证缓存一致性。
2、要增加可缓存的文件数量,请执行以下命令:
gluster volume set <volname> network.inode-lru-limit <n>
n 设置为 50000。如果卷中的活动文件数量非常多,则可以增加该值。增加此数字会增加brick进程的内存占用量。
3、默认情况下,一些 xattrs 会被 gluster 缓存,例如:capability xattrs、ima xattrs ACL 等。如果使用 Gluster 存储的应用程序使用了任何其他 xattrs,请执行以下命令将这些 xattrs 添加到元数据缓存列表中:
gluster volume set <volname> xattr-cache-list "comma separated xattr list"
一个具体的例子:
gluster volume set <volname>xattr-cache-list "user.org.netatalk.*,user.swift.metadata"
1.2 目录操作性能提升
在开启了元数据缓存的基础中,可以进行如下设置以提高目录操作的性能
1.2.1 目录list性能
开启`parallel-readdir`
gluster volume set <VOLNAME> performance.readdir-ahead on
gluster volume set <VOLNAME> performance.parallel-readdir on
1.2.2 文件/目录创建性能
开启`nl-cache`
gluster volume set <volname> group nl-cache
gluster volume set <volname> nl-cache-positive-entry on
这个命令也同时启用了缓存失效,缓存失效时间10分钟
1.3 小文件读性能提升
如果使用场景主要是小文件的读取,执行如下命令,命令启用在客户端缓存中缓存小文件的内容。启用缓存失效可确保缓存一致性。
gluster volume set <volname> performance.cache-invalidation on
gluster volume set <volname> features.cache-invalidation on
gluster volume set <volname> performance.qr-cache-timeout 600 # 10 min recommended setting
gluster volume set <volname> cache-invalidation-timeout 600 # 10 min recommended setting
总缓存大小可以使用命令设置
gluster volume set <volname> cache-size <size>
默认情况下,具有大小的文件`<=64KB`会被缓存。使用如下命令更改该值(注意单位,size填写64KB 2MB等):
gluster volume set <volname> performance.cache-max-file-size <size>