Accessibility

TechNote

Windows platform-specific performance settings (ColdFusion)

Below are some general recommendations for tuning several common configurations. As these are general recommendations, it is preferable that you test and tune the settings below specifically for your application and environment. Consider these settings as a baseline starting point. Never apply new settings to a production environment before testing a staging version thoroughly with the new settings.

Windows 2000 Server

General OS Settings

  1. Disable performance boost for foreground applications.
    1. Open the Control Panel.
    2. Double-click on the System icon, and select the Advanced tab.
    3. Click the Settings button in the Performance section.
    4. If it is not already checked, check the radio button with the label, "Background Services."
  2. Optimize TCP/IP Settings using the Windows Registry
    1. Open the Windows registry editor using by clicking Start and then choosing Run.
    2. In the Run dialogue box, type "regedit" and click the "OK" button to open the Windows Registry Editor.
    3. Navigate to the following branch:
      HKEY_LOCAL_MACHINE\System\CurrentControlSet\ Services\TCPIP\Parameters
    4. Set the following DWORD values, adding them if they do not exist:
      • DWORD MaxUserPort and set to 65534
      • DWORD TcpWindowSize and set to 65535
      • DWORD MaxFreeTcbs and set to 72000
      • DWORD MaxHashTableSize and set to 65536
      • DWORD TcpTimedWaitDelay and set to 60
  3. Set receive buffers for the Network Interface Card (NIC) to maximum.
  4. Dropped packets on the receiving end cause TCP (Transmission Control Protocol) to retransmit.

    This minimizes the number of dropped packets on the receiving end, thus increasing performance. See the documentation for your NIC for details. This parameter can often be set using the properties of the NIC under the Network Control Panel. You can also set the NIC speed to 100 MBit (default is usually "auto").
  5. Disable any services not absolutely required for machine operation.
    For example, this may include unused services such as SMTP, FTP, MSDTC, Browser services, and Spooler. Go to the Control Panel in Windows and click Services. You can disable services there. It is common for highly tuned and secure sites to reduce the number of required services to under 20 services.
  6. Remove the Page Files, defragment the drives, and recreate the Page Files to ensure contiguous disk space is used for virtual memory.
  7. For multiple NIC machines, used the Microsoft Affinity tool to bind one NIC to each CPU.
    Microsoft provides the tool which you may download at ftp.microsoft.com/bussys/winnt/winnt-public/tools/affinity/

