At 03:35 PM 1/31/99 -0500, David Villeger wrote:
>Hello.
>
>I'd love some suggestions, advice, comments,...
>
>First:
>
>- I am not a spammer. The email I send are _not_ unsolicited.
>- I do send several millions emails a month. I want to send 20,000 unique
>emails per hour per machine. Each email is unique but program generated
>(e.g. personalized news update).
>- I use Solaris 2.6 on mono processor PCI-based Sun machines, 128 megs of
>ram, lots of disk space, as much network bandwidth as I need.
>
>My questions:
>
>- event though the concurrencyremote is set to 120, the number of
>qmail-remote never gets higher than 40. If some other program runs at the
>same time (like a bouncer handler, or a mail generator), the number of
>qmail-remote drops to 5! What should I increase to bump it up? (memory,
>cpu,...)?
That it never gets higher than 40 is one thing, that it drops precipitously
low is another.
The former may be because of process limits inherited by qmail-rspawn at
startup. If so (and your mail logs will give a hint) then put this in your
qmail start-up script you may want to put:
ulimit -n 256
>
>- The todo and intd directories get very big under high load. On one
>machine, I've seen it reach 1.5 megs (just the directory file, not the
>content of the directory). How does this impact performance?
A lot. And deterimentally so. I'm guessing that your inject rate is
exceeding the ability of qmail-send to process the todo queue.
If these todo files are all your outbounds, I suggest that you put a delay
in your program after each 'n' injects. Say, inject 40 mails, then wait 10
seconds.
Having said that, at 20K per hour I'd be having a close look at your system
performance figures to see how your resources are going. How do you
interpret the results from iostat and vmstat?
>- What is the cost of forking a qmail-inject for each email sent? What
>would I gain by opening a qmqp connection to another machine and
>continuously feed it with emails to send? Is this possible, or easy?
You won't gain anything if the target qmqpd is a sole machine with the same
performance as qmqpc/qmqpd simple creates a network pipe to a remote
qmail-queue. If you spread this across multiple systems, well, that's a
different story.
>- What would I gain (in terms of performance) by getting rid of fsync in
>qmail-send? What would I lose in practice (not in theory)? These machines
>practically never crash.
>
>- Is there any code modification that would significantly speed up qmail,
>even at the cost of less reliability (to a reasonable extent)?
I'd be looking to see where your system is bottle-necked before assuming too
much about which strategies will make it run better.
>Well, that's all I can think of for now. Thanks for reading!
It'll be interesting to hear what you make of your performance analysis of
those systems.
Regards.