[Dovecot] dbmail + cydir benchmarking

Timo Sirainen
Wed, 16 May 2007 18:21:11 -0000

On Sat, 2007-05-12 at 03:16 +0300, Timo Sirainen wrote:
>   - In raw append speed dbmail is almost as fast as maildir.
>   - In raw read/write speed maildir is about 1,6 times faster
>   - When adding metadata fetches Dovecot is 4 times faster than
> dbmail. This is most likely because dbmail doesn't have a cache
> equivalent to dovecot.index.cache so it has to do the fetches the
> slow way.

I think these are wrong actually. In those benchmarks the server was
mainly just waiting for new APPEND commands, so the results were
somewhat similar. Now lets try with 100 clients to see how it goes:

dbmail SVN 2_2_branch + MySQL:

./imaptest - append=100 seed=1 secs=30 msgs=1000000 logout=0 select=0
clients=100
Logi Appe
100% 100%
       5%
 100 1642

Hmm. Maybe that was too much for it. Lets try with 30:

./imaptest - append=100 seed=1 secs=30 msgs=1000000 logout=0 select=0
clients=30
Logi Appe
100% 100%
       5%
  30 2620

So the performance got better with less simultaneous clients.

Dovecot CVS HEAD + maildir + fsync_disable=no:
./imaptest - append=100 seed=1 secs=30 msgs=1000000 logout=0 select=0
clients=100
Logi Appe
100% 100%
       5%
 100 4720

The speed dropped from 200 msgs/sec to 100 msgs/sec. The larger the
maildir, the slower it becomes. Lets try with 30 clients with Dovecot
too:

./imaptest - append=100 seed=1 secs=30 msgs=1000000 logout=0 select=0
clients=30
Logi Appe
100% 100%
       5%
  30 3960

msgs/sec drops, as expected. Now, lets see how much fsync is slowing it
down:

Dovecot CVS HEAD + maildir + fsync_disable=yes:
./imaptest - append=100 seed=1 secs=30 msgs=1000000 logout=0 select=0
clients=100
Logi Appe
100% 100%
       5%
 100 5951

The speed drops from 587/sec -> 113/sec. Lets try Dovecot's high
performance Cyrus-like cydir format then:

Dovecot CVS HEAD + cydir + fsync_disable=no:
./imaptest - append=100 seed=1 secs=30 msgs=1000000 logout=0 select=0
clients=100
Logi Appe
100% 100%
       5%
 100 35217

Well, isn't that something. Almost 10 times faster than maildir. The
speed only drops from 1240/sec to 1150/sec. fsync_disable=yes gives
+1000 messages, so not that much.

Since the speed was quite steady 11-12/connection, lets try with some
more connections. How about 200 clients:

Dovecot CVS HEAD + cydir + fsync_disable=no:
./imaptest - append=100 seed=1 secs=30 msgs=1000000 logout=0 select=0
clients=200
Logi Appe
100% 100%
       5%
 200 1398 200/200
   0 2268 200/200
   0 2145 200/200
   0 1965 200/200
   0 1448 200/200
   0 1650 200/200
   0 1216 200/200
   0 1193 200/200
   0 1112 200/200
...
   0  708 200/200
   0  812 200/200
   0  726 200/200
   0  780 200/200
   0  727 200/200

Totals:
Logi Appe
100% 100%
       5%
 200 32844

This didn't go so well anymore. It started nicely with the expected
2200/sec, but dropped rapidly. Might be because of lock contention, or
because of ext3, or even because of imaptest itself.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
URL:
<http://dovecot.org/pipermail/dovecot/attachments/20070516/f6bef240/attachment.bin>