Re: [Dovecot] Config review (2.0.5)

2010-11-03 Thread Ralf Hildebrandt
* Timo Sirainen t...@iki.fi:
 On Tue, 2010-10-26 at 15:46 +0200, Ralf Hildebrandt wrote:
 
  on the morning I was running dovecot-lda for local delivery, but
  then switched to the old 1.2.x deliver for performance reasons.
 
 If the slowness is caused by config parsing, that's actually easy to
 avoid:
 
 service config {
   unix_listener config {
 mode = 0666
   }
 }
 
 (Of course assuming there isn't anything secret in the config.)
 
 Now dovecot-lda and others will read the config from the socket rather
 than executing doveconf.

I will test this immediately!!

-- 
Ralf Hildebrandt
  Geschäftsbereich IT | Abteilung Netzwerk
  Charité - Universitätsmedizin Berlin
  Campus Benjamin Franklin
  Hindenburgdamm 30 | D-12203 Berlin
  Tel. +49 30 450 570 155 | Fax: +49 30 450 570 962
  ralf.hildebra...@charite.de | http://www.charite.de



Re: [Dovecot] Config review (2.0.5)

2010-11-03 Thread Timo Sirainen
On 3.11.2010, at 7.51, Ralf Hildebrandt wrote:

 service config {
  unix_listener config {
mode = 0666
  }
 }
 
 Now dovecot-lda and others will read the config from the socket rather
 than executing doveconf.
 
 I will test this immediately!!

Forgot to mention: This requires that base_dir hasn't been changed from the 
built-in default. But that can also be worked around with symlinks, e.g.:

ln -s /var/run/dovecot /usr/local/var/run/dovecot



Re: [Dovecot] Config review (2.0.5)

2010-11-03 Thread Ralf Hildebrandt
* Timo Sirainen t...@iki.fi:
 On 3.11.2010, at 7.51, Ralf Hildebrandt wrote:
 
  service config {
   unix_listener config {
 mode = 0666
   }
  }
  
  Now dovecot-lda and others will read the config from the socket rather
  than executing doveconf.
  
  I will test this immediately!!
 
 Forgot to mention: This requires that base_dir hasn't been changed from the 
 built-in default. But that can also be worked around with symlinks, e.g.:
 
 ln -s /var/run/dovecot /usr/local/var/run/dovecot

Well, dovecot itself seems to be working. Would it log problems
accessing base_dir?

-- 
Ralf Hildebrandt
  Geschäftsbereich IT | Abteilung Netzwerk
  Charité - Universitätsmedizin Berlin
  Campus Benjamin Franklin
  Hindenburgdamm 30 | D-12203 Berlin
  Tel. +49 30 450 570 155 | Fax: +49 30 450 570 962
  ralf.hildebra...@charite.de | http://www.charite.de



Re: [Dovecot] Config review (2.0.5)

2010-11-03 Thread Timo Sirainen
On 3.11.2010, at 10.32, Ralf Hildebrandt wrote:

 Forgot to mention: This requires that base_dir hasn't been changed from the 
 built-in default. But that can also be worked around with symlinks, e.g.:
 
 ln -s /var/run/dovecot /usr/local/var/run/dovecot
 
 Well, dovecot itself seems to be working. Would it log problems
 accessing base_dir?

No. If it can't read the config socket (which it can't by default), it silently 
fallbacks to executing doveconf.



Re: [Dovecot] Config review (2.0.5)

2010-11-03 Thread Ralf Hildebrandt
* Timo Sirainen t...@iki.fi:
 On 3.11.2010, at 7.51, Ralf Hildebrandt wrote:
 
  service config {
   unix_listener config {
 mode = 0666
   }
  }
  
  Now dovecot-lda and others will read the config from the socket rather
  than executing doveconf.
  
  I will test this immediately!!
 
 Forgot to mention: This requires that base_dir hasn't been changed from the 
 built-in default. But that can also be worked around with symlinks, e.g.:
 
 ln -s /var/run/dovecot /usr/local/var/run/dovecot

ln -s /usr/dovecot-2/var/run/dovecot /var/run/dovecot

(since /var/run/dovecot didn't exist here, I have everything below 
--prefix=/usr/dovecot-2)

-- 
Ralf Hildebrandt
  Geschäftsbereich IT | Abteilung Netzwerk
  Charité - Universitätsmedizin Berlin
  Campus Benjamin Franklin
  Hindenburgdamm 30 | D-12203 Berlin
  Tel. +49 30 450 570 155 | Fax: +49 30 450 570 962
  ralf.hildebra...@charite.de | http://www.charite.de



Re: [Dovecot] Config review (2.0.5)

2010-11-03 Thread Ralf Hildebrandt
* Timo Sirainen t...@iki.fi:

 No. If it can't read the config socket (which it can't by default), it 
 silently fallbacks to executing doveconf.

:)

-- 
Ralf Hildebrandt
  Geschäftsbereich IT | Abteilung Netzwerk
  Charité - Universitätsmedizin Berlin
  Campus Benjamin Franklin
  Hindenburgdamm 30 | D-12203 Berlin
  Tel. +49 30 450 570 155 | Fax: +49 30 450 570 962
  ralf.hildebra...@charite.de | http://www.charite.de



