SMTP send and receive threads explained

  • 7001902
  • 17-Nov-2008
  • 26-Apr-2012

Environment

Novell GroupWise 6.5
Novell GroupWise 7
Novell GroupWise 8

Situation

Mail backs up in the GWIA\SEND queue.
GWIA returns 450 Host Down errors

Resolution

Customers may wish to deal with performance issues in their GWIA by increasing SEND and RECEIVE threads. It's important to understand how the GWIA uses these threads, to determine whether an increase is warranted and how much of an increase makes sense.

SEND threads refer to how many simultaneous outgoing connections can be used. So these only need bumped these if there is a lot of mail piling up all the time in GWIA\SEND. A little pileup is ok, if it's a constant amount and relatively small. Too few SEND threads will mean a big pileup and message send delay.

RECEIVED threads refer to how many simultaneous other mail servers can "ring" the receiving GWIA on the virtual internet "telephone". Too few means some of them will get 450 host downs and retry later, leading to some delay.

The SMTP statistics (available either in the GWIA console or GWIA HTTP console) can help because they show the maximum in-use send and received as well as the current in-use threads. Keep in mind, unusual spikes (beginning and end of day, beginning and end of week) are quite likely in many organizations. so if the maximum is 20, the average might really be 12, and resources are not being wasting most of the time by allocating 20 threads)

As a generalization RECEIVED threads are more important than SEND, since a "busy" signal is usually less acceptable to customers than a small delay. 
 
General Advice:

Add send and receive threads as needed, in small increments (say 5 at a time). Do not increase threads in large increments, without careful consideration.

Why adding too many threads can slow down the system:

First of all, the more threads, the more context switching - which is a fancy way of saying that the cpu is spending more time just jumping from thread to thread, not doing anything.

Also too many send/receive threads can (and will) at peak times even hurt. To understand why, look at it like downloads from the web. There is a limited bandwidth. It doesn't help anything when the need to download 50 files from the internet to do it all simultaneously, vs only 2 at a time in a serial fashion.In fact it is even very likely that doing only a handful downloads simultaneously is actually faster than trying to do them all at ones and overload your connection, leading to retrys, aborts and completely saturated link.

So in short, add a few at a time, and watch the SMTP statistics.

As a broad generalization, very few GWIAs need more than 20 send and 20 receive threads, unless you are running a very high volume system or experiencing a spam storm attack.

Check the SMTP stats regularly for several months, and note usage of SMTP threads at peak hours, to get a good baseline. This is good practice anyway since it will

- optimize the GWIA settings
- be on the lookout for unusual network activity
- be able to cost-justify increased bandwidth