Hello,

I'm currently benchmarking new hardware aimed to serve around 70k users
For now, our IMAP server have 13k users.

To run imaptest, I've spwan some bench clients.
Each bench client can run imaptest with 1000 clients.
More than 1000 clients will load CPU of this bench client

imaptest command (command are chosen from usage stat on our other IMAP servers):

imaptest host=xxxxx port=xxx userfile=userfile mbox=/root/dovecot-crlf
	pass=sxxxx seed=123 clients=1000 select=194 uidfetch=94 noop=70
	status=82 append=49 fetch=276 list=12 store=19 expunge=22
	msubs=4 search=4 logout=1 delete=81 no_pipelining


With one bench client, everything runs smoothly.

# ps aux | grep dovecot | awk '{print $11,$12,$13,$14,$15,$16,$17,$18}' | sort | uniq -c
     1 anvil: [221 connections] (anvil)
   1 auth: [13 wait, 0 passdb, 0 userdb] (auth)
   1 dovecot/config
   1 dovecot/imap
  84 dovecot/imap-login
   1 dovecot/log
  20 dovecot/pop3-login
   1 grep dovecot
   1 stats: [1307 connections] (stats)


When a second instance bench instance start imaptest, clients of first and second instance begin to stall :

 1400 stalled for 20 secs in command: 1 LOGIN "fakeuser644@mailbench...." "password"

And :

# ps aux | grep dovecot | awk '{print $11,$12,$13,$14,$15,$16,$17,$18}' | sort | uniq -c
   1 anvil: [221 connections] (anvil)
   1 auth: [1227 wait, 0 passdb, 0 userdb] (auth)
   1 dovecot/config
   1 dovecot/imap
  37 dovecot/imap-login
   1 dovecot/log
  20 dovecot/pop3-login
   1 grep dovecot
   1 stats: [680 connections] (stats)

Every auth go in wait, number of connection decreases.

Using mysql or a password file give same results.

I have used different values for service_count with also no success.

I think my use of imaptest could be false.
My understanding of service auth is limited for now because I'm quite new to Dovecot (I have previously worked with Cyrus).

Thank you for every hints.


Ismaël Tanguy