Matt Kettler wrote:
> Second, converting to spamc/spamd would be SLOWER for a MimeDefang
> setup, not faster.
eh... depends on what else MIMEDefang is doing...
> MimeDefang calls the SpamAssassin perl API's directly, a method that
> is faster than using spamc/spamd, but is only usable by tools written
> in perl.
>
> spamc/spamd is faster than calling the "spamassassin" command-line
> script, but not faster than directly loading the API's.
SpamAssassin memory is frequently a bottleneck.
To use a military analogy:
MIMEDefang threads are like infantry. SpamAssassin objects are like tanks.
I'm sure every infantryman would love to drive around their own tank. But that
would use a *lot* of gas. The infantryman would say "but this is faster." But
tell that to the supply sergeant who's trying to supply the division :)
Another option is to have the tanks nearby, in easy call range of the infantry
squad. Much of the time the infantry will be able to handle the enemy
themselves. When they need a tank, they can radio for one - they'll have to
wait a bit, but the benefit is that you can have a LOT more infantry this way
and still not run out of gas.
The MIMEDefang analogy of this is as follows:
A typical MIMEDefang setup might have ten MIMEDefang threads, each with its own
SpamAssassin object.
Suppose you have a lot of custom-/third-party-code to deal with various kinds
of bogeys. You might reject email that fails a clamav scan, for example. Or
you might reject email that has a From: header of a nonexistent address at your
domain (all of which can be done in MIMEDefang.) In this sense the MIMEDefang
thread is capable of eliminating the email itself, without an expensive
SpamAssassin call. Of ten SpamAssassin objects, maybe seven might be active at
any given time.
Having a Perl implementation of spamc would allow this server to have seven
spamd threads running. In the space saved by the "extra" three idle
SpamAssassin objects, you could run as many as a hundred MIMEDefang threads.
This allows much more throughput, at the cost of any particular individual
thread running a little slower.
Matthew.van.Eerde (at) hbinc.com 805.964.4554 x902
Hispanic Business Inc./HireDiversity.com Software Engineer
perl -e"map{y/a-z/l-za-k/;print}shift" "Jjhi pcdiwtg Ptga wprztg,"