I have had the same problem for a couple of days, since last Monday evening.
I noticed that the qmstpd daemon was not fast enough to cope with all the connection requests it received. Incrementing the upper connection limit was pointless, whatever the value it was reached in minutes.
My SME Server runs on an HP DL 380 G4 bi-processor machine with 4 GB RAM, and the "top" command showed very low load average, low memory and no swapfile usage.
After many tests and tentatives, last Wednesday I installed smeserver-qpsmtpd-1.2.1-47.el4.sme from the smeupdates-testing repository, and the problem was solved: now the mail service is blazingly fast.
The mail services are configured as follows:
# config show qpsmtpd
qpsmtpd=service
Bcc=disabled
BccMode=cc
BccUser=maillog
DNSBL=enabled
LogLevel=8
MaxScannerSize=25000000
RBLList=zen.spamhaus.org:whois.rfc-ignorant.org:dnsbl.njabl.org
RHSBL=disabled
RequireResolvableFromHost=yes
SBLList=dsn.rfc-ignorant.org
access=public
status=enabled
# config show qmail
qmail=service
MaxMessageSize=15000000
status=enabled
If you have some comments about my current configuration, please feel free to express them.
Just a side note: I tried (erroneously, I know) to increase the concurrent qmail connections from 10 internal and 20 external to 20 internal and 200 external, using the qmail service configuration parameters ConcurrencyLocal and ConcurrencyRemote.
ConcurrencyLocal is not managed through the configuration file, the value 10 is hardcoded in the template file; so I changed its content.
ConcurrencyRemote is managed through the configuration file, instead.
After having signaled the email-update event, I checked the /var/qmail/control/concurrencylocal and /var/qmail/control/concurrencyremote values, and verified that both the values were the same I set above.
But looking at the qmail log it seems that these values are ignored: it keeps on saying
... status: local 1/10 remote 0/20
... status: local 2/10 remote 0/20
... status: local 1/10 remote 0/20
... status: local 2/10 remote 0/20
... status: local 1/10 remote 0/20
... status: local 2/10 remote 0/20
... status: local 1/10 remote 0/20
... status: local 0/10 remote 0/20
and so on, showing a connection limit of 10 and 20 whichever the values I set as said before.
Am I missing something, or did I hit a [known] bug?