监控磁盘的IOPS的方法分享


摘要:
在sqlserver数据库服务器上,有时我们发现查询报表非常慢,通过一系列监控,发现是磁盘效率低下,或者代码设置不合理导致磁盘未合理使用
下文讲述磁盘IOPS的相关知识及监控磁盘IOPS的方法



磁盘IOPS简介

磁盘性能指标–IOPS简介:
IOPS (Input/Output Per Second):磁盘每秒进行读写的次数;
IOPS计算方法:
磁盘IO操作步骤:当CPU向磁盘发出一个读写操作命令的时,磁盘就开始进行查找操作,获取相应的数据 ,磁盘查找数据受以下三个因素影响:
1:寻址时间,数据可能存在磁盘的任意位置,任意磁道上,所以需要从一个最短的路径上获取数据,降低时间开销。。
2:旋转延时,数据的存放位置,有些数据存储在磁盘开始读取就可以读到的位置,有些数据存储在磁盘末端,需要磁头查找一圈才能获取到相应的水 3:传送时间,磁盘将数据传送至内存的时间
———————–
  IO单次时间 = 寻址时间 +旋转延时 +传送时间
  IOPS = 1/IO计算时间
从计算公式上可以看出,当单次IO计算时间越小,则相应的IOPS越大
  8K (1/0.1 ms = 10000 IOPS)
  0ms + 0ms + 8K/80MB = 0.1
  
从以上公式的计算方式上,我们可以看出单次IO越小,IOPS越大,
例:我们在sqlserver 上每次获取1K的数据,每秒我们的IOPS可以到1万次
反之每次获取数据为10K时候,我们的IOPS只能达到1000。



监控磁盘的IOPS的方法

在windows操作系统中,我们可以通过 “windows性能计数器”来监控磁盘的IOPS,
例:
PhysicalDisk(_Total)的Disk Reads/sec + Disk Writes/sec
我们可以制作一个window任务或sql作业将各盘符的IOPS监控数据放入数据库中,定期生成报表,进行相关查阅。