very slow syncing, any ideas?

Andrew Morgan morgan at orst.edu
Thu Oct 19 20:39:24 EDT 2006


On Thu, 19 Oct 2006, Michael Loftis wrote:

> --On October 19, 2006 11:25:07 PM +0200 Marten Lehmann <lehmann at cnm.de> 
> wrote:
>
>> Hello,
>> 
>>> Uhm... LA of 30 is very high.  What OS?  I assume Linux, vmstat 5 will
>>> tell you where you're hitting the wall, but unless you've got an 8 CPU
>>> machine LA 30 is rather quite high.  Linux LA is a measurement of
>>> processes blocked on I/O, processes running and processes waiting to run
>>> on a CPU.
>> 
>> yes, Linux (2.6.9, RHEL4):
>
> Looking at taht i'd say you're VERY badly CPU bound.  a simple dd/cp doesn't 
> do anything to the mail but IMAP ops will require some CPU work....Cyrus also 
> will probably be forcing syncs but your I/O load doesn't look that high (my 
> mfe's run more I/O and they're not storing any mail, just logs and temporary 
> files for virus/spam scanning heh, and they only have a little IDE HDD each)
>
> the numebrs in the procs->r column indicate you've got a lot of processes 
> vying for CPU time.  the b column indicates you've got a little bit of 
> blocking going on.  Processes in the 'D' state may show up in ps or top 
> output (doubtfully top unless you change the default sort).
>
> I'd guess you're being CPU bound and cyrus is probably running (usually does 
> by default) at a bit lower priority than your interactive cp operations.  2.6 
> kernel scheduler does a lot of weird stuff if it determines you're 
> interactive, and then tends to give you priority over daemons.  it's very 
> non-deterministic, but I don't think you're running into this.  quite likely 
> some inefficiencies in the cyrus code (or intentional backoffs?) but mostly 
> just being CPU bound.  I know our MBEs can generally scp or rsync quite a bit 
> faster than they can perform a XFER/RENAME command that moves between mail 
> store servers (IE MURDER host to MURDER host).

No clue if it matters in this imapsync case, but if you are using the 2.6 
kernel, you should set the I/O scheduler to "deadline" rather than the 
default "anticipatory".  You can set this in the boot loader, such as the 
following for lilo.conf:

   append="elevator=deadline"

or you can change the scheduler on the fly by:

   echo "deadline" > /sys/block/sdb/queue/scheduler

Replace "sdb" with the block device you store your cyrus mail spool on.

 	Andy


More information about the Info-cyrus mailing list