AWE-enabled SQL Server 2000 may take a long time to start

This article was previously published under Q329914
This article has been archived. It is offered "as is" and will no longer be updated.
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.
mscs sql2000 sql2k sql failover awe
Properties

Article ID: 329914 - Last Review: 01/17/2015 06:06:36 - Revision: 4.3

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

  • kbnosurvey kbarchive kbtshoot kbprb KB329914
Feedback