Microsoft Internet Information Server 5 Settings

  1. Ensure all unused IIS file mappings are removed.
    1. Using the Internet Services Manager, right-click on the Default Web Site and/or any other web site(s) where your content exists and select Properties.
    2. Select the Home Directory property sheet/
    3. Click the Configuration button under the Application Settings section.
    4. Remove all unused mappings, leaving at least one mapping in place (the server requires at least one mapping). Leave the ".cfm" extension in place if no other mappings are being used.
  2. Minimize IIS logging and/or use striped partition.

    It is desirable to log only data required for weblog trend analysis. Log to a striped partition with a controller that allows write-back caching, especially if you see heavy use on the log disk (this can also be beneficial).
    1. Using the Internet Services Manager, right-click on the Default web site and/or any other web site(s) where your content exists and select Properties.
    2. Select the Web Site tag.
    3. Click the Properties button under the logging section. The path should be mapped to a striped partition.
  3. Optimize IIS Settings in the Windows Registry.
    1. Open the Windows registry editor using by clicking Start and then choosing Run.
    2. In the Run dialogue box, type "regedit" and click the "OK" button to open the Windows Registry Editor.
    3. Navigate to the following branch:
      HKEY_LOCAL_MACHINE\System\CurrentControlSet\ Services\InetInfo\Parameters
    4. Set the following DWORD values, adding them if they do not exist:
      • DWORD MaxPoolThreads set to 30
      • DWORD ListenBackLog set to 250
      • DWORD AcceptExOutstanding set to 64
      • DWORD MinFileKBSec set to 100
      • DWORD ObjectCacheTTL set to 0xFFFFFFFF (a special hexidecimal value of 0xFFFFFFFF means no throttling should be done)
      • DWORD OpenFileInCache set to 0x5000
      • DWORD MemoryCacheSize set to 4194304
  4. For very busy sites, set ServerListenBacklog and MaxEndPointConnections.

    Note that these commands can dramatically increase the memory footprint of a very busy IIS 4.0 server to approximately 90+MB, but will allow the web server to service a very busy web site without dropping or refusing client connections. To set, run the following commands:
    1. cscript c:\winnt\system32\inetsrv\adminsamples\adsutil.vbs SET w3svc/1/ServerListenBacklog 10000
    2. cscript c:\winnt\system32\inetsrv\adminsamples\adsutil.vbs SET w3svc/1/MaxEndPointConnections 10000
  5. Increase IIS 5.0 LogFileBatchSize to cut down on disk I/O.
    1. Open the Windows registry editor using by clicking Start and then choosing Run.
    2. In the Run dialogue box, type "regedit" and click the "OK" button to open the Windows Registry Editor.
    3. Navigate to the following branch:
      HKEY_LOCAL_MACHINE\System\CurrentControlSet\ Services\InetInfo\Parameters
    4. Set the following DWORD values, adding them if they do not exist:

      DWORD LogFileBatchSize set to 0x00040000

      This specifies the batch size for writing log files. The server caches the last LogFileBatchSize bytes of data in memory buffers before it dumps the current buffer and moves onto the next buffer. Such batch processing reduces the amount of disk traffic created by log files. However, if you are interested in getting the current-up-to-date log records flushed to disk, you can reduce the batch size. The value range for this setting is 0 - 0xFFFFFFFF, and the default is 64*1024 (64KB) or 0x00010000. Consider increasing this value to 256*1024 (256KB) or 0x00040000.
  6. Tune IIS settings using the Internet Services Manager
    1. Set IIS Performance set to handle over 100,000 hits per day.
    2. Remove all IIS mappings except .CFM.
    3. Set Logging “ "Next Log Time Period" = "When file size reaches 100 MB".
    4. Remove all unnecessary ISAPI filters.
  7. Modify settings to decrease potential file-swapping problems

    Place the webserver root directory and all swap space on a separate physical disk from the core OS and other system files if at all possible. If not, place on separate partitions on the same disk.
Windows NT 4.0

General OS Settings

  1. Set Windows NT Server to Application Server
    1. On the desktop, right-click Network Neighborhood and select Properties.
    2. On the Services tab, double-click the Server service.
    3. Select Network Applications. The Application Server setting also instructs Windows NT to trim the file cache more aggressively.
  2. Disable performance boost for foreground applications
    1. Open the Control Panel.
    2. Double-click the System icon.
    3. Select the Performance tab.
    4. Move the Application Performance slider to None.
  3. Optimize TCP/IP Settings using the Windows Registry.
    1. Open the Windows registry editor using by clicking Start and then choosing Run.
    2. In the Run dialogue box, type "regedit" and click the "OK" button to open the Windows Registry Editor.
    3. Navigate to the following branch:
      HKEY_LOCAL_MACHINE\System\CurrentControlSet\ Services\TCPIP\Parameters
    4. Set the following DWORD values, adding them if they do not exist:
      • DWORD MaxUserPort and set to 65534
      • DWORD TcpWindowSize and set to 65535
      • DWORD MaxFreeTcbs and set to 72000
      • DWORD MaxHashTableSize and set to 65536
      • DWORD TcpTimedWaitDelay and set to 60
  4. Set receive buffers for the Network Interface Card (NIC) to maximum.
    Dropped packets on the receiving end cause TCP (Transmission Control Protocol) to retransmit. This minimizes the number of dropped packets on the receiving end, thus increasing performance. See the documentation for your NIC for details. This parameter can often be set using the properties of the NIC under the Network Control Panel. You can also set the NIC speed to 100 MBit (default is usually "auto").
  5. Disable any services not absolutely required for machine operation.
    For example, this may include unused services such as SMTP, FTP, MSDTC, Browser services, and Spooler. You may disable services using the Services section of the Windows NT Control Panel. It is common for highly tuned and secure sites to reduce the number of required services to under 20.
  6. Remove the Page Files, defragment the drives, and recreate the Page Files to ensure contiguous disk space is used for virtual memory.
  7. For multiple NIC machines, used the Microsoft Affinity tool to bind one NIC to each CPU.
    Microsoft provides the tool which you may download at ftp.microsoft.com/bussys/winnt/winnt-public/tools/affinity/.