Re: [Dovecot] Config review (2.0.5)

2010-11-03 Thread Timo Sirainen
On 3.11.2010, at 10.34, Ralf Hildebrandt wrote:

 ln -s /var/run/dovecot /usr/local/var/run/dovecot
 
 ln -s /usr/dovecot-2/var/run/dovecot /var/run/dovecot

That symlink probably gets deleted at system bootup.

 (since /var/run/dovecot didn't exist here, I have everything below 
 --prefix=/usr/dovecot-2)

If you haven't changed base_dir, then the symlink isn't necessary. In the 
example above I was assuming base_dir had been changed to /var/run/dovecot from 
the built-in /usr/local/var/run/dovecot.



Re: [Dovecot] Config review (2.0.5)

2010-11-03 Thread Ralf Hildebrandt
* Timo Sirainen t...@iki.fi:
 On 3.11.2010, at 10.34, Ralf Hildebrandt wrote:
 
  ln -s /var/run/dovecot /usr/local/var/run/dovecot
  
  ln -s /usr/dovecot-2/var/run/dovecot /var/run/dovecot
 
 That symlink probably gets deleted at system bootup.
 
  (since /var/run/dovecot didn't exist here, I have everything below 
  --prefix=/usr/dovecot-2)
 
 If you haven't changed base_dir, then the symlink isn't necessary. In the 
 example above I was assuming base_dir had been changed to /var/run/dovecot 
 from the built-in /usr/local/var/run/dovecot.

I left base_dir at it's default, which is $prefix/var/run/dovecot 
So, no harm, no foul

-- 
Ralf Hildebrandt
  Geschäftsbereich IT | Abteilung Netzwerk
  Charité - Universitätsmedizin Berlin
  Campus Benjamin Franklin
  Hindenburgdamm 30 | D-12203 Berlin
  Tel. +49 30 450 570 155 | Fax: +49 30 450 570 962
  ralf.hildebra...@charite.de | http://www.charite.de



Re: [Dovecot] Config review (2.0.5)

2010-11-02 Thread Timo Sirainen
On Tue, 2010-10-26 at 15:46 +0200, Ralf Hildebrandt wrote:

 on the morning I was running dovecot-lda for local delivery, but
 then switched to the old 1.2.x deliver for performance reasons.

If the slowness is caused by config parsing, that's actually easy to
avoid:

service config {
  unix_listener config {
mode = 0666
  }
}

