Microsoft KB Archive/317357

= Performance problem because of contention on CmpRegistryLock =

Article ID: 317357

Article Last Modified on 10/27/2006

-

APPLIES TO


 * Microsoft Windows 2000 Service Pack 1
 * Microsoft Windows 2000 Service Pack 2
 * Microsoft Windows 2000 Advanced Server
 * Microsoft Windows 2000 Advanced Server

-



This article was previously published under Q317357



IMPORTANT: This article contains information about modifying the registry. Before you modify the registry, make sure to back it up and make sure that you understand how to restore the registry if a problem occurs. For information about how to back up, restore, and edit the registry, click the following article number to view the article in the Microsoft Knowledge Base:

256986 Description of the Microsoft Windows Registry



SYMPTOMS
When 50-100 interactive Terminal Services users are logged on, and other Terminal Services users are logging on or off at the same time, your computer may become unresponsive for about 10-30 seconds. The frequency of this symptom is variable, but can occur 10-20 times a day. When this problem occurs, the mouse and keyboard do not respond, but the computer is responsive on the network (to ping and net use commands), and on the console.

Important You can determine that you are experiencing this problem by running Perfmon.exe locally. Perfmon.exe show a series of intervals of &quot;system inactivity&quot;, when all counters drop to zero (0). During this interval, you may notice heavy system disk activity. This behavior is not specific to any one computer manufacturer or model, and may potentially affect all Windows 2000 installations, especially those that are using Terminal Services. Terminal Services is an &quot;enabler&quot; for this performance problem, because of the total size of the registry hives that are associated with all of the Terminal Services sessions that are in progress. This problem can occur when there is plenty of available memory.



CAUSE
This performance problem may be caused by a slowdown that is caused by the number of input/outputs on the system disk during the registry-flush operation. The &quot;system inactivity&quot; intervals you see in Perfmon.exe occur because of contention on the CmpRegistryLock, which protects against registry writers (such as Perfmon.exe and Explorer.exe) during the hive-flush operation.

NOTE: This input/output slowdown was noted to occur even though the computer had plenty of available memory. If your computer does not have enough memory, performance may be substantially degraded before you can see the input/output slowdown.



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

260910 How to Obtain the Latest Windows 2000 Service Pack

The English version of this fix should have the following file attributes or later:

  Date       Time   Size       File name - 18-April-02  0:46  5.0.2195.53241,687,296  Ntkrnlmp.exe 18-April-02 0:47  5.0.2195.53241,686,976  Ntkrnlpa.exe 18-April-02 0:47  5.0.2195.53241,707,584  Ntkrpamp.exe 18-April-02 0:46  5.0.2195.53241,665,024  Ntoskrnl.exe

WARNING: If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.

You can use the following registry key to reduce the registry-flush frequency so that registry modifications can accumulate before the flush. To do so, follow these steps:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager

 Start Registry Editor (Regedt32.exe). Locate and then click the following key in the registry:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager

 On the Edit menu, click Add Key, and then add the following registry value:

Key Name: Configuration Manager

 Click the Configuration Manager key. On the Edit menu, click Add Value, and then add the following registry value:

Value name: RegistryLazyFlushInterval

Data type: REG_DWORD

Radix: Decimal

Value data: time in seconds (default value is 5).

</li> Quit Registry Editor.</li></ol>

NOTE: The default setting for the RegistryLazyFlushInterval value is the same as in Windows 2000 and previous versions of Windows.

Tune for Performance
A reduction of the number of registry-flush operations, by a factor of 2-3, was measured for values of 30-60 seconds of this interval.

Tune Suggestion
Perform a comparative test with the interval set to 30 seconds, and then to 60 seconds. If the observed performance is about the same, select the value of 30 seconds. If the observed difference of performance is important, select a higher value that is closer to 60 seconds. Note that no performance enhancements are noticed when you use an interval that is higher than 60 seconds.

<div class="workaround_section">

WORKAROUND
To work around this problem, use either of the following methods.
 * Enhance system disk-write performance, and turn on write-back caching.
 * If you can, reduce the size of user profiles.

<div class="status_section">

STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article. This problem was first corrected in Windows 2000 Service Pack 3.

<div class="moreinformation_section">

MORE INFORMATION
For additional information about how to obtain a hotfix for Windows 2000 Datacenter Server, click the article number below to view the article in the Microsoft Knowledge Base:

265173 The Datacenter Program and Windows 2000 Datacenter Server Product

For additional information about how to install multiple hotfixes with only one reboot, click the article number below to view the article in the Microsoft Knowledge Base:

296861 Use QChain.exe to Install Multiple Hotfixes with One Reboot

Additional query words: kbBaseOS temporary hangs bottleneck registry contention

Keywords: kbbug kbfix kbwin2000presp3fix kbqfe kbwin2000sp3fix kboswin2000fix kbhotfixserver KB317357

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.