PREEMPTIVE_OS_GETDISKFREESPACE is recorded when a thread calls the Windows GetDiskFreeSpace function to check a volume’s free space. Callers include the engine (before file growth, during certain file operations) and, prominently, monitoring queries: sys.dm_os_volume_stats, xp_fixeddrives, and the tooling built on them, our disk space scripts included.
Every “how full are the drives” check passes through here.
Is It a Problem?
No at normal levels; the call is fast on healthy volumes. Two readings occasionally matter. Growth in count usually reflects monitoring frequency, a collector polling volume stats every few seconds across many databases multiplies calls; relaxing the interval is free. Growth in average duration is more interesting: slow free-space calls have implicated stressed filesystems, dodgy mount points, and misbehaving filter drivers, all worth knowing about before they hurt something bigger.
Common Causes
- Monitoring tools and scripts polling
sys.dm_os_volume_statsfrequently. - Engine checks around file growth and creation.
- Filter drivers or storage issues stretching individual calls.
What To Do
- If counts are high, moderate the monitoring cadence; per-minute is plenty for disk space.
- If durations grow, test volume responsiveness from the OS and review filter drivers (AV) on the data volumes.
- Nothing engine-side needs tuning for this wait.
How To See It
Rank it against everything else with Get-WaitStatistics; its rhythm usually matches your monitoring schedule exactly.
Part of the SQL Server Wait Types Library.
Related deep dive: SOS_SCHEDULER_YIELD Wait Type.
Leave a Reply