The information in this article applies to:
SUMMARY
When examining the SQL Server errorlog, you may periodically see the
following types of messages:
-or-
This article explains the meaning of bufwait and writelog timeout messages. MORE INFORMATION
SQL Server uses the asynchronous I/O calls ReadFile(), ReadFileEx(),
WriteFile(), and WriteFileEx() when performing reads and writes. These
Win32 API calls submit an I/O request to Windows NT Server, and then allow
the application to continue with other operations while waiting for the
operation to complete. At completion, it signals the application that the
write has completed by means of a synchronization event or completion
routine.
Q102020 : How to Monitor Disk Performance with Performance Monitor While these messages result from delay in performing I/O, several SQL Server configuration values have a direct impact on the overall I/O throughput of the system: max async I/O; max lazywrite I/O; logwrite sleep; and resource timeout. The 'max async I/O' configuration value determines the maximum number of outstanding asynchronous I/O requests that SQL Server will allow, throttling the number of pending requests. When an asynchronous I/O request is made, Windows NT Server must queue the request, which has an associated overhead. While asynchronous I/O requests can increase performance when used appropriately, a limit can be reached at which point further use may actually begin to degrade system performance. This limit largely depends on the controller, driver, and associated disk subsystem. If you persistently receive any of the above errors and have changed this setting from its default value, consider setting it back to its default value. The 'max lazywrite I/O' parameter is closely related to the 'max async I/O' setting, but specifically throttles the number of outstanding requests made by the Lazywriter process. The Lazywriter process attempts to flush changed pages from cache to disk so that there is always some free space in data cache. The amount of space that the process attempts to keep free is controlled by the 'free buffers' configuration option. The 'logwrite sleep' configuration setting is an advanced configuration option that forces an intentional delay before writing log pages to disk. Because the log pages must be physically committed to disk before data modifications are made, you generally want these writes to be performed as quickly as possible. In certain circumstances, you can enhance performance by intentionally forcing a delay so that multiple processes can "pack" log records on a single page and thus reduce the number of write operations. The amount of time used in this intentional delay is counted as part of the timeout period for the overall write operation, so a writelog timeout may be artificially induced by increasing the 'logwrite sleep' configuration setting. Changes to this configuration value should only be made in a controlled fashion, to ensure that performance is not hindered. The 'resource timeout' configuration setting controls the overall timeout on the asynchronous I/O operations. By default, the setting is set to 10 (seconds), so any operation that takes longer than 10 seconds to complete results in a timeout warning. Setting this value too low may cause timeouts in an unrealistically short time. If you are frequently seeing bufwait or writelog timeouts, you can increase this setting to reduce the frequency with which these errors are generated. Because SQL Server stresses the I/O subsystem so extensively, it is also important to verify that you are running with the latest versions of the drive and controller firmware, as well as the latest driver. Also consult your hardware manufacturer for any diagnostics they may have for stressing the disk subsystem. If the above information does not help resolve the issue, you may want to consider stressing the system in a manner similar to that done by SQL Server. To assist you in doing this, a utility called SQLHDTST has been written. For more information about the utility and locations from which it can be downloaded, see the following article in the Microsoft Knowledge Base: Q135582 : INF: SQL Server Utility Files Available Additional query words: error message bufwait writelog configuration sp_configure
Keywords : kbenv kbhw SSrvAdmin SSrvErr_Log SSrvGen |
Last Reviewed: April 9, 1999 © 2000 Microsoft Corporation. All rights reserved. Terms of Use. |