作者:前世梦0708 | 来源:互联网 | 2023-10-12 20:19
我们来分析一下影响计算机性能的主要组件,主要就是CPU、主板的总线IO、内存IO、硬盘IO、网卡IO等等,而且现在CPU的性能已经很好了,但是计算机的整体的IO性能却较低,严重影响
我们来分析一下影响计算机性能的主要组件,主要就是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一般用于服务器,通常转速很快,可以达到每秒一两万转,所谓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