Microsoft Internet Information Server 4 Settings:

  1. Ensure all unused IIS file mappings are removed.
    1. Using the Internet Services Manager, right-click on the Default Web Site and/or any other web site(s) where your content exists and select Properties.
    2. Select the Home Directory property sheet.
    3. Click the Configuration button under the Application Settings section.
    4. Remove all unused mappings, leaving at least one mapping in place (the server requires at least one mapping). Leave the ".cfm" extension in place if no other mappings are being used.
  2. Minimize IIS logging and/or use striped partition.

    It is desirable to log only data required for weblog trend analysis. Log to a striped partition with a controller that allows write-back caching, especially if you see heavy use on the log disk (this can also be beneficial).
    1. Using the Internet Services Manager, right-click on the Default Web Site and/or any other web site(s) where your content exists and select Properties.
    2. Select the Web Site tag.
    3. Click the Properties button under the logging section. The path should be mapped to a striped partition.
  3. Optimize IIS Settings in the Windows Registry.
    1. Open the Windows registry editor using by clicking Start and then choosing Run.
    2. In the Run dialogue box, type "regedit" and click the "OK" button to open the Windows Registry Editor.
    3. Navigate to the following branch:
      HKEY_LOCAL_MACHINE\System\CurrentControlSet\ Services\InetInfo\Parameters
    4. Set the following DWORD values, adding them if they do not exist:
      • DWORD MaxPoolThreads set to 30
      • DWORD ListenBackLog set to 250
      • DWORD AcceptExOutstanding set to 64
      • DWORD MinFileKBSec set to 100
      • DWORD ObjectCacheTTL set to 0xFFFFFFFF (a special hexidecimal value of 0xFFFFFFFF means no throttling should be done)
      • DWORD OpenFileInCache set to 0x5000
      • DWORD MemoryCacheSize set to 4194304
  4. For very busy sites, set ServerListenBacklog and MaxEndPointConnections.

    Note that these commands can dramatically increase the memory footprint of a very busy IIS 4.0 server to approximately 90+MB, but will allow the web server to service a very busy web site without dropping or refusing client connections. To set, run the following commands:
    1. cscript c:\winnt\system32\inetsrv\adminsamples\adsutil.vbs SET w3svc/1/ServerListenBacklog 10000
    2. cscript c:\winnt\system32\inetsrv\adminsamples\adsutil.vbs SET w3svc/1/MaxEndPointConnections 10000
  5. Increase IIS 5.0 LogFileBatchSize to cut down on disk I/O.
    1. Open the Windows registry editor using by clicking Start and then choosing Run.
    2. In the Run dialogue box, type "regedit" and click the "OK" button to open the Windows Registry Editor.
    3. Navigate to the following branch:
      HKEY_LOCAL_MACHINE\System\CurrentControlSet\ Services\InetInfo\Parameters
    4. Set the following DWORD values, adding them if they do not exist:

      DWORD LogFileBatchSize set to 0x00040000
      This specifies the batch size for writing log files. The server caches the last LogFileBatchSize bytes of data in memory buffers before it dumps the current buffer and moves onto the next buffer. Such batch processing reduces the amount of disk traffic created by log files. However, if you are interested in getting the current-up-to-date log records flushed to disk, you can reduce the batch size. The value range for this setting is 0 - 0xFFFFFFFF, and the default is 64*1024 (64KB) or 0x00010000. Consider increasing this value to 256*1024 (256KB) or 0x00040000.
  6. Tune IIS settings using the Internet Services Manager
    1. Set IIS Performance set to handle over 100,000 hits per day.
    2. Remove all IIS mappings except .CFM.
    3. Set Logging “ "Next Log Time Period" = "When file size reaches 100 MB".
    4. Remove all unnecessary ISAPI filters.
  7. Modify settings to decrease potential file-swapping problems

    Place the webserver root directory and all swap space on a separate physical disk from the core OS and other system files if at all possible. If not, place on separate partitions on the same disk.

Additional Information


AlertThis content requires Flash

To view this content, JavaScript must be enabled, and you need the latest version of the Adobe Flash Player.

Download the free Flash Player now!

Get Adobe Flash Player

Creative Commons License

Search Support


Document Details

ID:tn_17277
Browser:Chrome
Internet Explorer
Netscape
Opera
Safari
Firefox
Database:DB2
Informix
MySQL
Oracle
SQL Server
Sybase
MS Access

Products Affected:

coldfusion