(Of course assuming there isn't anything secret in the config.)

Now dovecot-lda and others will read the config from the socket rather
than executing doveconf.



Re: [Dovecot] Config review (2.0.5)

2010-10-26 Thread Ralf Hildebrandt
* Timo Sirainen t...@iki.fi:

  My idea is to turn back on logging and then trace the dovecot/log
  process using 
  
  strace -p PID -c
 
 -tt is also nice.

I traced around a bit today, in dovecot-lda. 
A pattern I'm seeing quite often is this:

 0.000853 open(/usr/dovecot-2/lib/dovecot/settings, 
O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 7
 0.000463 fcntl64(7, F_GETFD)   = 0x1 (flags FD_CLOEXEC)
 0.000555 getdents64(7, /* 8 entries */, 32768) = 360
 0.023219 getdents64(7, /* 0 entries */, 32768) = 0
 0.001545 close(7)  = 0

two consecutive getdents64 calls on the same FD, one fast, one slow.
WTF?

# ll /usr/dovecot-2/lib/dovecot/settings
total 88
-rw-r--r-- 1 root root 24766 Okt 21 21:27 libmanagesieve_login_settings.a
-rwxr-xr-x 1 root root  1107 Okt 21 21:27 libmanagesieve_login_settings.la
-rwxr-xr-x 1 root root 23291 Okt 21 21:27 libmanagesieve_login_settings.so
-rw-r--r-- 1 root root 11630 Okt 21 21:27 libmanagesieve_settings.a
-rwxr-xr-x 1 root root  1065 Okt 21 21:27 libmanagesieve_settings.la
-rwxr-xr-x 1 root root 12858 Okt 21 21:27 libmanagesieve_settings.so

And this is happening once more in the same trace:

 0.002036 open(/usr/dovecot-2/lib/dovecot, 
O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 8
 0.000468 fcntl64(8, F_GETFD)   = 0x1 (flags FD_CLOEXEC)
 0.003281 getdents64(8, /* 85 entries */, 32768) = 3736
 0.150525 getdents64(8, /* 0 entries */, 32768) = 0
 0.000490 close(8)  = 0

on fast call, one slow call.

Sorting all traces by execution time:

% cat dovecot-lda.* | sort -n -k1 |less
 0.094459 fstat64(8, {st_mode=S_IFREG|0755, st_size=1870288, ...}) = 0
 0.095051 brk(0x8d73000)= 0x8d73000
 0.098191 getdents64(8, /* 0 entries */, 32768) = 0
 0.098912 time(NULL)= 1288084930
 0.103059 getdents64(8, /* 0 entries */, 32768) = 0
 0.110251 getdents64(8, /* 0 entries */, 32768) = 0
 0.115710 getdents64(8, /* 0 entries */, 32768) = 0
 0.117688 time(NULL)= 1288084937
 0.128360 getdents64(8, /* 0 entries */, 32768) = 0
 0.130091 mprotect(0xb75b4000, 4096, PROT_READ) = 0
 0.131681 rt_sigaction(SIGALRM, {0xb76cb490, [], SA_SIGINFO}, NULL, 8) = 0
 0.133327 getdents64(8, /* 0 entries */, 32768) = 0
 0.134047 stat64(/home/c/o/cousername/Maildir/dovecot-uidlist, 
{st_mode=S_IFREG|0600, st_size=1130, ...}) = 0
 0.135077 rt_sigaction(SIGPIPE, {SIG_IGN, [], SA_RESTART}, NULL, 8) = 0
 0.150525 getdents64(8, /* 0 entries */, 32768) = 0
 0.153457 open(/home/f/k/fkusername/Maildir/dovecot-uidlist, 
O_RDWR|O_LARGEFILE) = 11
 0.170190 getdents64(8, /* 0 entries */, 32768) = 0
 0.188536 getdents64(8, /* 0 entries */, 32768) = 0
 0.193665 umask(077)= 0177
 0.270003 getdents64(8, /* 0 entries */, 32768) = 0

-- 
Ralf Hildebrandt
  Geschäftsbereich IT | Abteilung Netzwerk
  Charité - Universitätsmedizin Berlin
  Campus Benjamin Franklin
  Hindenburgdamm 30 | D-12203 Berlin
  Tel. +49 30 450 570 155 | Fax: +49 30 450 570 962
  ralf.hildebra...@charite.de | http://www.charite.de



Re: [Dovecot] Config review (2.0.5)

2010-10-26 Thread Ralf Hildebrandt
* Ralf Hildebrandt ralf.hildebra...@charite.de:

 I traced around a bit today, in dovecot-lda. 
 A pattern I'm seeing quite often is this:

I also actived system accounting and found this:

# sa -l |egrep (deliver|dovecot-lda)

17365 277.05re   5.98u  159.69s 0avio  1489k   
dovecot-lda
17951 179.22re   2.04u   74.71s 0avio  1360k   deliver

on the morning I was running dovecot-lda for local delivery, but
then switched to the old 1.2.x deliver for performance reasons.

Both are using sieve etc. (I converted the config when switching to
2.0.x). It seems the old deliver is using less real time, and only 50%
system time.

-- 
Ralf Hildebrandt
  Geschäftsbereich IT | Abteilung Netzwerk
  Charité - Universitätsmedizin Berlin
  Campus Benjamin Franklin
  Hindenburgdamm 30 | D-12203 Berlin
  Tel. +49 30 450 570 155 | Fax: +49 30 450 570 962
  ralf.hildebra...@charite.de | http://www.charite.de



Re: [Dovecot] Config review (2.0.5)

2010-10-26 Thread Timo Sirainen
On Tue, 2010-10-26 at 11:44 +0200, Ralf Hildebrandt wrote:
 I traced around a bit today, in dovecot-lda. 
 A pattern I'm seeing quite often is this:
 
  0.000853 open(/usr/dovecot-2/lib/dovecot/settings, 
 O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 7
  0.000463 fcntl64(7, F_GETFD)   = 0x1 (flags FD_CLOEXEC)
  0.000555 getdents64(7, /* 8 entries */, 32768) = 360
  0.023219 getdents64(7, /* 0 entries */, 32768) = 0
  0.001545 close(7)  = 0
 
 two consecutive getdents64 calls on the same FD, one fast, one slow.
 WTF?

I don't know.. Is that directory on local filesystem? Are your mails on
the same disk?

 And this is happening once more in the same trace:
 
  0.002036 open(/usr/dovecot-2/lib/dovecot, 
 O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 8
  0.000468 fcntl64(8, F_GETFD)   = 0x1 (flags FD_CLOEXEC)
  0.003281 getdents64(8, /* 85 entries */, 32768) = 3736
  0.150525 getdents64(8, /* 0 entries */, 32768) = 0
  0.000490 close(8)  = 0
 
 on fast call, one slow call.

v1.x was also doing this. It's for loading plugins.

  0.098912 time(NULL)= 1288084930

time(NULL) should always be a really fast operation. On my somewhat old
machine it takes 0.16 seconds. So if it's taking this long, it seems
that the system in general is under heavy load and the individual system
call times don't really tell anything.

  0.193665 umask(077)= 0177

This should be about 0.16 seconds too.



Re: [Dovecot] Config review (2.0.5)

2010-10-26 Thread Ralf Hildebrandt
* Timo Sirainen t...@iki.fi:
 On Tue, 2010-10-26 at 11:44 +0200, Ralf Hildebrandt wrote:
  I traced around a bit today, in dovecot-lda. 
  A pattern I'm seeing quite often is this:
  
   0.000853 open(/usr/dovecot-2/lib/dovecot/settings, 
  O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 7
   0.000463 fcntl64(7, F_GETFD)   = 0x1 (flags FD_CLOEXEC)
   0.000555 getdents64(7, /* 8 entries */, 32768) = 360
   0.023219 getdents64(7, /* 0 entries */, 32768) = 0
   0.001545 close(7)  = 0
  
  two consecutive getdents64 calls on the same FD, one fast, one slow.
  WTF?
 
 I don't know.. Is that directory on local filesystem?

Yes.

 Are your mails on the same disk?

No!

We have:
/dev/sda1 on / type ext3 (rw,errors=panic)
/dev/mapper/volg1-logv1 on /home type ext4 
(rw,noexec,nodev,noatime,errors=panic,data=writeback)

 time(NULL) should always be a really fast operation. On my somewhat old
 machine it takes 0.16 seconds. So if it's taking this long, it seems
 that the system in general is under heavy load and the individual system
 call times don't really tell anything.

Yes, but where does the heavy load come from :)

-- 
Ralf Hildebrandt
  Geschäftsbereich IT | Abteilung Netzwerk
  Charité - Universitätsmedizin Berlin
  Campus Benjamin Franklin
  Hindenburgdamm 30 | D-12203 Berlin
  Tel. +49 30 450 570 155 | Fax: +49 30 450 570 962
  ralf.hildebra...@charite.de | http://www.charite.de



Re: [Dovecot] Config review (2.0.5)

2010-10-15 Thread Ralf Hildebrandt
* Timo Sirainen t...@iki.fi:

 With v1.2 all logging also went through dovecot master process,

OK. I never bothered, because I never had problems :)

I think dovecot could benefit from a diagram like the Postfix big
picture where all daemons are listed and their relations/dependencies. 

 each using their own pipe fd. With v2.0 each service has their own fd
 (e.g. all imap processes log via the same shared pipe fd, all pop3
 processes log via another fd, etc). So it should be better in v2.0 than
 v1.2..

Yes. 

My idea is to turn back on logging and then trace the dovecot/log
process using 

strace -p PID -c

but not today, I'd rather do this on the weekend.

 It would be possible to make all processes log directly though, by
 adding -L parameter to the service executables.

That would be interesting.

-- 
Ralf Hildebrandt
  Geschäftsbereich IT | Abteilung Netzwerk
  Charité - Universitätsmedizin Berlin
  Campus Benjamin Franklin
  Hindenburgdamm 30 | D-12203 Berlin
  Tel. +49 30 450 570 155 | Fax: +49 30 450 570 962
  ralf.hildebra...@charite.de | http://www.charite.de



Re: [Dovecot] Config review (2.0.5)

2010-10-15 Thread Timo Sirainen
On Fri, 2010-10-15 at 09:51 +0200, Ralf Hildebrandt wrote:

 * Timo Sirainen t...@iki.fi:
 
  With v1.2 all logging also went through dovecot master process,
 
 OK. I never bothered, because I never had problems :)
 
 I think dovecot could benefit from a diagram like the Postfix big
 picture where all daemons are listed and their relations/dependencies. 

Yeah, I guess I should draw something some day. :)

 My idea is to turn back on logging and then trace the dovecot/log
 process using 
 
 strace -p PID -c

-tt is also nice.

 but not today, I'd rather do this on the weekend.

Each log line is written in a separate write() call. This would be a bit
tricky to change to buffer the writes.. But I did get rid of some
unnecessary time() + stat(/etc/localtime) calls with:

http://hg.dovecot.org/dovecot-2.0/rev/4933c3095ee2
http://hg.dovecot.org/dovecot-2.0/rev/e68366e88099
http://hg.dovecot.org/dovecot-2.0/rev/80097e5c38e9



Re: [Dovecot] Config review (2.0.5)

2010-10-15 Thread Ralf Hildebrandt
* Timo Sirainen t...@iki.fi:

  OK. I never bothered, because I never had problems :)
  
  I think dovecot could benefit from a diagram like the Postfix big
  picture where all daemons are listed and their relations/dependencies. 
 
 Yeah, I guess I should draw something some day. :)

