From 1723d09bec8364d16a156b195fd08b9f62cbc98b Mon Sep 17 00:00:00 2001 From: Ian Kelling Date: Thu, 18 Apr 2024 01:22:18 -0400 Subject: [PATCH] mail perf tuning --- mail-setup | 43 +++++++++++++++++++++++++++---------------- mount-latest-subvol | 4 +++- 2 files changed, 30 insertions(+), 17 deletions(-) diff --git a/mail-setup b/mail-setup index 08ec7ae..9c46689 100755 --- a/mail-setup +++ b/mail-setup @@ -2061,6 +2061,23 @@ protocol lmtp { # default is just $mail_plugins mail_plugins = $mail_plugins sieve } + +# /etc/dovecot/conf.d/10-master.conf says the default is 256M. +# but I started getting oom errors in the syslog +# Mar 27 15:10:04 sy dovecot[330088]: lmtp(iank)<3839880>: Fatal: master: service(lmtp): child 3839880 returned error 83 (Out of memory (service lmtp { vsz_limit=256 MB }, you may need to increase it) - set CORE_OUTOFMEM=1 environment to get core dump) +# exim would just queue mail until it eventually succeeded. +# Deciding what to increase it to, I found this +# https://dovecot.org/list/dovecot/2011-December/080056.html +# which suggests 3x the largest dovecot.index.cache file +# and then I found that +# md/l/testignore/dovecot.index.cache is 429M, my largest cache file, +# but that folder only has 2k messages. +# next biggest is md/l/qemu-devel/dovecot.index.cache 236M +# which lead to me a search https://doc.dovecot.org/admin_manual/known_issues/large_cache/ +# which suggests 1.5x the maximum cache file size 1G, and +# that I can safely rm the index. +default_vsz_limit = 1500M + EOF if dpkg --compare-versions "$(dpkg-query -f='${Version}\n' --show dovecot-core)" ge 1:2.3; then cat <>/etc/dovecot/local.conf <: Fatal: master: service(lmtp): child 3839880 returned error 83 (Out of memory (service lmtp { vsz_limit=256 MB }, you may need to increase it) - set CORE_OUTOFMEM=1 environment to get core dump) -# exim would just queue mail until it eventually succeeded. -# Deciding what to increase it to, I found this -# https://dovecot.org/list/dovecot/2011-December/080056.html -# which suggests 3x the largest dovecot.index.cache file -# and then I found that -# md/l/testignore/dovecot.index.cache is 429M, my largest cache file, -# but that folder only has 2k messages. -# next biggest is md/l/qemu-devel/dovecot.index.cache 236M -# which lead to me a search https://doc.dovecot.org/admin_manual/known_issues/large_cache/ -# which suggests 1.5x the maximum cache file size 1G, and -# that I can safely rm the indix -default_vsz_limit = 1500M +# This will decrease memory use, and seems likely to decrease cpu & disk +# use since I rarely use dovecot for most folders. +mail_cache_max_size = 50M + # simple password file based login !include conf.d/auth-passwdfile.conf.ext # ian: %u is used for alerts user vs iank -mail_location = maildir:/m/%u:LAYOUT=fs:INBOX=/m/%u/INBOX +mail_location = maildir:/m/%u:LAYOUT=fs:INBOX=/m/%u/INBOX:INDEX=/var/dovecot-indexes/%u mail_uid = $u mail_gid = $u diff --git a/mount-latest-subvol b/mount-latest-subvol index c66eebc..eb682f4 100644 --- a/mount-latest-subvol +++ b/mount-latest-subvol @@ -271,8 +271,10 @@ fi fa=(/mnt/o/btrbk/o.*); f=${fa[0]} if [[ -e $f ]]; then if [[ $o_dev != "$root_dev" ]]; then + # ,compress=zstd regardless of mopts since these are all text files + # and it cuts disk use by about half. fstab <