接着上篇《深聊性能测试,从入门到放弃之:如何对IO进行性能调优(上)》,
我们继续来分享IO调优
改进方式,主要分两种:
①磁盘快取监控(disk cache controller)
②磁盘列阵技术
定义
将从磁盘读取的数据存在快取内存(cache memory)中,以减少磁盘存储的次数。
数据的读取都在快取内存中进行,大幅增加存取的速度。
如果要读取的数据不在快取内存中,或要写数据到磁盘时,才做磁盘的存取动作。
注意点
这种方式在单工环境(single-tasking environment),如DOS之下,对大量数据的存储有很好的性能,
但是在多工环境(multi - tasking environment)或数据库(database)的存取,就不能显示其性能。
并且,这种方式,没有任何安全保障。
多工环境:要不停的做数据交换的动作
数据库:因为每一次记录都很小
定义
磁盘列阵是把多个磁盘组成一个阵列,当作单一磁盘使用,它将数据以分段(striping)的方式存储在不同的磁盘中,存取数据时,列阵中的相关磁盘一起动作,大幅降低数据的存取时间,同时有更佳的空间利用率。
磁盘阵列所利用的不同的技术,称为RAID Level,不同的Level针对不同的系统及应用,以解决数据安全的问题。
RAID Level 等级分类
1. RAID 0
①定义
将数据条带化(striping),将连续的数据分散到多个磁盘上进行存取,系统发出的IO命令(不管读/写)就可以在磁盘上被并行执行。
由于每个磁盘单独执行自己的那部分请求,故,这大大增强整个存储的系统的性能。
②图解
优点:
速度快,容量大
缺点:
无备份,安全差
③举例
一个RAID0列阵有n(≥2)个磁盘,每个磁盘的随机读写的IO能力达到100,
那么,整个磁盘阵列的IO能力就是 :100 * n。
如果传输能力允许,RAID0的吞吐率也是单个磁盘的 n倍。
2. RAID 1
①定义
在容量上, 相当于把两个磁盘合起来一起使用。
互为镜像的两个磁盘里面保存的数据时完全一样的,
因此,在并行读取的速度上将是n个磁盘速度之和,
但是,在写入的速度,就慢的多,因为要同时写入两个磁盘,故,速度就是 n/2。
②图解
优点:
有备份,安全高
缺点:
写入慢
3. RAID 3
①图解
优点:
速度快,安全高,奇偶校验,一盘故障数据可重建
适用于:视频网站
缺点:
二盘同时故障,数据全部丢失
小数据读写不适用,随机读慢
4. RAID 3 + Spare
①图解
②解析
Spare:(磁盘数 - 2)*单盘容量
热备盘:备份故障盘上的内容
5. RAID 5
①定义
RAID5支持并行IO,而磁盘上的数据呈现条带状的分布在所有的磁盘上,
因此读IO的速度相当于所有磁盘速度之和;
前提条件:磁盘没有损坏
写入速度,是所有磁盘速度总和的 1/4;
所以RAID5是不适合用在大批量写入数据的系统上。
以下几种情况,建议采用RAID5:
要求较高的空间利用率;
安全性要求不高;
大文件存储系统.
②图解
③解析
是RAID3的加强版
Spare:(磁盘数 - 1)*单盘容量
热备盘:备份故障盘上的内容
6. RAID 6
①定义
RAID6与RAID5 很类似,差别在于RAID6比RAID5多了一个用于校验的磁盘。
读取IO速度,RAID6 和RAID5 是完全一样。
写入速度,区别RAID6将一个命令分成三次读、三次写,即6次IO命令来完成。
RAID6实际写入磁盘的速度是全部磁盘的1/6
②图解
③解析
Spare:(磁盘数 - 2)*单盘容量
7. RAID 10
①定义
先镜像后条带,称为RAID10;
先条带后镜像,称为RAID01。
不管是 RAID10还是RAID01,都是组合大于2块磁盘时候的RAID1。
从性能上看, RAID10和RAID01都是一样的,都是RAID1。
区别:
RAID10在重建故障磁盘的时候,性能比RAID01要快,安全性要高,不计成本
小数据量频繁写入的系统,推荐采用RAID10。
②图解
③解析
Spare:(磁盘数 *单盘容量)/2
为了能让大家更容易的理解,
我们还是老规矩,上图:
直接上图,图中解析
直接上图,图中解析
图解
今天的分享,差不多就到这里了。
今天我通过实例+流程图的方式,来让你了解,什么是IO,已经IO的调优流程。
后期,我也会一直在性能的领域,继续进行分享。
如果想学习更专业的性能领域知识,
除了关注我文章,
还可以持续预定我的性能测试讲堂,
《持续更新....》
让你在性能领域,成为有话语权的测试工程师。