我们来分析一下影响计算机性能的主要组件,主要就是CPU、主板的总线IO、内存IO、硬盘IO、网卡IO等等,并且如今CPU的性能已经非常好了,可是计算机的总体的IO性能却较低,严重影响了计算机的性能,如今的计算机的总线IO、内存IO的速度都能够达到5G/s以上。可是磁盘IO往往较低。

我们来分析一下常见的几种吧,对于SATA硬盘来说,速度小于150MB/s。对于SCSI硬盘来说。速度小于200MB/s,对于SAS硬盘来说,速度大约在200MB/s左右,而固态硬盘,也就是SSD,速度大约在500MB/s左右。我们平时自己使用的硬盘大多数是SATA接口的机械硬盘,而SATA3接口还是比較快的。能够达到6GB/s,而SCSI SAS一般用于server,通常转速非常快,能够达到每秒一两万转,所谓SAS就是串行SCSI。而SSD就是固态硬盘啦。

硬盘式绝大多数计算机的性能瓶颈,而IOPS也起到了非常大的作用,所谓IOPS。它是Input/Output  Operation Per Second的缩写,也就是每秒进行读写(IO)操作的次数,多用于数据库等场合,他是衡量随机訪问的性能的一个重要參数。并且我们发现现代磁盘的缺陷:IO性能弱,稳定性差。

所谓RAID。也就是Redundant   Array  of  Independent  Disks,也就是便宜磁盘冗余阵列,它通过多磁盘并行执行。来提供计算机的存储IO性能。RAID有非常多种类。称之为RAID的级别,现代RAID有7类。经常使用的则有4类。也就是RAID0、RAID1、RAID5、RAID6.对于冗余性。能够类比备份。多块磁盘组成了一个RAID,可是在OS看来仅仅有一块RAID硬盘,而RAID5同意并行中的多块硬盘,能够有一块出现问题,而不丢失数据。

对于RAID0。它最少须要两块硬盘,它将数据分别读写到多块硬盘。来提升读写性能,有几块硬盘。就能够吧数据分为几份来写,它的空间利用率是全部硬盘空间之和。它的性能也是全部硬盘速度之和,它没有冗余能力。它的长处就是能够并行的读和谐。并且空间利用率高,性能也最好。它的缺点就是一旦RAID中的某块硬盘出现问题,则数据将会全部丢失。

对于RAID1,它须要偶数块硬盘,在读数据时。同一时候从多块硬盘读取数据来提高读取性能。它与RAID0的读速度一样,在写数据时它须要将同一数据拷贝到多块磁盘,从而提供冗余性。

它应用于数据安全性以及完整性要求比較高的情景,并且读远多于写。

它的空间利用率就是组成RAID1中最小的那块磁盘,它的读性能为全部硬盘速度之和。可是写性能比读性能要差一些。

它的冗余能力就是。仅仅要有一块硬盘没有损坏。那么数据就是完整的。对于RAID1来说,它的读非常快,冗余性也非常高。可是缺点就是有几块硬盘就须要有几份同样的数据,写数据非常慢。

对于RAID5来说,它最少使用3块硬盘,在读数据时。同RAID0,分布式的往磁盘上写数据,在读数据时,对数据进行奇偶校验。将校验信息同一时候保存在磁盘上。而校验信息在数据恢复时使用。当中RAID0性能最高。而RAID1冗余性最高。可是使用场景都不多。而实际的生产环境中多使用RAID5和RAID6.它的空间利用率是1-1/硬盘数,它的读性能非常接近RAID0。写性能比RAID0弱,它的冗余能力就是假设有一块磁盘损坏,不会丢失数据。

对于RAID6来说,它最少使用4块硬盘,它和RAID5一样。仅仅是多一块硬盘保存校验信息的副本,读数据时,同RAID5,分布式的往磁盘上写数据,在写数据时。对数据进行奇偶校验,将校验信息同一时候保存在磁盘上,可是会再额外保存一份校验信息。它的空间利用率是1-2/硬盘数。它的读性能接近RAID5,可是写性能比RAID5弱,它的冗余能力就是假设有一块 硬盘损坏,不会丢失数据。

对于RAID的实现。能够分为软件实现 和硬件实现。

假设是软件实现,能够通过系统功能或者软件来实现。它没有独立的硬件和接口,它会占用一定的系统资源。比方cpu、内存、硬盘接口速度,受操作系统的稳定性影响。假设是硬件实现。能够通过购买独立的RAID硬件卡来实现RAID。有些主板集成了RAID硬件,硬件RAID不须要占用其它的硬件资源,并且稳定性和速度都比软件RAID要强。

