RE: [exim] Exim Performance / Server Performance

Top Page
Delete this message
Reply to this message
Author: GamCo - Gawie Marais
Date:  
To: 'Brian Candler'
CC: exim-users
Subject: RE: [exim] Exim Performance / Server Performance
Message appended with !! >>




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).

!! >> I have made the change. Not sure at this stage if it will help, but
lets hope for the best...



> 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

!! >> I can see the queue runs every 30 minutes now...

> 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 limit mailboxes to 10 megs. Hence that said, no mailbox should be
larger that 10 megs as we reject mails coming in if it exceeds 10 megs.



> >> 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?

!! >> we get error messages sent to the console when no connection can be
made to the MySQL database.



> >> 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.



!! >> is it a major job and whats the implications changing from a mailbox
to maildir delivery method -- perhaps I can read up on it somewhere ??



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.

!! >> thanx for that tip !!

HTH,

Brian.

--
## List details at http://www.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://www.exim.org/eximwiki/