REQUEST_DISPENSER_PAUSE is recorded while a task waits for all outstanding I/O against a database to complete, so that I/O can be frozen for an external snapshot backup. It is the setup phase of the freeze covered by DISKIO_SUSPEND: first drain everything in flight (this wait, one second at a time until the drain completes), then hold the freeze (that wait) while the snapshot is taken.
Together the pair timestamps every snapshot backup’s disruption window precisely.
Is It a Problem?
Only as much as the freeze it precedes. A quick drain on a healthy system takes a heartbeat; long REQUEST_DISPENSER_PAUSE waits mean outstanding I/O took time to complete before the freeze could start, heavy write activity or slow storage stretching the drain. That extends the total pause your snapshot backup imposes.
Read it as the first act of the same event DISKIO_SUSPEND finishes, with the error log’s “I/O is frozen”/”I/O was resumed” pairs bracketing the whole thing.
Common Causes
- VSS/SAN snapshot backups draining in-flight I/O before freezing.
- Heavy write workloads or slow storage at snapshot time lengthening the drain.
What To Do
- Measure the full freeze window from the error log pairs, and schedule snapshots away from write-heavy periods.
- Chronic long drains argue for native SQL Server backups or better-timed snapshots, the same calculus as
DISKIO_SUSPEND.
How To See It
Rank waits with Get-WaitStatistics, reading it with DISKIO_SUSPEND and the error log freeze events as one timeline.
Part of the SQL Server Wait Types Library.
Related deep dive: BACKUPIO and BACKUPBUFFER Wait Types.
Leave a Reply