Postfix is a bad example. I had to redraw Wietse's diagram for a course
on Postfix, since he kept adding new daemons :) 

 Each log line is written in a separate write() call. This would be a bit
 tricky to change to buffer the writes.. But I did get rid of some
 unnecessary time() + stat(/etc/localtime) calls with:
 
 http://hg.dovecot.org/dovecot-2.0/rev/4933c3095ee2
 http://hg.dovecot.org/dovecot-2.0/rev/e68366e88099
 http://hg.dovecot.org/dovecot-2.0/rev/80097e5c38e9

I love you man :-)
I'll try those.
-- 
Ralf Hildebrandt
  Geschäftsbereich IT | Abteilung Netzwerk
  Charité - Universitätsmedizin Berlin
  Campus Benjamin Franklin
  Hindenburgdamm 30 | D-12203 Berlin
  Tel. +49 30 450 570 155 | Fax: +49 30 450 570 962
  ralf.hildebra...@charite.de | http://www.charite.de



Re: [Dovecot] Config review (2.0.5)

2010-10-14 Thread Ralf Hildebrandt
* Ralf Hildebrandt ralf.hildebra...@charite.de:

 Colleague returned from vacation today and gave some ideas.
 Today I turned off the mail_log and notify plugins and the load
 dropped considerably. Both plugins were used with default settings.

