You may experience a decrease in overall system performance when you are copying files that are larger than approximately 500 MB in Windows Server 2003 SP1 or in Windows Server 2003 SP2

KB 920739


This affects all editions, x32 and x64, windows 2003.


The knowledge base article states the following 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.

·         Working set of certain applications, such as SQL Server, may be trimmed or paged out.

However, you may find file copies just never seem to complete and fail for no obvious reason, robocopy may suffer in this manner.


The knowledge base cause is listed as follows:


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.


·         What this means is if you’re copying a sql backup file from a fast array to a slow array, or even single disk you may tun into problems.

·         This can be affected by the setting of the large system cache and can be a real problem on x32 systems.

·         There is a “hotfix” for sp1 but I’d rcommend always applying sp2, anyway which ever route you follow you have to make this registry change

·         Although I do not know for certain it is likely you must enter the registry key with the exact case as shown.



The knowledge base fix is as follows:  ( images added for clarification )


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.    Image18.jpgClick Start, click Run, type regedit, and then click OK.








2.    Locate and then right-click the following registry key:


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.



o    "0x20" corresponds to a decimal value of 32 MB.

o    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.


Server Memory

Min Setting

Max Setting














For SQL Server I’d suggest the minimum values are more appropriate, expecially for x32.