辛星浅析raid的更多相关文章

  1. 辛星浅析跨域传输的CORS解决方式

    首先我们有一个概念.那就是"同源准则",也就是same-origin  policy,它要求一个站点(协议+主机+port号)来确定的脚本.XMLHttpRequest和Webso ...

  2. 辛星浅析Linux中的postfix

    Postfix是眼下Linux下主流的邮件server,也就是MTA,主要用来实现SMTP协议,它能够兼容sendmail.而postfix也是为了改进sendmail而制作产生的. 通常来说.pos ...

  3. 辛星浅析html5中的role属性

    我们使用role属性告诉辅助设备.这个元素所扮演的角色.比方点击的按钮,我们通常就使用role="button",会让这个元素可点击. 可是它很多其它的是用来增强语义性,当现有的h ...

  4. 辛星浅析一次ajax的实现过程

    说到ajax,那绝对是一个老生常谈的话题,近些年ajax技术的使用颇为盛行. 以下我们就以jQuery为例来从一个真实的项目中看一下ajax的实例. 首先是前端页面,这个页面我们使用的是bootstr ...

  5. 辛星浅析yaf框架中的类的自己主动载入问题

    因为公司非常多项目都是基于yaf的,而非常多刚接触yaf的朋友问的第一个问题就是:yaf的自己主动载入是依照什么规则来的. 鉴于此.于是我特别开了一篇博文来记录一下. 首先在yaf中.models文件 ...

  6. 2014年辛星完全解读Javascript第七节 数组和对象

    由于Javascript是脚本语言,因此,使用起来非常方便,数组的使用也是比较简单的,下面我们就主要介绍一下Javascript中数组的介绍,以及上一节中没有完成的对象的介绍. *********** ...

  7. 2014年辛星完全解读Javascript第八节 json

    json是JavaScript Object Notation的简写,它是一种轻量级的数据交换格式,而且表达上很容易靠字面去理解.json是用于存储和传输数据的格式,通常用于向服务器端传递数据. ** ...

  8. 2014年辛星完全解读Javascript第六节 对象

    随着面向对象的普及,现在很多语言都在支持面向对象,Javascript也不例外,所谓对象,就是拥有属性和方法的数据.这里的属性其实就是变量,这里的方法,其实就是函数.但是Javascript的面向对象 ...

  9. 2014年辛星完全解读Javascript第五节 break和continue与错误处理

    先说一下break和continue的主要用法吧,break用于跳出循环,continue用于跳过该循环中的一个迭代.简单的说,就是break直接从该语句跳出,但是continue不会跳出该循环语句, ...

随机推荐

  1. day03_08 变量的重新赋值02

    python自动回收垃圾内存,不用了自动会回收,但是C不会 以下del代码为手动强拆,就是从内存中删除变量名

  2. matlab 初级画图

    matlab 初级画图 1.plot() plot(x,y)   plots each vector pairs (x,y) 画图函数画出每个点   每组变量 plot (y)   plots eac ...

  3. Python爬虫selenium、PhanmJs

    selenium:可以模拟鼠标进行一些操作 实例1:实现自动打开google浏览器,进行百度搜索,并关闭浏览器 from selenium import webdriver from time imp ...

  4. Python 调用multiprocessing模块下面的Process类方法(实现服务器、客户端并发)-UDP协议

    #基于UDP协议的multiprocessing自定义通信 服务端: from multiprocessing import Process import socket def task(server ...

  5. iptables之ipset集群工具

    ipset介绍 ipset是iptables的扩展,它允许你创建 匹配整个地址集合的规则.而不像普通的iptables链只能单IP匹配, ip集合存储在带索引的数据结构中,这种结构即时集合比较大也可以 ...

  6. 【Luogu】P3358最长k可重区间集问题(费用流)

    题目链接 这题费用瘤,数据貌似还是错的. 把线段抽象抽象拆成两个点,入点表示左端,出点表示右端,连上容量为1费用-长度的边. 不相交线段随便连下,源点向拆出的原点S'连费用为0容量k,然后跑费用流. ...

  7. 【bzoj】P4407于神之怒加强版(莫比乌斯反演)

    题目链接 套路一般的枚举$gcd(i,j)=w$.设$min(n,m)=top$,则有 $\sum\limits_{i=1}^{n}\sum\limits_{j=1}{m}gcd(i,j)$ $=\s ...

  8. spring-boot项目MapperScan注解包含多个包

    单个包 @MapperScan("com.mysiteforme.admin.dao") 多个包 @MapperScan({"com.mysiteforme.admin. ...

  9. Tomcat和JVM的性能调优总结

    Tomcat性能调优: 找到Tomcat根目录下的conf目录,修改server.xml文件的内容.对于这部分的调优,我所了解到的就是无非设置一下Tomcat服务器的最大并发数和Tomcat初始化时创 ...

  10. FOJ Problem 2261 浪里个浪

                                                                                                        ...