I left all settings unchanged and examined the machine. Load stays
low, so something the way how logging is done in 2.0.x must have
changed.

-- 
Ralf Hildebrandt
  Geschäftsbereich IT | Abteilung Netzwerk
  Charité - Universitätsmedizin Berlin
  Campus Benjamin Franklin
  Hindenburgdamm 30 | D-12203 Berlin
  Tel. +49 30 450 570 155 | Fax: +49 30 450 570 962
  ralf.hildebra...@charite.de | http://www.charite.de



Re: [Dovecot] Config review (2.0.5)

2010-10-14 Thread Timo Sirainen
On Thu, 2010-10-14 at 13:42 +0200, Ralf Hildebrandt wrote:
 * Ralf Hildebrandt ralf.hildebra...@charite.de:
 
  Colleague returned from vacation today and gave some ideas.
  Today I turned off the mail_log and notify plugins and the load
  dropped considerably. Both plugins were used with default settings.
 
 I left all settings unchanged and examined the machine. Load stays
 low, so something the way how logging is done in 2.0.x must have
 changed.

Load as in I/O load or CPU load?.. If CPU, which process was eating it?
I can't think of any good reason why mail_log would be doing anything
that would cause such problems (other than maybe just logging too much
stuff and causing problems because of that).




Re: [Dovecot] Config review (2.0.5)

2010-10-14 Thread Ralf Hildebrandt
* Timo Sirainen t...@iki.fi:
 On Thu, 2010-10-14 at 13:42 +0200, Ralf Hildebrandt wrote:
  * Ralf Hildebrandt ralf.hildebra...@charite.de:
  
   Colleague returned from vacation today and gave some ideas.
   Today I turned off the mail_log and notify plugins and the load
   dropped considerably. Both plugins were used with default settings.
  
  I left all settings unchanged and examined the machine. Load stays
  low, so something the way how logging is done in 2.0.x must have
  changed.
 
 Load as in I/O load or CPU load?.. If CPU, which process was eating it?

CPU, specifically system (not user, not idle, not wait).

Process: No special process was peaking. How is the logging
implemented? Each imap process is logging by itself?

 I can't think of any good reason why mail_log would be doing anything
 that would cause such problems (other than maybe just logging too much
 stuff and causing problems because of that).

That kind of logging was on with 1.2.x, unless the defaults changed
between 1.2.x and 2.0.x, it logged the same amount of data...

-- 
Ralf Hildebrandt
  Geschäftsbereich IT | Abteilung Netzwerk
  Charité - Universitätsmedizin Berlin
  Campus Benjamin Franklin
  Hindenburgdamm 30 | D-12203 Berlin
  Tel. +49 30 450 570 155 | Fax: +49 30 450 570 962
  ralf.hildebra...@charite.de | http://www.charite.de



Re: [Dovecot] Config review (2.0.5)

2010-10-14 Thread Timo Sirainen
On Thu, 2010-10-14 at 15:47 +0200, Ralf Hildebrandt wrote:
Colleague returned from vacation today and gave some ideas.
Today I turned off the mail_log and notify plugins and the load
dropped considerably. Both plugins were used with default settings.
  Load as in I/O load or CPU load?.. If CPU, which process was eating it?
 
 CPU, specifically system (not user, not idle, not wait).
 
 Process: No special process was peaking. How is the logging
 implemented? Each imap process is logging by itself?

dovecot-lda logs directly, with everything else it goes through
dovecot/log process. Are you logging to syslog? Hmm. System CPU usage
is about time spent in syscalls.. Is it doing too many tiny write()s or
something? .. Maybe I should strace the processes and see if something's
too slow there.




Re: [Dovecot] Config review (2.0.5)

2010-10-14 Thread Ralf Hildebrandt
* Timo Sirainen t...@iki.fi:


  Process: No special process was peaking. How is the logging
  implemented? Each imap process is logging by itself?
 
 dovecot-lda logs directly,

OK!

 with everything else it goes through dovecot/log process.

Interesting: 1400+ processes logging through one process...
Has this changed from 1.2?

 Are you logging to syslog?

yes!

 Hmm. System CPU usage is about time spent in syscalls..

Exactly.

 Is it doing too many tiny write()s or something?

I was thinking of this as well, because the total amount of disk IO
didn't change (between 1.2 and 2.0) only the time spent in system...

 .. Maybe I should strace the processes and see if something's too slow
 there.

-- 
Ralf Hildebrandt
  Geschäftsbereich IT | Abteilung Netzwerk
  Charité - Universitätsmedizin Berlin
  Campus Benjamin Franklin
  Hindenburgdamm 30 | D-12203 Berlin
  Tel. +49 30 450 570 155 | Fax: +49 30 450 570 962
  ralf.hildebra...@charite.de | http://www.charite.de



