Microsoft KB Archive/329914

From BetaArchive Wiki
Knowledge Base


Article ID: 329914

Article Last Modified on 10/30/2006



APPLIES TO

  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Datacenter Server
  • Microsoft SQL Server 2000 Standard Edition



This article was previously published under Q329914

SYMPTOMS

On a stand-alone Windows 2000 Advanced Server or Windows 2000 Datacenter Server computer, SQL Server 2000 may take a long time to start when you restart the program immediately after quitting.

On a Windows 2000 cluster, the SQL resource group may eventually fail to start if it is moved back to its original cluster node immediately following a failover.

CAUSE

You can configure SQL Server 2000 to allocate large amounts of memory by using Address Windowing Extensions (AWE) application programming interfaces (APIs). Because AWE allocations can be an expensive process in terms of performance, SQL Server tries to allocate all the memory specified in the max server memory SQL variable at one time. When SQL Server releases this large block of memory, Windows 2000 must zero out all this memory before it can allocate it to a new process. This zeroing process can take several minutes or more to complete on systems with large amounts of RAM. Until the memory is zeroed out, the new, restarted instance of SQL Server cannot finish allocating its AWE memory and start its services. On a stand-alone server, this causes SQL Server to take a noticeably longer period of time to restart than it does on initial startup.

On a Windows 2000 cluster, if the time that the operating system (OS) takes to zero the memory is longer than the Pending Timeout period permitted for the SQL Server resource group to come online in the cluster, the SQL Server resource cannot come online.

WORKAROUND

There is no workaround for this issue. You must wait for the OS to complete the process of zeroing memory.

To prevent the SQL resources from failing on a cluster, increase the Pending Timeout value of the SQL services in the SQL cluster group. This gives the OS enough time to complete its zero-page process before SQL times out while trying to start.

To increase the Pending Timeout value, follow these steps:

  1. Start Cluster Administrator.
  2. Click Properties for each SQL Server cluster resource.
  3. In the Properties dialog box, click the Advanced tab, and then increase the value under Pending Timeout.


STATUS

This behavior is by design.

MORE INFORMATION

The zero-page writer in Windows 2000 is a single thread, and this is part of the reason that zeroing takes so long. Additionally, as the amount of memory that the operating system must zero increases, so does the time required to zero. The zero-page writer has been revised in Microsoft Windows Server 2003 to addresses these delays.


Additional query words: mscs sql2000 sql2k sql failover awe

Keywords: kbtshoot kbprb KB329914