Santronics Software, Inc.,
wcPOP3 Performance Tuning

Introduction:

The Wildcat! POP3 (wcPOP3) Server is by the Wildcat! mail system to provide users with an email pickup service using the POP3 internet standard.   Users use special mail user access  (MUA) readers like Outlook, Eudora, Thunderbird, etc, to connect to wcPOP3, login with the user account, which will then scan for new direct personal mail and provide a list to the MUA for it to decide what to pick up.  The steps can be summarized as follows:

  1. MUA connects to WCPOP3 on port 110.
  2. MUA authenticates with his Wildcat! username and password.
  3. WCPOP3 scans for the user's  direct private messages in mail conference 0 which are not marked received.
  4. WCPOP3 will collect the mail and stored it in a temporary wcWork\Node# folder.
  5. MUA will request the message numbers list and determine which message numbers in the list presented by WCPOP3 to determines which ones new and has not been already downloaded by the MUA
  6. MUA will request to download all the new messages, if any.
  7. MUA MAY request to delete old messages or the new ones just downloaded depending on the user's Leave Mail On Server option.
  8. MUA issues the QUIT command
  9. WCPOP3 moves into UPDATE MODE to mark mail received, delete or nothing depending on sysop's policy for marking messages when user's download messages.

Because of the unique behavior for POP3 to allow users the option to download new message, but also keep downloaded mail on the wildcat! server without marking it received, there is high level of redundancy with repeated scanning of mail already downloaded by the user.  

Hence in step 3 and 4, the wcPOP3 is performing repeated work each time the user connects to the POP3 server.  In addition, as users continue to use email to send larger messages with video, images, html, pdf, etc, there are performance issues which need to be taken into account.


Performance Tuning

Starting with wcPOP3 v6.3.452.7,  the speed improvements will be realized for users when the mail is not mark received and they remain on the server until the conference 0 mail policies are applied during the Wildcat! Server mail packing process.

The following registry options are available under the following key:

HKLM\SSI\Software\Wildcat\wcPOP3

If the wcPOP3 key is not available, you must create it first.  When the key or the data name is not defined, then the default built-in values will be used.:

Registry Data Name Data Type Default Value Comment
AlternativeTempPath REGSTR .\wcwork\Node#  
CopyReadBytesKb DWORD 16 16 kilobytes
CopySliceBytesKb DWORD 5000 5 megabytes
CopySliceTimeMs DWORD 15 15 milliseconds
AlternativeTempPath

When the POP3 user connects to pickup mail, wcPOP3 will scan and collect all of the user's direct mail which is not mail received and store it in a temporary work folder on the same machine where wcOnline is running with a default folder name ".\wcwork\node#" where # is the session's node number. This folder is relative to the directory where wcOnline.exe is located.  Lets call this the POP3 cache folder.

If the location of the MSG\MSG0.DAT database file is on the same drive as the POP3 cache folder, then the drive will be working harder because its HEAD will be jumping around a lot.

To provide less strain on the drive and to speed up the scanning, you have the option to define where the POP3 cache folder will be located using the AlternativeTempPath registry key. The purpose is to define a location that is not the same drive where MSG\ folder is located.

For example, Lets suppose you have PC with two physical drives, with logical drive letters C: and D: and you have Wildcat! installed on drive C:.  By setting the registry:

AlternativeTempPath = D:/TEMP

Then WCPOP3 will use this alternative path to create the POP3 cache folder.  In this case, it will temporary create and use:

D:\TEMP\WCWORK\NODE#

as the POP3 cache folder.

For operations who have many users with frequent POP3 polling, we recommend an AlternativeTempPath be defined.

CopyReadBytesKb

When mail is scanned and copied from the server to the POP3 cache folder, it is copied using the size defined by CopyReadBytesKb.   The default is 16 for 16K.    Since most emails is shorter than 16K,  this is generally a good number.  However, depend on the user load and the sizes of the most emails,  there might be a consideration to adjust the read bytes size.  It can't be too high and it can't be too low.   You should never need to ever change this, but exploring with values of 32 and 64 is reasonable.

CopySliceBytesKb/CopySliceTimeMS

In order to proper some cooperative operation between wcPOP3 and the Wildcat! database system, wcPOP3 will throttle the read process to lessen the CPU pressure on the system.  This is done by default every 500K with a 15ms sleep.  It will only be used when the email is larger than 500k and when there are more than one user connected at the same time.