[Dovecot] severe performance problem (mail cache related?)
Bill Boebel
bill at webmail.us
Fri Feb 16 12:40:07 UTC 2007
On Fri, February 16, 2007 6:39 am, Timo Sirainen <tss at iki.fi> said:
> On Fri, 2007-02-16 at 03:29 -0800, Dan Price wrote:
>> Well there you go, I'm a dope. I think I set mmap_disable=yes because I
>> was seeing strange things happening where there would be thousands
>> (millions?) of madvise(DONTNEED) calls-- seemingly forever in a loop. I
>> have not yet tracked that problem down-- next time I see it, I will
>> make sure to get to the bottom of it.
>
> Actually the only place where madvise(MADV_DONTNEED) is called is in the
> file-cache code which is used only with mmap_disable=yes.
I'm not sure if this is related or not, but we set mmap_disable=yes last week and since then have seen what appears to be an occasional infinite loops. I have been trying to track down some more details before posting to the list, but here is what I have so far. There is no error logged in the dovecot log when this occurs, and it only stops by "kill -9" on the process...
# top -c
PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME CPU COMMAND
7832 virtual 25 0 580 496 376 R 71.5 0.0 70:59 0 imap [user at example.com 192.168.1.14]
# lsof -p 7832
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
imap 7832 virtual cwd DIR 147,0 600 2372995 /data1/mail/ex/example.com/us/user
imap 7832 virtual rtd DIR 3,3 4096 2 /
imap 7832 virtual txt REG 3,3 412996 789553 /usr/libexec/dovecot/imap
imap 7832 virtual mem REG 3,3 33856 771355 /usr/lib/dovecot/lib10_quota_plugin.so
imap 7832 virtual mem REG 3,3 7720 771364 /usr/lib/dovecot/imap/lib11_imap_quota_plugin.so
imap 7832 virtual mem REG 3,3 106912 278626 /lib/ld-2.3.2.so
imap 7832 virtual mem REG 3,3 14868 278653 /lib/libdl-2.3.2.so
imap 7832 virtual mem REG 3,3 1571824 278633 /lib/tls/libc-2.3.2.so
imap 7832 virtual 0u IPv4 -1140164370 TCP vip.mail17a.r4.iad.mlsrvr.com:imap->director2.r2.iad.emailsrvr.com:56195 (ESTABLISHED)
imap 7832 virtual 1u IPv4 -1140164370 TCP vip.mail17a.r4.iad.mlsrvr.com:imap->director2.r2.iad.emailsrvr.com:56195 (ESTABLISHED)
imap 7832 virtual 2w FIFO 0,5 3154802927 pipe
imap 7832 virtual 3r CHR 1,9 599160 /dev/urandom
imap 7832 virtual 4r FIFO 0,5 3154802928 pipe
imap 7832 virtual 5w FIFO 0,5 3154802928 pipe
imap 7832 virtual 6r FIFO 0,5 3154802929 pipe
imap 7832 virtual 7w FIFO 0,5 3154802929 pipe
imap 7832 virtual 8u REG 22,1 11112 6602923 /var/index/data1/mail/ex/example.com/us/user/.Elementos enviados/dovecot.index
imap 7832 virtual 9u REG 22,1 50824 6602903 /var/index/data1/mail/ex/example.com/us/user/.Elementos enviados/dovecot.index.log
imap 7832 virtual 10u REG 147,0 3074 6346008 /data1/mail/ex/example.com/us/user/maildirsize
imap 7832 virtual 11w REG 147,0 905650 7062984 /data1/mail/ex/example.com/us/user/.Elementos enviados/tmp/1171483586.P7832Q0M770594.mail17a.r4.iad.mlsrvr.com
# strace -p 7832
read(0, 0x96ca1f0, 3992) = -1 EAGAIN (Resource temporarily unavailable)
read(0, 0x96ca1f0, 3992) = -1 EAGAIN (Resource temporarily unavailable)
read(0, 0x96ca1f0, 3992) = -1 EAGAIN (Resource temporarily unavailable)
read(0, 0x96ca1f0, 3992) = -1 EAGAIN (Resource temporarily unavailable)
read(0, 0x96ca1f0, 3992) = -1 EAGAIN (Resource temporarily unavailable)
read(0, 0x96ca1f0, 3992) = -1 EAGAIN (Resource temporarily unavailable)
read(0, 0x96ca1f0, 3992) = -1 EAGAIN (Resource temporarily unavailable)
read(0, 0x96ca1f0, 3992) = -1 EAGAIN (Resource temporarily unavailable)
read(0, 0x96ca1f0, 3992) = -1 EAGAIN (Resource temporarily unavailable)
read(0, 0x96ca1f0, 3992) = -1 EAGAIN (Resource temporarily unavailable)
read(0, 0x96ca1f0, 3992) = -1 EAGAIN (Resource temporarily unavailable)
read(0, 0x96ca1f0, 3992) = -1 EAGAIN (Resource temporarily unavailable)
read(0, 0x96ca1f0, 3992) = -1 EAGAIN (Resource temporarily unavailable)
read(0, 0x96ca1f0, 3992) = -1 EAGAIN (Resource temporarily unavailable)
read(0, 0x96ca1f0, 3992) = -1 EAGAIN (Resource temporarily unavailable)
read(0, 0x96ca1f0, 3992) = -1 EAGAIN (Resource temporarily unavailable)
read(0, 0x96ca1f0, 3992) = -1 EAGAIN (Resource temporarily unavailable)
read(0, 0x96ca1f0, 3992) = -1 EAGAIN (Resource temporarily unavailable)
read(0, 0x96ca1f0, 3992) = -1 EAGAIN (Resource temporarily unavailable)
read(0, 0x96ca1f0, 3992) = -1 EAGAIN (Resource temporarily unavailable)
read(0, 0x96ca1f0, 3992) = -1 EAGAIN (Resource temporarily unavailable)
read(0, 0x96ca1f0, 3992) = -1 EAGAIN (Resource temporarily unavailable)
read(0, 0x96ca1f0, 3992) = -1 EAGAIN (Resource temporarily unavailable)
read(0, 0x96ca1f0, 3992) = -1 EAGAIN (Resource temporarily unavailable)
read(0, 0x96ca1f0, 3992) = -1 EAGAIN (Resource temporarily unavailable)
read(0, 0x96ca1f0, 3992) = -1 EAGAIN (Resource temporarily unavailable)
read(0, 0x96ca1f0, 3992) = -1 EAGAIN (Resource temporarily unavailable)
read(0, 0x96ca1f0, 3992) = -1 EAGAIN (Resource temporarily unavailable)
read(0, 0x96ca1f0, 3992) = -1 EAGAIN (Resource temporarily unavailable)
read(0, 0x96ca1f0, 3992) = -1 EAGAIN (Resource temporarily unavailable)
read(0, 0x96ca1f0, 3992) = -1 EAGAIN (Resource temporarily unavailable)
read(0, 0x96ca1f0, 3992) = -1 EAGAIN (Resource temporarily unavailable)
read(0, 0x96ca1f0, 3992) = -1 EAGAIN (Resource temporarily unavailable)
read(0, 0x96ca1f0, 3992) = -1 EAGAIN (Resource temporarily unavailable)
read(0, 0x96ca1f0, 3992) = -1 EAGAIN (Resource temporarily unavailable)
read(0, 0x96ca1f0, 3992) = -1 EAGAIN (Resource temporarily unavailable)
read(0, 0x96ca1f0, 3992) = -1 EAGAIN (Resource temporarily unavailable)
read(0, 0x96ca1f0, 3992) = -1 EAGAIN (Resource temporarily unavailable)
read(0, 0x96ca1f0, 3992) = -1 EAGAIN (Resource temporarily unavailable)
read(0, 0x96ca1f0, 3992) = -1 EAGAIN (Resource temporarily unavailable)
More information about the dovecot
mailing list