Re: [exim] Exim Performance / Server Performance

Top Page
Delete this message
Reply to this message
Author: Brian Candler
Date:  
To: GamCo - Gawie Marais
CC: exim-users
Subject: Re: [exim] Exim Performance / Server Performance
On Thu, Apr 28, 2005 at 10:25:39AM +0200, GamCo - Gawie Marais wrote:
> You may find options like smtp_accept_queue_per_connection
> helpful here. Or you might find some other reason why messages are being
> deferred, for example mysql rejecting queries at routing time.
>
> >> I have that option enable and set to 100 - would that setting be adequate
> ??


Depends whether anyone sends you more than 100 messages in a single SMTP
connection. Personally I set it to 0 (unlimited).

> Make sure you have a queue runner daemon: e.g.
>    exim -bd -q30m
>             ^^^^^

>
> >> I have made sure that I have that option included in the /etc/init.d/exim
> file. How would I know that the queue runner is actually running ? When I do
> a ps -aux ,, all I see is exim processes in this form :-
> exim     24319  0.0  0.1  7124 2280 ?        S    09:27   0:00 [exim]
> root     24324  0.0  0.0  7052 1848 ?        S    09:27   0:00 [exim]

>
> I don't see a specific one [exim -db -q30m] and I'm not sure if I should
> actually see one like that... ??


Hmm, ps isn't always able to show that for daemons which have detached
themselves. But you can look in your mail logs for messages of the form

2004-11-07 14:47:06 Start queue run: pid=89317
2004-11-07 14:47:06 End queue run: pid=89317

> avg-cpu:  %user   %nice    %sys   %idle
>           15.24    0.00    4.25   80.51

>
> Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
> dev8-0           73.47       497.85       171.52 3772606540 1299741856


73 disk I/O transactions per second is pretty busy.

Your eximstats show no more than 5000 deliveries per hour, or less than
2 deliveries per second. I think a single disk should cope with this easily.
That's why I think that maybe your pop3 server needs investigating (or any
other processes on your system which might be causing this workload).

> >> as far as I know, no one has the setting enabled to leave messages on the
> server. How would I know if someone has that option enabled ??


Have a look at the sizes of their mbox files with ls -l. Also, perhaps
qpopper can tell you in its logs whether clients are issuing the DELE
command or not (I'm not familiar with qpopper)

> >> We are running MySQL on a total separate server. Although the server is
> taking some train if I look at the loads, none of mail is put on the queue
> because Exim can't access the MySQL database.


How do you know?

> >> POP connections are a major problem for us at the moment as most of our
> users set their mail clients to check for mail every 1, 2, 5 or 10 minutes
> (or whatever they like) which is perhaps why some of the mail gets queued
> because people are constantly checking mail that puts a lock on the mail
> boxes.... The question is.. How do we limit that ??


6000 users checking once per minute would be a huge load (100 connections
per second), locking or no.

You can try to educate your users, which means telling them how to behave,
and then disabling their service if they don't comply.

Or go for something more efficient. For example, you can get Exim to deliver
in Maildir format, and then use courier-imap as the POP3 server. That's a
major redesign in your system though.

OK, I have another suggestion. You say that you have incoming local
deliveries stuck in the queue during the day. Well, exim -bp should show you
them sitting in the queue, and give you the message IDs. You can then grep
for these in the exim logs and see what is happening with them.

Or use exigrep:

    exigrep -t 600 . /var/spool/exim/log/mainlog


should show you all messages which were on the queue for more than 600
seconds.

HTH,

Brian.