性能这块,虽然是小鱼一直不想去触碰的地方,
但是,身在江湖漂,哪能不带刀!!
小屌丝:鱼哥,最近你得注意身体啊
小鱼:昂… 怎么突然关心起我来了?
小屌丝:还用我说嘛,最近你博文更新的慢,不是在耍妹子,就是在去耍妹子的路上。
小鱼:( ‵o′)凸…我这是在忙工作的事情
小屌丝:我差点信了!!
小鱼:…算了,我不替自己解释了, 我替IO解释吧!
小屌丝:难道,今天要整IO? 那赶紧!
在认识IO之前,我们要先了解 一下磁盘。
然后在慢慢的认识IO
1、定义
①盘片以每分钟数千转到上万转的速度在高速旋转,15K 10k 7.5k 5.2k RPM
②磁头就能对盘片上的指定位置进行数据的读写操作
③磁头磁化磁盘记录数据
2、图片
3、HDD示意图
ATA:(IDE 电子集成驱动器 16Bit总线)可达133M/s
SATA:(串行ATA 8位总线)可达300M/s,甚至600M/s
小屌丝:为什么并行的ATA没有串行的SATA快呢?
小鱼:因为时钟频率不一样,一个时钟内ATA比SATA传输的数据要多
小屌丝:那为什么ATA不反提高时钟频率?
小鱼:排线多,信息干扰与同步问题啊。
小屌丝:哦,原来是这样啊。
1. 随机访问(Random Access)
本次IO所给出的扇区地址和上次IO给出扇区地址相差比较大,这样的话磁头在两次IO操作之间需要作比较大的移动动作才能重新开始读/写数据
2. 连续访问(Sequential Access)
当次IO给出的扇区地址与上次IO结束的扇区地址一致或者是接近的话,那磁头就能很快的开始这次IO操作
3. 顺序IO模式(Queue Mode)
磁盘控制器可能会一次对磁盘组发出一连串的IO命令,如果磁盘组一次只能执行一个IO命令
4. 并发IO模式(Burst Mode)
当磁盘组能同时执行多个IO命令时,称为并发IO。并发IO只能发生在由多个磁盘组成的磁盘组上,单块磁盘只能一次处理一个IO命令
IOPS(IO per Second)
定义:
IO系统每秒所执行的IO操作的次数
图片解析
计算公式
IO Time = Seek Time + 60 sec/Rotational Speed/2 + IO Chunk Size/Transfer Rate
IOPS = 1/IO Time = 1/(Seek Time + 60 sec/Rotational Speed/2 + IO Chunk Size/Transfer Rate)
为了更直观了解IOPS的计算,
老规矩,上例子
①参数举例
PRM: rpm = round per minute转/每分钟
转速:7.2K RPM
Avg寻道时间:5ms
平均旋转延时:(60s/7.2K)*1/2=4.17ms
最坏情况:转一圈才开始读数据,乘1/2是把读写分开取二分之一
单位IO:比如最大传输速度50M
8K的块,传输时间 =8/50 = 0.156ms
②计算IOPS
IOPS = 1/(5ms+4.17ms+0.156ms)=107 次
①计算公式
Transfer Rate = IOPS * IO Chunk Size(块大小)
②参数举例
IOPS = 1000
Chunk Size = 8K
TR = 1000 x 8K =8M/s
①定义
磁盘IO延时(IO Latency)
也称为IO响应时间,是指内核对磁盘发出一个读或者写的IO命令,到内核接收到回应的时间,IO响应时间包括IO操作在磁盘处理的时间和IO操作在IO等待队列中所花费的等待时间。
单个IO时间
仅仅指的是IO操作在磁盘内部处理的时间,而IO响应时间还要包括IO操作在IO等待队列中所花费的等待时间。
②图片解析
我们可以直接使用windows自带的监控器
在电脑打开 “性能监视器”,既可看到想看的…
由于小鱼电脑有上帝模式,所以,就直接打开 性能监视器。
1. 单次IO大小
Avg.Disk Bytes/Read
AvgDisk Bytes/Write
2. IO响应时间
Avg.Disk sec/Read
Avg.Disk sec/Write
3. IOPS
Disk Reads/sec(<15ms)
Disk Writes/sec(<15ms)
Disk Transfers/sec
4. IO吞吐率
Disk Bytes/sec
Disk Read Bytes/sec
Disk Write Bytes/sec
5. Physical Disk
Physical Disk : Avg.Disk Queue Length (Q<2)
6. Page faults/sec
>>> Pages Input /sec (Read from disk pages)
>>>Pages Read/sec (Read form disk times)
7. Pages Output/sec
>>>Pages Output/sec(Write to disk)
定义
1、Physical Disk : % Disk Time
2、Physical Disk : Avg.Disk Queue Length <2*盘数
3、Memory :Page Reads/sec
如果内存中没有,那么需要从磁盘中读取
列表展示
PR | Q | DT | Result |
L | H | H | 磁盘瓶颈 |
H | H | H | 内在瓶颈 |
名词解析
①PR:Memery Page Reads/sec
②Q:Physical Disk Avg.Disk Queue Length
③DT:Physical Disk Time
④L:Low
⑤H:High
关于IO调优, 请持续关注下一篇
《深聊性能测试,从入门到放弃之:如何对IO进行性能调优(下)》