Re: [Dovecot] Config review (2.0.5)

2010-10-14 Thread Timo Sirainen
On Thu, 2010-10-14 at 16:47 +0200, Ralf Hildebrandt wrote:

  with everything else it goes through dovecot/log process.
 
 Interesting: 1400+ processes logging through one process...
 Has this changed from 1.2?

With v1.2 all logging also went through dovecot master process, each
using their own pipe fd. With v2.0 each service has their own fd (e.g.
all imap processes log via the same shared pipe fd, all pop3 processes
log via another fd, etc). So it should be better in v2.0 than v1.2..

It would be possible to make all processes log directly though, by
adding -L parameter to the service executables.




Re: [Dovecot] Config review (2.0.5)

2010-10-13 Thread Ralf Hildebrandt
* Daniel L. Miller dmil...@amfes.com:

 Now wait a minute!  You said you found the problem and it was exactly
 what I suggested!  I've already received my prize for most
 intelligent @ss in a discussion group - you can't take that away from
 me!

Yes I can.
*it gone*

 What changed?  You turned off FTS, performance was better - and then
 it developed the problem again?  You didn't specify.

Colleague returned from vacation today and gave some ideas.
Today I turned off the mail_log and notify plugins and the load
dropped considerably. Both plugins were used with default settings.

-- 
Ralf Hildebrandt
  Geschäftsbereich IT | Abteilung Netzwerk
  Charité - Universitätsmedizin Berlin
  Campus Benjamin Franklin
  Hindenburgdamm 30 | D-12203 Berlin
  Tel. +49 30 450 570 155 | Fax: +49 30 450 570 962
  ralf.hildebra...@charite.de | http://www.charite.de



Re: [Dovecot] Config review (2.0.5)

2010-10-12 Thread Ralf Hildebrandt
* Ralf Hildebrandt ralf.hildebra...@charite.de:

 I wonder if the old files from 1.2.5 were still valid with 2.0.5...
 
 But given identical clients and user behaviour (all I changed was the
 dovecot version), one would expect both 1.2.x and 2.0.x behave
 identical in terms of load. 

I put some more effort into the analysis of the performance problems:
It's not the FTS plugin, since re-enabling doesn't change a thing.

-- 
Ralf Hildebrandt
  Geschäftsbereich IT | Abteilung Netzwerk
  Charité - Universitätsmedizin Berlin
  Campus Benjamin Franklin
  Hindenburgdamm 30 | D-12203 Berlin
  Tel. +49 30 450 570 155 | Fax: +49 30 450 570 962
  ralf.hildebra...@charite.de | http://www.charite.de



Re: [Dovecot] Config review (2.0.5)

2010-10-12 Thread Daniel L. Miller

 On 10/12/2010 4:25 AM, Ralf Hildebrandt wrote:

* Ralf Hildebrandtralf.hildebra...@charite.de:


I wonder if the old files from 1.2.5 were still valid with 2.0.5...

But given identical clients and user behaviour (all I changed was the
dovecot version), one would expect both 1.2.x and 2.0.x behave
identical in terms of load.

I put some more effort into the analysis of the performance problems:
It's not the FTS plugin, since re-enabling doesn't change a thing.

Now wait a minute!  You said you found the problem and it was exactly 
what I suggested!  I've already received my prize for most intelligent 
@ss in a discussion group - you can't take that away from me!


What changed?  You turned off FTS, performance was better - and then it 
developed the problem again?  You didn't specify.

--
Daniel


Re: [Dovecot] Config review (2.0.5)

2010-10-10 Thread Timo Sirainen
On 8.10.2010, at 12.55, Ralf Hildebrandt wrote:

 Has the implementation of FTS changed in some way? Reading the two
 wikis doesn't yield any important difference. My clients/users surely
 have not changed!

No.. I haven't touched Squat for a long time. Then again, I haven't really 
tried it much either for a long time. I guess I'll have to try.



Re: [Dovecot] Config review (2.0.5)

2010-10-08 Thread Ralf Hildebrandt
* Daniel L. Miller dmil...@amfes.com:

 # FullTextSearch
fts = squat
 
 I'm probably talking out of the wrong hole again - but have you tried
 removing squat from your plugin list to see if it makes a difference?

Oh my god, load is down this morning. WOW.

But what has changed? My old 1.2.x config ALSO had:

mail_plugins = quota imap_quota trash mail_log fts fts_squat zlib autocreate

and

