Warning If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.
There are two registry values that allow you to control the "SMTP % of threads" and "Additional threads per processor" values.
To control the percentage of threads used by SMTP, locate the following registry key:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\SMTPSVC\Queuing
Parameter: MaxPercentPoolThreads (REG_DWORD)
Description: Maximum Percentage of ATQ Threads that each queue will request
Default setting: Not present, but will default to 0x5A (90)
When to change: High SMTP activity is causing the POP and IMAP instances to fail in Cluster Administrator.
Recommended setting: Use the following formula to determine the settings:
MaxPercentPoolThreads = 90/(2*Number Of Virtual Server Instances)
For example: Assuming a cluster with two virtual server instances, the formula would be: 90/(2*2) = 22. If you get a decimal point in the calculation, round down to the next integer.
To control the additional threads per processor, locate the following registry key:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\SMTPSVC\Queuing
Parameter: AdditionalPoolThreadsPerProc (REG_DWORD)
Description: Additional pool per processor threads when SMTP is started
Default setting: Not present, but will default to 0x6 (6)
When to change: High SMTP activity is causing the POP and IMAP instances to fail in Cluster Administrator. Change in conjunction with the
MaxPercentPoolThreads subkey.
Recommended setting: Use the following formula to determine the settings:
AdditionalPoolThreadsPerProc = ((9/(MaxPercentPoolThreads/100))�4)/2
Note The formula expresses the
MaxPercentPoolThreads value as a percentage. In the example, (
MaxPercentPoolThreads/100) equals 0.22.
For example: Assuming a cluster with two virtual server instances, the formula would be: ((9/(0.22))-4)/2 = (41-4)/2 = 18. If you get a number greater than 200, you need to assign that number to the following registry value:
HKEY_LOCAL_MACHINE\ System\CurrentControlSet\Services\InetInfo\Parameters\PoolThreadLimit