I just started a heavy load imap service and everything fitted OK in
functional terms. The problem comes whith stress tests, I have no
problem in the directors line. But my doubt comes whether the backends
are using efficiently the resources assigned or not. The main goal is
to maximize the concurrency without affect the integrity of
operations. My question is: Is there a rule for relating the amount of
computing resources (RAM, Processor) with the number of simultaneous
connections to an IMAP/POP3 server running dovecot?
I had made all the adjustmens for high performance in dovecot
according to the docs and O.S specs
Backend's hardware
Processor: AMD Opteron(tm) Processor 6136
RAM: 16 GB
HDD: Enought for testing
I'm confident the NFS layer is not making noise (yet). Comparing the
results, the output of tests are giving consistent numbers using local
file systems (all of them properly tuned)
I have run the tests with imaptest but even with 100 clients I'm
having system's max load of 46 stable. I have the sense that memory is
not using properly (2GB at most from 16GB).
Thank you so much in advance, would be grateful for any help
Conf below
Dovecot version 2.2.10
doveconf -n
# OS: Linux 3.10.0-123.20.1.el7.x86_64 x86_64 Red Hat Enterprise Linux
Server release 7.0 (Maipo) nfs4
auth_mechanisms = plain login
default_client_limit = 4000
disable_plaintext_auth = no
listen = *
mail_fsync = always
mail_gid = 500
mail_location = maildir:/var/vmail/mailboxes/%d/%8n/%n:INDEX=MEMORY
mail_nfs_index = yes
mail_nfs_storage = yes
mail_uid = 500
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope
encoded-character vacation subaddress comparator-i;ascii-numeric
relational regex imap4flags copy include variables body enotify
environment mailbox date ihave
mmap_disable = yes
namespace inbox {
inbox = yes
location mailbox Drafts {
special_use = \Drafts
}
mailbox Junk {
special_use = \Junk
}
mailbox Sent {
special_use = \Sent
}
mailbox "Sent Messages" {
special_use = \Sent
}
mailbox Trash {
special_use = \Trash
}
prefix }
passdb {
args = /etc/dovecot/dovecot-ldap.conf.ext
driver = ldap
}
plugin {
sieve = ~/.dovecot.sieve
sieve_dir = ~/sieve
}
service auth {
client_limit = 14400
service_count = 0
unix_listener auth-userdb {
group = vmail
mode = 0640
user = vmail
}
}
service doveadm {
inet_listener {
port = 24245
}
}
service imap-login {
client_limit = 1000
process_limit = 100
process_min_avail = 16
service_count = 0
vsz_limit = 512 M
}
service imap {
process_limit = 7000
service_count = 0
}
service pop3-login {
client_limit = 1000
process_limit = 100
process_min_avail = 16
service_count = 0
}
service pop3 {
process_limit = 7000
service_count = 0
}
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem
userdb {
args = /etc/dovecot/dovecot-ldap.conf.ext
driver = ldap
}
protocol imap {
mail_max_userip_connections = 1000
}
local 172.28.200.0/24/24 {
doveadm_password = secret
}