I admin a mail server cluster: there're two different hosts that use a common NFS share to store maildir. Dovecot is the LDA.
CPU load on NFS is really high, although real i/o operation on the disk layer is very low.
nfsstat reports that more than 50% of query are getattr, i suspect that these queries are killing my server.
At the moment the mount options are as follow:
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 storage options are as follow:
mmap_disable = yes
dotlock_use_excl = no
mail_fsync = always
mail_nfs_storage = yes
mail_nfs_index = yes
From what i've read the noac option disables the caching of attributes, leading to massive queries to the NFS server. I was thinking about enabling attribute caching but looking for infos i've found this:
getattr > 40%: The client attribute cache can be increased by setting the actimeo mount option. Note that this is not appropriate where the attributes change frequently, such as on a mail spool. In these cases, mount the filesystems with the noac option.
The problem arises here. I'm hosting a mail spool on NFS. But since ac only caches attributes and i'm using a maildir structure (opposed to mbox, which i'm certain should cause problems with ac) maybe it won't be an issue.
I'm asking for advice about this thing: is it safe to enable attribute caching on NFS serving maildir boxes to two different dovecot server?