磁盘性能,你可能不知道的IOPS计算方法

  • Post author:
  • Post category:其他


每个I/O 请求到磁盘都需要若干时间。主要是因为磁盘的盘边必须旋转,机头必须寻道。磁盘的旋转常常被称为”rotational delay”(RD),机头的移动称为”disk seek”(DS)。一个I/O 请求所需的时间计算就是DS加上RD。磁盘的RD 基于设备自身RPM 单位值(译注:RPM 是Revolutions Perminute的缩写,是转/每分钟,代表了硬盘的转速)。一个RD 就是一个盘片旋转的半圆。

如何计算一个10K RPM设备的RD 值呢:

1, 10000 RPM / 60 seconds (10000/60 = 166 RPS)

2, 转换为 166分之1 的值(1/166 = 0。006 seconds/Rotation)  –每转需要的时间

3, 单位转换为毫秒(6 MS/Rotation)

4, 旋转半圆的时间(6/2 = 3MS) 也就是 RD

5, 加上平均3 MS 的寻道时间 (3MS + 3MS = 6MS)

6, 加上2MS 的延迟(6MS + 2MS = 8MS)

7, 1000 MS / 8 MS (1000/8 = 125 IOPS)   --每秒钟能产生的IO数

每次应用程序产生一个I/O,在10K RPM磁盘上都要花费平均 8MS。在这个固定时间里,磁盘将尽可能且有效率在进行读写磁盘。IOPS 可以计算出大致的I/O 请求数,10K RPM 磁盘有能力提供120-150 次IOPS。评估IOPS 的效能,可用每秒读写I/O 字节数除以每秒读写IOPS 数得出。

PS:per I/O产生的KB 字节数是与系统本身workload相关的,有2种不同workload的类型,它们是sequential和random。

=======================================================

# iostat -x 1

avg-cpu: %user


%nice


%sys



%idle

0.00





0.00



57.1 4

42.86

Device:

rrqm/s wrqm/s


r/s

w/s



rsec/s

wsec/s



rkB/s

wkB/s



avgrq-sz avgqu-sz await


svctm

%util

/dev/sda

0.00

12891.43 0.00 105.71 0.00 1

06080.00

0.00


53040.00 1003.46

1099.43

3442.43 26.49

280.00

/dev/sda1 0.00

0.00




0.00 0.00


0.00



0.00





0.00


0.00




0.00




0.00




0.00



0.00


0.00

/dev/sda2 0.00

12857.14 0.00 5.71


0.00



105782.86 0.00


52891.43 18512.00 559.14


780.00

490.00 280.00

/dev/sda3 0.00

34.29



0.00 100.00 0.00



297.14



0.00


148.57


2.97




540.29


594.57

24.00

240.00

avg-cpu: %user %nice %sys %idle

0.00 0.00 23.53 76.47

Device:

rrqm/s wrqm/s


r/s

w/s



rsec/s

wsec/s



rkB/s

wkB/s



avgrq-sz avgqu-sz await


svctm

%util

/dev/sda

0.00

17320.59 0.00 102.94 0.00



142305.88 0.00


71152.94 1382.40

6975.29

952.29

28.57

294.12

/dev/sda1 0.00

0.00




0.00 0.00


0.00



0.00





0.00


0.00




0.00




0.00




0.00



0.00


0.00

/dev/sda2 0.00

16844.12 0.00 102.94 0.00



138352.94 0.00


69176.47 1344.00

6809.71

952.29

28.57

294.12

/dev/sda3 0.00

476.47


0.00 0.00


0.00



952.94



0.00


1976.47

0.00




165.59


0.00



0.00


276.47

评估IOPS 的效能,可用每秒读写I/O 字节数除以每秒读写IOPS 数得出,比如:

rkB/s

除以 r/s

wkB/s

除以 w/s

53040/105 = 505KB per I/O

71152/102 = 697KB per I/O



版权声明:本文为xifeijian原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。