Microsoft KB Archive/920739

From BetaArchive Wiki

Article ID: 920739

Article Last Modified on 11/30/2007



APPLIES TO

  • Microsoft Windows Server 2003 Service Pack 1, when used with:
    • Microsoft Windows Server 2003, Web Edition
    • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
    • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
    • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
    • Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
  • Microsoft Windows Server 2003 Service Pack 2, when used with:
    • Microsoft Windows Server 2003, Web Edition
    • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
    • Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
    • Microsoft Windows Server 2003, Datacenter x64 Edition
    • Microsoft Windows Server 2003, Enterprise x64 Edition
    • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
    • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
    • Microsoft Windows Server 2003, Standard x64 Edition
    • Microsoft Windows Server 2003, Standard Edition (32-bit x86)



Important This article contains information about how to modify the registry. Make sure that you back up the registry before you modify it. Make sure that you know how to restore the registry if a problem occurs. For more information about how to back up, restore, and modify the registry, click the following article number to view the article in the Microsoft Knowledge Base:

322756 How to back up and restore the registry in Windows XP and Windows Vista


SYMPTOMS

When you copy files that are larger than approximately 500 MB on a computer that is running Microsoft Windows Server 2003 Service Pack 1 (SP1) or Windows Server 2003 Service Pack 2 (SP2), you may experience a decrease in overall system performance although the copy job is still running correctly.

Additionally, you may experience the following symptoms:

  • Your desktop and the programs that are running on the computer may stop responding.
  • The mouse may stop responding.


CAUSE

This problem occurs when you copy large files locally from a fast disk to a slow disk. For example, this problem can occur when you copy large files from a cluster disk to local system disk.

The System Internals Cache Manager uses a variable that is named CcDirtyPageThreshold. By default, the value of CcDirtyPageThreshold may be set too high for scenarios where there are many lazy writes. By default, the CcDirtyPageThreshold global kernel variable is set to a value that is half of the physical memory. This variable triggers the cache manager's write throttles.

For example, if you are copying a file that is 1 GB, 500 MB of the file is copied to the cache before the Cache Manager starts flushing the dirty pages. Flushing 500 MB of dirty pages causes several page faults. These page faults must be committed to the disk. When this occurs, it can cause bottlenecks on slow disks.

Note A "dirty page" is a page that has been modified in the cache but has not yet been written to disk.

RESOLUTION

Service pack information

To resolve this problem, obtain the latest service pack for Windows Server 2003. For more information, click the following article number to view the article in the Microsoft Knowledge Base:

889100 How to obtain the latest service pack for Windows Server 2003


Hotfix information

Prerequisites

You must be running Windows Server 2003 SP1.

Restart requirement

You must restart your computer after you apply this hotfix.

Hotfix replacement information

This hotfix does not replace any other hotfixes.

File information

The English version of this hotfix has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time item in Control Panel.

Windows Server 2003, Itanium-based version
File name File version File size Date Time Platform
Ntkrnlmp.exe 5.2.3790.2803 6,520,320 28-Sep-2006 23:16 IA-64
Windows Server 2003, x64-based version
File name File version File size Date Time Platform SP requirement
Ntkrnlmp.exe 5.2.3790.2803 4,627,968 28-Sep-2006 23:22 x64 SP1
Ntoskrnl.exe 5.2.3790.2803 4,483,072 28-Sep-2006 23:22 x64 SP1
Windows Server 2003, x86-based version
File name File version File size Date Time Platform SP requirement
Ntkrnlmp.exe 5.2.3790.2803 2,459,648 29-Sep-2006 11:22 Not Applicable SP1
Ntkrnlpa.exe 5.2.3790.2803 2,271,744 29-Sep-2006 10:49 x86 SP1
Ntkrpamp.exe 5.2.3790.2803 2,311,680 29-Sep-2006 10:50 Not Applicable SP1
Ntoskrnl.exe 5.2.3790.2803 2,420,224 29-Sep-2006 11:22 x86 SP1

Warning Serious problems might occur if you modify the registry incorrectly by using Registry Editor or by using another method. These problems might require that you reinstall the operating system. Microsoft cannot guarantee that these problems can be solved. Modify the registry at your own risk.

After you apply this fix or after you install Windows Server 2003 SP2, you must add the SystemCacheDirtyPageThreshold registry entry to change the default behavior. To do this, follow these steps:

  1. Click Start, click Run, type regedit, and then click OK.
  2. Locate and then right-click the following registry key:

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SessionManager\MemoryManagement

  3. Point to New, and then click DWORD Value.
  4. Type SystemCacheDirtyPageThreshold, and then press ENTER.
  5. Double-click SystemCacheDirtyPageThreshold.
  6. In the Value data box, type 0x20, and then click OK.

    Notes
    • "0x20" corresponds to a decimal value of 32 MB.
    • The range of values for the SystemCacheDirtyPageThreshold registry entry are as follows:

      Minimum value: Total physical RAM in MB divided by 64
      Maximum value: Total physical RAM in MB divided by 2
      Default value: 0

      The default value is a nonexistent key. If you add values that are out of range, your computer will revert to the default behavior. The value that you add is measured in MB.

  7. Exit Registry Editor.


MORE INFORMATION

To verify that you are experiencing this problem, use the !defwrites command in the kernel debugger. This command displays the values of the kernel variables that the cache manager uses, and it displays the values of the threshold and of the actual dirty pages that are in the cache. When you run this command, you may receive output that resembles the following:

CcTotalDirtyPages: 14 (0 Kb)
CcDirtyPageThreshold: 130941 (0 Kb)
MmAvailablePages: 62445 (0 Kb)
MmThrottleTop: 450 (0 Kb)
MmThrottleBottom: 80 (0 Kb)
MmModifiedPageListHead.Total: 43 (0 Kb)

You may experience the problem that is described in this article if the CcTotalDirtyPages value is close to the CcDirtyPageThreshold value.

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

This problem was first corrected in Microsoft Windows Server 2003 Service Pack 2.
Note You must manually enable the SystemCacheDirtyPageThreshold registry entry after you install Windows Server 2003 SP2.

MORE INFORMATION

For more information, click the following article number to view the article in the Microsoft Knowledge Base:

824684 Description of the standard terminology that is used to describe Microsoft software updates


Keywords: kbwinserv2003sp2fix kbwinserv2003presp2fix kbbug kbfix kbhotfixserver kbqfe kbpubtypekc KB920739