A. Basically SQL Server is trying to wrote out "dirty" data to disk via the lazy writer thread that the CHECKPOINT process kicks off. It has been unable to find a free slot - which is basically a memory buffer. The number of slots is set via the sp_configure "max lazywrite io" parameter and dictates the number of concurrent i/o's that this process is allowed to have.

The reason why it couldn't find a slot is either :-

  1. There has been an internal corruption that is stopping the lazy writer process from working properly. This is rare, but there was a known bug in SP3, fixed in SP4, that could cause this. If this were happening then you would see other errors/AV's before this particular error appeared.
  2. The normal reason is just that the disk subsystem is too busy to process the i/o requests. In which case look for non-SQL tasks that may be causing contention on the same disk(s) - NT backups, file transfers, paging etc. Look for contending SQL processes on the same disk(s) - table scans, log file writes etc. You may need to move SQL devices to prevent contention. Alternatively you may have the overrall level of i/o's that SQL is making too high - you may need to reduce the number of "max async io"'s that sp_configure allows.

In any event the message is not usually a problem - SQL will wait until it can continue with the lazy write i/o's for as long as necessary.

(Under SQL 7 lazywrite io is dynamically tuned).