plugin {
  fts = squat
...

Has the implementation of FTS changed in some way? Reading the two
wikis doesn't yield any important difference. My clients/users surely
have not changed!

-- 
Ralf Hildebrandt
  Geschäftsbereich IT | Abteilung Netzwerk
  Charité - Universitätsmedizin Berlin
  Campus Benjamin Franklin
  Hindenburgdamm 30 | D-12203 Berlin
  Tel. +49 30 450 570 155 | Fax: +49 30 450 570 962
  ralf.hildebra...@charite.de | http://www.charite.de



Re: [Dovecot] Config review (2.0.5)

2010-10-08 Thread ml
  # FullTextSearch
 fts = squat
 
  I'm probably talking out of the wrong hole again - but have you tried
  removing squat from your plugin list to see if it makes a difference?
 
 Oh my god, load is down this morning. WOW.
 
 But what has changed?


Perhaps:
The initial Squat index building for large mailboxes can be very CPU and 
memory hungry. - http://wiki2.dovecot.org/Plugins/FTS/Squat


 




Re: [Dovecot] Config review (2.0.5)

2010-10-08 Thread Ralf Hildebrandt
* m...@eulberg.name m...@eulberg.name:

  Oh my god, load is down this morning. WOW.
  
  But what has changed?
 
 
 Perhaps:
 The initial Squat index building for large mailboxes can be very CPU and 
 memory hungry. - http://wiki2.dovecot.org/Plugins/FTS/Squat

Should that info be logged? Also: since the LDA doesn't update the
search index, repeated logins should cause repeated rebuilds of the
index.

BTW, where's the index stored?

-- 
Ralf Hildebrandt
  Geschäftsbereich IT | Abteilung Netzwerk
  Charité - Universitätsmedizin Berlin
  Campus Benjamin Franklin
  Hindenburgdamm 30 | D-12203 Berlin
  Tel. +49 30 450 570 155 | Fax: +49 30 450 570 962
  ralf.hildebra...@charite.de | http://www.charite.de



Re: [Dovecot] Config review (2.0.5)

2010-10-08 Thread ml
 * m...@eulberg.name m...@eulberg.name:
 
   Oh my god, load is down this morning. WOW.
  
   But what has changed?
 
 
  Perhaps:
  The initial Squat index building for large mailboxes can be very CPU and
 memory hungry. - http://wiki2.dovecot.org/Plugins/FTS/Squat
 
 Should that info be logged? Also: since the LDA doesn't update the
 search index, repeated logins should cause repeated rebuilds of the
 index.
 
 BTW, where's the index stored?

I guess it will not be logged.

Wiki says:
The Squat indexes are stored among Dovecot's other index files. They're called 
dovecot.index.search and dovecot.index.search.uids. It's safe to delete both of 
these files to trigger a rebuild.




Re: [Dovecot] Config review (2.0.5)

2010-10-08 Thread Ralf Hildebrandt
* m...@eulberg.name m...@eulberg.name:

 I guess it will not be logged.

It would probably happen too often. 
 
 Wiki says:
 The Squat indexes are stored among Dovecot's other index files. They're
 called dovecot.index.search and dovecot.index.search.uids. It's safe to
 delete both of these files to trigger a rebuild.

I wonder if the old files from 1.2.5 were still valid with 2.0.5...

But given identical clients and user behaviour (all I changed was the
dovecot version), one would expect both 1.2.x and 2.0.x behave
identical in terms of load. 

-- 
Ralf Hildebrandt
  Geschäftsbereich IT | Abteilung Netzwerk
  Charité - Universitätsmedizin Berlin
  Campus Benjamin Franklin
  Hindenburgdamm 30 | D-12203 Berlin
  Tel. +49 30 450 570 155 | Fax: +49 30 450 570 962
  ralf.hildebra...@charite.de | http://www.charite.de



[Dovecot] Config review (2.0.5)

2010-10-07 Thread Ralf Hildebrandt
Since I have these performance problems after migration to 2.0.5 I'm
publishing my config for review. Can anybody spot any obvious signs of
trouble?

# 2.0.5: /usr/local/etc/dovecot.conf
# OS: Linux 2.6.32-24-generic-pae i686 Debian squeeze/sid 

auth_debug = yes
auth_debug_passwords = yes
auth_mechanisms = plain login
disable_plaintext_auth = no
auth_master_user_separator = *

mail_location = maildir:~/Maildir

# wegen webmail!
mail_max_userip_connections = 1024

managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope encoded-character 
vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy 
include variables body enotify environment mailbox date

# Namespace für courier-compatibilitaet
namespace {
  inbox = yes
  location = 
  prefix = INBOX.
  separator = .
  type = private
}

# fuer user*masteruser logins
passdb {
  args = /usr/dovecot-2/etc/dovecot/dovecot.masteruser
  driver = passwd-file
  master = yes
  pass = yes
}

# Authorisierung via PAM, /etc/pam.d/dovecot
auth_cache_size = 64 M
passdb {
  args = cache_key=%u
  driver = pam
}

# User via passwd
userdb {
  driver = passwd
}

# plugin Konfiguration
plugin {

# mailboxen anlegen und subscriben
  autocreate = Trash
  autocreate2 = spam
  autocreate3 = Sent
  autocreate4 = Drafts
  autosubscribe = Trash
  autosubscribe2 = spam
  autosubscribe3 = Sent
  autosubscribe4 = Drafts
  
# FullTextSearch  
  fts = squat

# Quota
  quota = maildir
  quota_rule = INBOX.Trash:storage=+2048M
  quota_warning  = storage=99%% quota-warning 99 %u
  quota_warning2 = storage=95%% quota-warning 95 %u
  quota_warning3 = storage=90%% quota-warning 90 %u
  quota_warning4 = storage=85%% quota-warning 85 %u

# Sieve
  sieve = ~/.dovecot.sieve
  sieve_dir = ~/sieve
  
# Trash (wenn Mailbox voll, dann Trash und spam leeren)  
  trash = /usr/dovecot-2/etc/dovecot/dovecot-trash.conf
}

# Wir sprechen alles
protocols = imap sieve pop3

# unix domain socket fuer Postfix
service auth {
  unix_listener /var/spool/postfix/private/auth {
group = postfix
mode = 0660
user = postfix
  }
  user = root
}

# imap-login Prozess
# high performance mode
service imap-login {
  service_count = 0
}

# der eigentliche IMAPD
service imap {
  drop_priv_before_exec = yes
  process_limit = 2048
}

# managesieve-login, wird nur genutzt von webmail aus
service managesieve-login {
  service_count = 0
  inet_listener sieve_deprecated {
port = 2000
  }
}

# der eigentliche managesieve
service managesieve {
  drop_priv_before_exec = yes
  process_limit = 128
}

# pop3-login Prozess
# high performance mode
service pop3-login {
  service_count = 0
  # kein pop3, nur pop3s!
  inet_listener pop3 {
port = 0
  }
}

# der eigentliche pop3
service pop3 {
  drop_priv_before_exec = yes
  process_limit = 512
}

# die ganzen SSL Zertifikate
ssl_ca = /etc/ssl/certs/ca-certificates.crt
ssl_cert = /etc/ssl/certs/cert-188235905-postamt.charite.de-g02.pem
ssl_key = /etc/ssl/private/postamt.key

# schoene Ausgabe in ps auxwww
verbose_proctitle = yes
version_ignore = yes

mail_fsync = never
maildir_very_dirty_syncs = yes

# globale settings, die anderen werden ja nach Protokoll individuell ergaenzt!
mail_plugins = notify mail_log

# imap kann am meisten
protocol imap {
  mail_plugins = $mail_plugins quota imap_quota trash fts fts_squat autocreate
}

# pop3 hat workarounds
protocol pop3 {
  pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
  pop3_lock_session = yes
  pop3_uidl_format = %v-%u
}

# LDA macht noch zusaetzlich sieve quota trash
protocol lda {
  mail_plugins = $mail_plugins sieve quota trash 
  postmaster_address = postmas...@charite.de
  quota_full_tempfail = yes
  syslog_facility = local4
}

# der schickt die Quota warnmails
service quota-warning {
  executable = script /usr/local/scripts/quota-warning2
  user = root
  unix_listener quota-warning {
mode = 0666
user = vmail
group = users
  }
}

-- 
Ralf Hildebrandt
  Geschäftsbereich IT | Abteilung Netzwerk
  Charité - Universitätsmedizin Berlin
  Campus Benjamin Franklin
  Hindenburgdamm 30 | D-12203 Berlin
  Tel. +49 30 450 570 155 | Fax: +49 30 450 570 962
  ralf.hildebra...@charite.de | http://www.charite.de



Re: [Dovecot] Config review (2.0.5)

2010-10-07 Thread Daniel L. Miller

 On 10/7/2010 8:16 AM, Ralf Hildebrandt wrote:

Since I have these performance problems after migration to 2.0.5 I'm
publishing my config for review. Can anybody spot any obvious signs of
trouble?

snip

# plugin Konfiguration
plugin {

# mailboxen anlegen und subscriben
   autocreate = Trash
   autocreate2 = spam
   autocreate3 = Sent
   autocreate4 = Drafts
   autosubscribe = Trash
   autosubscribe2 = spam
   autosubscribe3 = Sent
   autosubscribe4 = Drafts

# FullTextSearch
   fts = squat


I'm probably talking out of the wrong hole again - but have you tried 
removing squat from your plugin list to see if it makes a difference?

--
Daniel


Re: [Dovecot] Config review (2.0.5)

2010-10-07 Thread Ralf Hildebrandt
* Daniel L. Miller dmil...@amfes.com:

 # plugin Konfiguration
 plugin {
 
 # mailboxen anlegen und subscriben
autocreate = Trash
autocreate2 = spam
autocreate3 = Sent
autocreate4 = Drafts
autosubscribe = Trash
autosubscribe2 = spam
autosubscribe3 = Sent
autosubscribe4 = Drafts
 
 # FullTextSearch
fts = squat
 
 I'm probably talking out of the wrong hole again - but have you tried
 removing squat from your plugin list to see if it makes a difference?

I thought of that as well. I'll try that tonight :)

-- 
Ralf Hildebrandt
  Geschäftsbereich IT | Abteilung Netzwerk
  Charité - Universitätsmedizin Berlin
  Campus Benjamin Franklin
  Hindenburgdamm 30 | D-12203 Berlin
  Tel. +49 30 450 570 155 | Fax: +49 30 450 570 962
  ralf.hildebra...@charite.de | http://www.charite.de