Sqlserver-dba.com

IO_completion on disk solved with Wait Stats and Perfmon

SQL Server Wait Stats analysis and Perfmon Counters recorded high ASYNC_IO_COMPLETION , IO_COMLETION  and  BACKUPIO on Production SQL Servers. At first, I thought just one server was underperforming. As more jobs starting delaying ,it was obvious more than one server was experiencing a slowdown.

 A typical job taking 34 minutes, was now taking 4 hrs 45 minutes. The common thread to the delays was writes to disk. In contrast backups to tape were fine

 To verify these claims I completed some SQL Server wait analysis. To maintain consistency I cleared the history collection  with dbcc sqlperf

 SQLPERF(‘sys.dm_os_wait_stats’,CLEAR)

 And stopped other jobs running on the server

 I issued a BACKUP to disk and then a RESTORE from that disk onto another disk . Both high IO – bound activities.

 During the BACKUP phase  wait stats recorded were:

BACKUPIO - is not specifically an IO wait performance measure. But indicates latency.

ASYNC_IO_COMPLETION – normally occurs for long –running IO bound ops – e.g BACKUP,CREATE DATABASE,ALTER DATABASE etc.

 During the RETORE phase the wait stats recorded were:

BACKUPIO

IO_COMPLETION

Backup_slow1 
 

I then stopped SQL Server and attempted a file copy onto another disk on the same server. Very Slow!

 There wasn’t  significant  memory pressure

 I completed the same process on another server , the same result.

 To verify the waits analysis I completed some Perfmon analysis , which looks at Queues.

 The counters I looked at  Avg.Disk Sec/Write , focusing on disk latency.  The underlying disk system uses SAN so Average Disk Queue Length was out of the question .

 According to Microsoft these are the Avg.Disk Sec/Write guidelines

 Less than 10 ms - very good

Between 10 - 20 ms - okay

Between 20 - 50 ms - slow, needs attention

Greater than 50 ms – Serious I/O bottleneck

Perfmon avgdisk 

This is a serious IO bottleneck , which verified the Wait Stats analysis . I presented the information to the SAN administrator . Using this information as a basis , we were able to diagnose the underlying SAN related problem – and offer an alternative to users

Source:Jack Vamvas (http://www.sqlserver-dba.com)


Author: Jack Vamvas (http://www.sqlserver-dba.com)

Verify your Comment

Previewing your Comment

This is only a preview. Your comment has not yet been posted.

Working...
Your comment could not be posted. Error type:
Your comment has been posted. Post another comment

The letters and numbers you entered did not match the image. Please try again.

As a final step before posting your comment, enter the letters and numbers you see in the image below. This prevents automated programs from posting comments.

Having trouble reading this image? View an alternate.

Working...

Post a comment


sqlserver-dba.com | SQL Server Performance Tuning | SQL Server DBA:Everything | FAQ | Contact