Exchange Server 2003 Performance, Tuning & Tweaking Resources

“How to” RESOURCES: 



Compatibility for IMAP4 & POP3 Users In extreme cases, very large temporary files may be created on the Exchange server when this behavior occurs. In some cases, without proper planning or available server resources, the conversion from MIME to MAPI may also cause system latencies. This may cause IMAP4 / POP3 clients to experience long delays during logon because of the requirement for exact message size calculation. You can improve performance by adding the Compatibility registry value to the Exchange server(s) containing mailboxes accessed by IMAP4 / POP3 clients.


DB Data Buffers per Object The DB data buffers per object registry value is the number of 4-KB database server buffers that are configured for each database object. More buffers require more memory, but make it less likely for a database object to be rolled out to disk because of a lack of buffer space. One recommended reason for changing this value is in the case when a Message Transfer Agent (MTA) communicates with multiple Exchange Server 5.5 computers either within or between sites. You should also tune this value if another messaging connector is homed on this server. In these scenarios, it is recommended that you change the value data for DB data buffers per object to 6. If this MTA does not communicate with multiple Exchange 5.5 computers within or between sites, it is recommended that the default setting of 3 be used.


Dispatcher Threads –  One recommended reason manually configuring the Dispatcher threads registry value is when an MTA communicates with more than five Exchange Server 5.5 computers either within a site, or between sites, or if distribution lists are heavily used. If this applies to your organization, you should set Dispatcher threads to 3. If this does not apply, you should set Dispatcher threads to 1.


Gateway Out ThreadsThe Gateway Out Threads registry value defines the number of threads available for retrieving messages from the information store process (Store.exe) to the MTA process (Emsmta.exe). When messages are received in the MTA from an Exchange 5.5 server, they move from the MTA to the information store process, and then to the advanced queuing engine. Administrators may notice slight performance degradation in Microsoft Exchange 2000 Server and Microsoft Exchange Server 2003 in comparison to Microsoft Exchange Server 5.5, particularly when the Microsoft Exchange Message Transfer Agent (MTA) Stacks service is used to send and receive mail. In environments in which many messages reach the MTA at the same time, it is recommended that you increase the number of processing threads between the Store.exe process and MTA from 1 to 3 for all private databases on the server.


HeapDeCommitFreeBlockThreshold –  On systems with 1 GB or more of physical memory installed, performance is optimized by controlling the size of the chunks of de-committed memory. The HeapDecommitFreeBlockThreshold registry key provides control of how the memory is handled as it is freed. When adding this value to the registry, you must configure it with a hex value of 0x00040000 (262144 in decimal).


Kernel ThreadsThe Kernel threads registry value is the number of platform threads that handle the Presentation and Session level of the Open Systems Interconnection (OSI) stack. These threads are at the heart of MTA message processing. If this MTA communicates with many other Exchange 5.5 servers using RPC over slow or highly latent network connections, it is recommended that you use a value listed in the following link.


MaxMessageObjectsEach message in an SMTP queue uses at least 4 KB of memory; therefore, you can experience low memory if the queue grows very large. Lowering this setting reduces the maximum number of messages that can reside in the queue, therefore decreasing the maximum memory footprint for SMTP. When that number of messages is in queue on the server, additional inbound messages that come in through the SMTP protocol are refused with a 4xx (temporary) error.


Max RPC Calls OutstandingThe default value for Max RPC Calls Outstanding is 50 (decimal). In mixed-vintage scenarios where Exchange 2000 Server and/or Exchange Server 2003 co-exists with Exchange Server 5.5 computers and you have increased the number of Gateway In/Out threads in the Store.exe process, it is recommended that you increase the value data to 0x80 (hex) or 128 (decimal).


MDB UsersThe MDB users registry value is the maximum number of MDB users who are supported by the MTA. All Exchange Server users are MDB users by default unless they are explicitly set otherwise. MDB users defines the number of distinguished names (DNs) to cache from the directory. If your organization contains more than 1500 users, you should change the value to one-third the size of the Global Address List, but only to a maximum of 5000.


MinUserDCBy default, DSAccess includes the PDC emulator computer in its list of available and usable domain controllers. If non-Exchange programs are making heavy use of the PDC emulator, using the PDC emulator by DSAccess could cause performance problems on the PDC emulator computer, as well as on the Exchange server and the non-Exchange program computer.


RTS ThreadsThe RTS threads registry value is the number of platform threads that handle the Reliable Transfer Service Element (RTSE) level of the Open Systems Interconnection (OSI) stack. RTS threads are responsible for putting data in the queues. You should adjust the RTS threads registry value from the default of 1 to a value of 3 if this MTA communicates with multiple Exchange Server 5.5 computers either within a site or between sites.


SuppressStateChangesThis feature works well in small to medium-sized organizations. However, in large multi-site environments, mass network fluctuation can cause link update floods for the minor version. To be truly effective, link state data must be broadcast to all the servers in the organization. Additionally, when state changes, the whole link state table is rebroadcast, which can cause a significant amount of data to be transmitted over the network. In these scenarios, it may be useful to suppress minor link state changes. The SuppressStateChanges registry value is a custom configuration setting used to suppress minor link state changes. When SuppressStateChanges is set to a value of 1 (or any value greater than 0), all link state traffic generated by a connector state change on this Exchange Server computer are suppressed.


TCP/IP Control BlocksThe TCP/IP control blocks registry value is the maximum number of concurrent RFC1006 (TCP/IP) connections that are supported. This setting controls the number of buffers available for X.400 connections. If this message transfer agent (MTA) hosts more than one X.400 connector, the TCP/IP control blocks registry value should be adjusted. There should be 10 control blocks for each X.400 connector being hosted, and one control block to service incoming connections. Therefore, for a system with three X.400 connections, the appropriate value would be 33.







Big thanks to Microsoft’s Kevin Remde

About blakehandler

BLAKE was a Microsoft MVP and award winning programmer with over 20+ years experience providing complete Windows and networking support for small to medium sized businesses. BLAKE is also Jazz Musician and Instructor for residential clients on the Los Angeles West Side.
This entry was posted in Links to Know Where. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s