HADR_FILESTREAM_IOMGR_IOCOMPLETION is recorded by the FILESTREAM I/O manager for Availability Groups while it sleeps between checks for completed FILESTREAM sends to replicas. The detail that surprises people: it ticks every half second for half a second regardless of whether any Availability Groups exist, and regardless of whether you use FILESTREAM.
That makes it a permanent fixture near the top of raw wait output on many instances that have neither feature in use.
Is It a Problem?
No, never. It is a timer loop measuring its own sleep, one of the most reliably benign waits in the DMV. It carries no information about AG health, FILESTREAM performance, or anything else, and there is no configuration that meaningfully changes it.
Its only real impact is the confusion it causes when someone queries sys.dm_os_wait_stats raw and finds an AG-sounding wait dominating a server with no AGs.
Common Causes
- The instance being up. That is the whole list.
What To Do
- Filter it out; our
Get-WaitStatisticsscript excludes it by default. - If a monitoring tool flags it, fix the tool’s benign-wait list.
- For genuine FILESTREAM-in-AG performance questions (rare), measure the replica send queues and file I/O directly rather than through this timer.
How To See It
Rank waits with Get-WaitStatistics, where it is filtered. In raw output, expect roughly one wait per second of uptime and read past it.
Part of the SQL Server Wait Types Library.
Related deep dive: HADR_SYNC_COMMIT Wait Type.
Leave a Reply