RE: [exim] On queue run prefer small messages first, how?

Top Page
Delete this message
Reply to this message
Author: jori.hamalainen
Date:  
To: exim-users
Subject: RE: [exim] On queue run prefer small messages first, how?
> You might be able to hack up something external like this:
>
> 1. Use a MACRO in your configuration to specify the maximum size:
>
> MAXSIZE=3K
>
> 2. Add a router to defer for any message greater than MAXSIZE.
>
> 3. Start queue runners manually, using -D to change MAXSIZE. You will
> have to be root to do this. The sequence
>
> exim -q
> exim -q -DMAXSIZE=10M
>
> should then achieve approximately what you want. It can only be
> approximate - after all, new messages <3k can arrive at any time, and
> such an arrival won't stop the second queue runner.
>
> Untested, just an idea that I had.


Thanks for this idea, it sounds reasonable. And it led me to another conclusion that instead of exim -q what if I run exim -M for messages, and make a tool selecting messages for exim -M with my priorities.

For selecting small messages
find /var/spool/exim/input/ -size -6 -name \*-D -print | sed -e 's@^.*/@@' -e 's@-D@@'

And run exim -M with xargs..

> Unless your large messages are really huge, however, I don't really see
> the point of this. 3K is, after all, just 2 packets.


My need is that ACK messages should go through fast, to make sure that any retransmit of original message doesn't happen. Also ACK's going fast helps source of message to close charging transaction faster.

Time to time there might be 100k messages on queue, because slow unbalanced network links and fairly large message sizes (up to 700k). So some systems might retransmit the same message causing even more queueing.