Hi,
we are using SA 2.63 on Solaris 7 for sparc, with perl 5.8.0 and exim 4.04 This
is with spamc/spamd.
This is for our internal staff mail server, which receives a lot of spam.
So far SA is only scanning mail for a handful of users, but we have found the
load placed on the server to be quite high.
We have tried to get around this by using spamd -m 10 to limit the max number
of children to 10.
My understanding of this is that once this limit is reached, the remaining
mails are queued until a child process is freed up.
The number of queued mails depends on the (OS specific) value of SOMAXCONN
On Solaris, this value appears to be '5'(?!), as defined in
/usr/include/sys/socket.h
# perl -MSocket -e'print SOMAXCONN'
5#
Whereas on Redhat Linux 9, it is 128:
[EMAIL PROTECTED] owen]$ perl -MSocket -e'print SOMAXCONN'
128
Obviously Solaris is quite capable of handling more open sockets than 5, so my
question is does spamd actually use the value returned by perl? Should it not
use some other variable?
It would appear that this value is actually being used, because once the
max-children value is reached, users who are being spam-scanned start to
generate bounces of the form:
This message was created automatically by mail delivery software (Exim).
A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:
[EMAIL PROTECTED]
local delivery failed
The following text was generated during the delivery attempt:
------ [EMAIL PROTECTED] ------
An error was detected while processing a file of BSMTP input.
The error message was:
421 SMTP incoming data timeout - message abandoned
The SMTP transaction started in line 0.
The error was detected in line 3.
0 previous messages were successfully processed.
The rest of the batch was abandoned.
421 SMTP incoming data timeout - message abandoned
Transaction started in line 0
Error detected in line 3
Perhaps it would be worth implementing an option to increase this in the next
release? Or do you think that if one was to increase the value in
/usr/include/sys/socket.h and re-compile perl, the problem would go away?
Thanks,
Owen
--
Via Net.Works UK Ltd
Local Touch Global Reach
Owen McShane Systems Administrator
http://www.vianetworks.co.uk Tel +44 (0)1925 484444