通过 NFS 对 dovecot maildir 框进行属性缓存

通过 NFS 对 dovecot maildir 框进行属性缓存

我管理一个邮件服务器集群:有两个不同的主机使用一个通用的 NFS 共享来存储 maildir。Dovecot 是 LDA。

尽管磁盘层上的实际 i/o 操作很低,但 NFS 上的 CPU 负载确实很高。

nfsstat 报告说超过 50% 的查询是 getattr,我怀疑这些查询正在杀死我的服务器。

目前挂载选项如下:

nfs4(rw,noatime,sync,vers=4,rsize=1048576,wsize=1048576,namlen=255,acregmin=0,acregmax=0,acdirmin=0,acdirmax=0,hard,noac,proto=tcp,port=0,timeo=10,retrans=10,sec=sys,clientaddr=10.10.10.35,minorversion=0,local_lock=none,addr=10.10.10.28)

Dovecot 存储选项如下:

mmap_disable = yes
dotlock_use_excl = no
mail_fsync = always
mail_nfs_storage = yes
mail_nfs_index = yes

据我所知,noac 选项禁用属性缓存,导致对 NFS 服务器进行大量查询。我原本想启用属性缓存,但在查找信息时,我发现了以下内容:

getattr > 40%:可以通过设置 actimeo 挂载选项来增加客户端属性缓存。请注意这不合适属性经常变化的地方,例如邮件线轴. 在这些情况下,使用 noac 选项挂载文件系统。

问题就在这里。我在 NFS 上托管了一个邮件池。但是由于交流电仅缓存属性,并且我正在使用 maildir 结构(与 mbox 相反,我确信这会导致 ac 出现问题)也许这不会成为问题。

我正在寻求有关此事的建议:在为两个不同的 dovecot 服务器提供 NFS 服务 maildir 框的属性缓存上启用属性缓存是否安全?

相关内容