On 29.3.2012, at 2.51, Jeff Gustafson wrote:
Most of the time is spent on usermode CPU code. I doubt the problem is dsync itself, most likely the problem is mdbox's saving code. Or possibly index/cache code. Try the same dsync backup for:
- mbox:/tmp/mbox
- mbox:/tmp/mbox:INDEX=MEMORY
- sdbox:/tmp/sdbox
My tests show that maildir to mdbox or sdbox backup/conversions take about the same length in time. I noticed maybe a second or two difference between mdbox and sdbox). On a 3.1GB mailbox either one took about 6 minutes. Rsync, on the other hand, took less than a minute. I will re-run the tests with a maildir to maildir backup and see how long it takes.
Try also with INDEX=MEMORY, since the problem may be related to updating the indexes.
Another way to test if the problem is dsync or Dovecot's generic mail saving code is to run:
time doveadm -o mail=mdbox:/tmp/mdbox import mdbox:/path/to/real/mdbox "" all
Or if it's the mail reading code:
time doveadm fetch -u user@domain text all > /dev/null