Introduction

When a Windows Server is set up and you are just about to install BizTalk on it, be aware that the server itself is not familiar with the load you're about to put through it. Therefor it is rather important to ensure that you have configured it correctly and that all settings and configuration is done accordingly to best practices when it comes to BizTalk.
 

Unused programs

Usually there are quite a few of unused services on the machine. Ensure that you disable the ones that are not needed, there is no exact list of what needs to be turned off.  There is one in particular, and this is the windows service "Print Spooler", unless you are planning to print from the server, disable this service from starting up. Other programs in your production environment should be uninstalled, like Visual Studio, Office, NotePad++ or any other program that is installed on the machine. You should not log on the BizTalk server itself to maintain BizTalk, therefor programs that will take resources that should be dedicated purely to BizTalk and not tools to aid you.
 

Temp folder

First of all you should move the folders to a separate disk, rather than the C-drive. Ensure that no important files are located in the temp folder (temporary folders).

You can change this by following the steps below (Windows Server 2012):
  1. Open "Control Panel".
  2. Open "System and Security".
  3. Open "System".
  4. On the left side choose "Advanced Settings".
  5. In the window that pops up click "Advanced" on the top pane.
  6. Click the button "Environment Variables".
  7. You will locate User "TEMP" and "TMP" under the option "User variables for user <username>"
  8. Click these values and choose "Edit"
  9. Update the path to another disk
  10. Under "System Variables" find "TEMP" and "TMP"
  11. Click on these values and choose "Edit" and update the path to another disk

Windows Pagefile

BizTalk utilizes the page file extensively, ensure that this is not running on the same disk as the windows drive.

You can change this by following the below steps (Windows Server 2012)

  1. Open "Control Panel".
  2. Open "System and Security".
  3. Open "System".
  4. On the left side choose "Advanced Settings".
  5. In the window that pops up click "Advanced" on the top pane.
  6. Click the button "Settings" located in the "Performance" section.
  7. In the new windows choose "Advanced" from the top pane.
  8. Under the "Virtual Memory" choose "Change...".
  9. Set the pagefile up on another disk then the windows drive.
     

Registry

You also need to update the registry to tell the Windows Server that this is going to be a "hub" and in general a "message box". The settings and its recommended values are mentioned below:

Registry Path String name Value
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager LargeSystemCache dword:00000000
HKLM\\SYSTEM\CurrentControlSet\Control\Session Manager\Executive AdditionalCriticalWorkerThreads dword:00000010
HKLM\\SYSTEM\CurrentControlSet\Control\Session Manager\Executive AdditionalDelayedWorkerThreads dword:00000010
HKLM\SYSTEM\CurrentControlSet\Services\ldap ldapclientintegrity dword:00000000
HKLM\SYSTEM\CurrentControlSet\Control\FileSystem NtfsMftZoneReservation dword:00000003
HKLM\SYSTEM\CurrentControlSet\Control\FileSystem NtfsDisable8dot3NameCreation dword:00000001
HKLM\SYSTEM\CurrentControlSet\Control\FileSystem DontVerifyRandomDrivers dword:00000001
HKLM\SYSTEM\CurrentControlSet\Control\FileSystem NtfsDisableLAstAccessUpdate dword:00000001
HKLM\\SYSTEM\CurrentControlSet\Services\LanmanServer MaxWorkItems dword:00002000
HKLM\\SYSTEM\CurrentControlSet\Services\LanmanServer MaxMpxCt dword:00002000
HKLM\\SYSTEM\CurrentControlSet\Services\LanmanServer MaxCmds dword:00002000
HKLM\\SYSTEM\CurrentControlSet\Services\LanmanServer Size dword:00000003

Download script to update the registry here.
  

BizTalk Configuration file

Ensure that the BizTalk configuration file is clean, and that no passwords are stored in clear text here. If you are using WCF and publishing Web Services, ensure that you update the amount of connections allowed. you should set the value of "maxconnection" to 12 * the amount of cores you have on the machine. By adding address * the settings, go for all addresses, by adding a specific address you are setting the max connection to a specific address.

<configuration>
    <system.net>
        <connectionmanagement>
            <add maxconnection="24" address="www.contoso.com">
                <add maxconnection="48" address="*">
                </add>
            </add>
        </connectionmanagement>
    </system.net>
</configuration>

See Also

Another important place to find an extensive amount of BizTalk related articles is the TechNet Wiki itself. The best entry point is BizTalk Server Resources on the TechNet Wiki.