[Dovecot] dsync on large mailbox "fails"

Jeff Kletsky dovecot at allycomm.com
Tue Apr 24 06:38:16 EEST 2012


On 4/23/12 12:56 PM, Jeff Kletsky wrote:
> I've been trying to convert an existing set of mbox mail to maildir 
> using dsync, but it seems to fail when it gets to the large boxes.
>
> $ dsync -Dv mirror maildir:~/Maildir
>
> Everything seems to work reasonably well until the first of the large 
> boxes hits:
>
> dsync(jeff): Warning: Maildir /home/jeff/Maildir/.cron.2010-07-10: 
> Synchronization took 1210 seconds (102289 new msgs, 0 flag change 
> attempts, 0 expunge attempts)
> dsync(jeff): Warning: Transaction log file 
> /home/jeff/Maildir/.cron.2010-07-10/dovecot.index.log was locked for 
> 1210 seconds
>
> After this, the doveadm process goes from ~75% of the CPU core 
> utilization to 100% and stays there, even overnight.
>

I believe that some of problem may be that there were a handful of boxes 
named with "." in them. These were not "flagged" in the conversion 
process in any way.

http://wiki2.dovecot.org/Migration/MailFormat indicates that you can't 
have a "." in the name of a Maildir box

(I dutifully stopped reading that page at "If you can successfully use 
dsync, you can skip the rest of this page.")

In my case, it may be a contributing factor that there were boxes that 
ended up "stacking" inside each other:
* cron
* cron.2010-07-10
* cron.2010-07-10.remaining

Still not blisteringly fast, but

dsync(jeff): Warning: Maildir /home/jeff/Maildir/.cron_2010-07-10: 
Synchronization took 686 seconds (102289 new msgs, 0 flag change 
attempts, 0 expunge attempts)
dsync(jeff): Warning: Transaction log file 
/home/jeff/Maildir/.cron_2010-07-10/dovecot.index.log was locked for 686 
seconds

is certainly better.

I'm still seeing 100% CPU utilization, with the tail of ls -Altr in 
~/Maildir showing

drwx------  5 jeff  jeff   512 Apr 23 18:19 .XDA
drwx------  5 jeff  jeff   512 Apr 23 18:19 .Spam
drwx------  5 jeff  jeff   512 Apr 23 18:42 .Health
drwx------  5 jeff  jeff   512 Apr 23 18:42 .cron_2010-07-10_remaining
drwx------  5 jeff  jeff   512 Apr 23 18:58 .cron_2010-07-10

It appears from looking in the .cron_2010-07-10 directory that indexing 
is the action underway

[jeff at mail ~/Maildir]$ ls -Altr .cron_2010-07-10
total 27
drwx------  2 jeff  jeff      512 Apr 23 18:15 new
-rw-------  1 jeff  jeff        0 Apr 23 18:15 maildirfolder
drwx------  2 jeff  jeff  5819392 Apr 23 18:42 tmp
drwx------  2 jeff  jeff  5237248 Apr 23 18:42 cur
-rw-------  1 jeff  jeff  4122971 Apr 23 18:42 dovecot-uidlist
-rw-------  1 jeff  jeff       36 Apr 23 18:42 dovecot-keywords
-rw-------  1 jeff  jeff  1650764 Apr 23 18:42 dovecot.index.log.2
-rw-------  1 jeff  jeff  1637008 Apr 23 18:42 dovecot.index
-rw-------  1 jeff  jeff    56124 Apr 23 19:04 dovecot.index.log
-rw-------  1 jeff  jeff  9442304 Apr 23 19:04 dovecot.index.cache
-rw-------  1 jeff  jeff       24 Apr 23 19:04 dovecot-uidlist.lock

(time passes)

It is now 20:35 and it has not advanced. I now no longer believe the 
problem is the mailbox naming, but the indexing.

   PID USERNAME    THR PRI NICE   SIZE    RES STATE   C   TIME   WCPU 
COMMAND
25934 jeff          1 103    0   135M   102M CPU2    2 128:47 100.00% 
doveadm

[jeff at mail ~/Maildir]$ ls -Altr .cron_2010-07-10
total 28
drwx------  2 jeff  jeff      512 Apr 23 18:15 new
-rw-------  1 jeff  jeff        0 Apr 23 18:15 maildirfolder
drwx------  2 jeff  jeff  5819392 Apr 23 18:42 tmp
drwx------  2 jeff  jeff  5237248 Apr 23 18:42 cur
-rw-------  1 jeff  jeff  4122971 Apr 23 18:42 dovecot-uidlist
-rw-------  1 jeff  jeff       36 Apr 23 18:42 dovecot-keywords
-rw-------  1 jeff  jeff  1650764 Apr 23 18:42 dovecot.index.log.2
-rw-------  1 jeff  jeff  1637008 Apr 23 20:26 dovecot.index
-rw-------  1 jeff  jeff   289120 Apr 23 20:36 dovecot.index.log
-rw-------  1 jeff  jeff  9442304 Apr 23 20:36 dovecot.index.cache
-rw-------  1 jeff  jeff       24 Apr 23 20:36 dovecot-uidlist.lock


Any suggestions as to how to proceed?

Jeff




More information about the dovecot mailing list