I/O性能与可靠性

I/O调优

磁盘I/O优化
  • 性能检测:
    • 压力测试应用程序,观察系统I/O wait指标是否正常,例如有n个CPU,利息情况下I/O wait参数不超过25%,如果超过,就是这个程序的瓶颈就是在IO操作上了可以用iostat命令查看
    • 另外一个指标:IOPS(input/output Per Second)即每秒的输入输出量,是衡量磁盘性能主要指标
    • 每个磁盘的IOPS通常在一个范围内,这和存储的磁盘数据块大小和磁盘范围方式有关系,主要由磁盘的转速决定的,转速越高,IOPS越高。
  • 性能提升:现阶段一般采用RAID技术,将不同磁盘组合来提高I/O性能
RAID
  • 名词解释:RAID(独立磁盘冗余阵列)技术是将多块普通磁盘组成一个大的磁盘阵列,共同对外提供服务。
  • 目的:主要为改善磁盘存储容量,读写速度(IOPS)增强磁盘可用性和容错能力。
    • 解决数据存储容量问题
    • 数据读写速度问题
    • 数据可靠性问题
RAID 0
  • RAID 0 模式写:假设服务器有N快磁盘,当前模式是数据从内存缓冲区写入磁盘时,根据磁盘数量将数据等分成N份,这些数据同时并发写入N块磁盘,使数据写入速度是一块磁盘的N倍。
  • RAID 0 模式读:读取的时候也一样,可以多块磁盘并发的读,因此RAID 0 有很快的数据读取能力。
  • RAID 0 缺点:数据没有做备份,N块磁盘存储一块内存缓冲区的数据,一块磁盘损坏,所有数据都无法使用

请添加图片描述

RAID 1
  • RAID 1 写:将一份数据同时写入两份磁盘,这样任何一块磁盘损坏都不会导致数据丢失,插入一块磁盘可以通过复制数据的方式修复,具有极高的可靠性
RAID 1 0
  • 结合RAID 0 和RAID 1 ,将所有磁盘N平均分2份,数据同时写入2份磁盘,,相当于RAID1;然后在平均分成2份,在每一份磁盘(也就是其中的N/2快磁盘)里面,利用RAID 0 技术并发读写
  • 优点:既可以提供高性能的读写能力,也同时具备高可靠性
  • 缺点:磁盘利用率直接降低到50%,一半用来做数据备份了

请添加图片描述

RAID 3
  • RAID 3 的思路是提高磁盘利用率,将数据分成N-1份,并发写入N-1个磁盘中,并且在第N块磁盘记录校验数据,这样任何一块磁盘损坏(包括校验数据磁盘),都可以利用其它N - 1 块磁盘的数据进行修复
  • 缺点:物理你修改那一块磁盘的数据,第N快校验的数据都需要修改,那边第N快磁盘的读写评率是其他N-1块之和,那么这块磁盘更容易损坏,因此实际很少用这种情况请添加图片描述
RAID 5
  • 与RAID 3 类似,但是校验数据不写入第N快磁盘,而是通过一定的方式将校验数据写入到所有磁盘中,这样校验数据的修改也被平均到所有磁盘,避免RAID 3 这种一块磁盘损坏的情况。

请添加图片描述

RAID 6
  • 当数据可靠性要求很高,再出现同时损坏2块磁盘的时候(概率很低)任然会出现无法通过校验信息修复的情况,只能通过运维数据恢复,这样我们可以使用RAID 6
  • RAID 6 与RAID 5类似,但是数据值写入了N - 2块磁盘,并且螺旋式地在两块磁盘中写入校验信息(分别用不同算法),这样校验信息也有备份了,有更高的可靠性
  • 请添加图片描述
校验数据设计
  • 一下冗余磁盘阵列RAID,使用奇偶校验的方式实现冗余,如果一个阵列中一块磁盘出现故障,工作磁盘中的数据块与奇偶校验块一起来重建丢失的数据,如下案例,A1,A2, A3是数据块 Ap表示校验数据块(An与Ap可能在同一个磁盘)
    • 例 A1 = 0000 0111 ,A2 = 0000 0101 , A3 = 0000 0000,
    • A1 , A2, A3 做异或操作,得到Ap = 0000 0010
    • 此时 A2 出现问题,我们可以通过A1, A3 与Ap 的异或进行重建: A1 XOR A3 XOR Ap = 0000 0101
RAID总结
RAID类型访问速度数据可靠性磁盘利用率
ARID0很快很低100%
ARID1很慢很高50%
ARID10中的很高50%
ARID5较快很高(N-1)/N
ARID6较快很高(N-2)/N
  • 解决问题:

  • 数据存储容量问题:RAID用多块磁盘组成存储阵列,例如RAID 5 可以扩大N-1倍

  • 数据读写速度:将数据并发写入 N份磁盘,写入速度明显提升,同时读取也是一样,但是并不能提升N倍,因为机械硬盘延迟主要是用来寻址的时间,数据真正读写时间只占一小部分。

  • 数据可靠性使用RAID 10,RAID 5, RAID 6,由于数据冗余存储,或者存储校验信息,某一块磁盘损坏,可以通过其他磁盘数据,或者校验数据,将丢失数据还原。

  • RAID可以看成是垂直伸缩,一台计算机集成更多磁盘,实现数据更大规模,更安全可靠存储以及更快的范问速度。

  • 将RAID思想原理应用到分布式服务器上,吧每一台服务器看成是磁盘中的一个,那么就形成了分布式存储,Hadoop分布式文件系统和HDFS的架构思想。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/310245.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.NET开源工具类库:Masuit.Tools

【开源框架】| 通用工具类库这是恰童鞋骚年的第223篇原创文章本文介绍一个我的同事【懒得勤快】(人称勤快哥,我们叫他骚哥)写的一个.NET开源工具类库项目,包含一些常用的操作类,大都是静态类,加密解密&…

[Java基础]字节,字符打印流

代码如下: package PrintWriterPack;import java.io.FileNotFoundException; import java.io.PrintWriter;public class PrintWriterDemo {public static void main(String[] args) throws FileNotFoundException {PrintWriter pw new PrintWriter("D:\\Java…

javaI/O包中的包装模式

设计模式解析–适配器模式 对适配器模式功能比较好理解,就是讲一个类的接口换成客户端所能接受的另外一个接口,从而使两国接口不匹配而无法在一起工作的两个类能在一起工作。 适配器的结构 适配器UML图如下 Target(目标接口)&…

DevOps vs. Agile:它们有什么共同点?

导语DevOps与Agile有很多不同,但它们之间仍可发现很多共同点,这篇文章为读者揭晓。正文DevOps和Agile之间有着明显的关系。Agile是方法论,Scrum是框架,并DevOps随着看板也落在了Agile的“伞”下。精益,大规模的Scrum&a…

[Java基础]Properties

代码如下: package PropertiesPack;import java.util.Properties; import java.util.Set;public class PropertiesDemo01 {public static void main(String[] args){Properties prop new Properties();prop.put("001","Tom");prop.put("002",&…

空心点_空心砖的新玩法,看完大开眼界

我们所见的空心砖大都在建筑工地上常见的有水泥空心砖和粘土空心砖特点是轻质、环保、保温和隔音如此常见的空心砖仅仅是只为建筑而生吗不是,不管是古朴砖红色空心砖,还是高冷的水泥空心砖他们可以演绎不同的角色甚至让每个渴望回归本真的我们&#xff0…

IO与零拷贝

IO与零拷贝 零拷贝基本介绍 零拷贝时网络编程的一个关键优化点在Java程序中,常用的零拷贝又mmap(内存映射)和sendFile。那么在OS中的设计时如何,我们需分析mmap和sendFile对比最后通过案例分析 用户进程与操作系统关系 我们先…

从堆里找回“丢失”的代码

前言 前一阵子,使用小乌龟(TortoiseGit)提交代码的时候,错误的 Revert 了部分代码,本文记录了找回这部分代码的过程。文章标题致敬张银奎老师《格蠹汇编》的第一章 —— 从堆里抢救丢失的博客。说明: 本文的…

[Java基础]线程基础与实现多线程

代码如下&#xff1a; package MyThreadPack;public class MyThread extends Thread {Overridepublic void run() {for (int i 0;i<100;i){System.out.println(i);}} }package MyThreadPack;public class MyThreadDemo01 {public static void main(String[] args){MyThrea…

gpio 树莓派3a+_树莓派4上市:性能飙升起售价依然是35美元

旨在通过超实惠方式&#xff0c;鼓励孩子们投身编程事业的奇趣开发套件树莓派&#xff0c;在昨天迎来了Raspberry Pi 4正式开售的消息。新一代树莓派引入64位处理器、802.11ac双频Wi-Fi以及通过HAT的以太网供电(PoE)等新卖点。树莓派Raspberry Pi 4的处理能力是前一代的三倍、多…

入门级微单反性能对比

入门级相机筛选 先说挑选规则 由于微单体型小于单反&#xff0c;所以在机型选择上微单&#xff1e;单反&#xff1b;最好具备翻转屏和触摸屏&#xff1b;机身防抖不是刚需&#xff0c;但能解决小范围抖动情况下稳定问题&#xff1b;自动对焦很重要&#xff0c;眼控对焦是加分…

知识更新越来越快,但是学习起来越来越困

大家好&#xff0c;我是Z哥&#xff0c;先祝大家节日快乐。不知道这个假期你打算出门吗&#xff1f;Z哥我是打算不出远门了&#xff0c;怕死&#xff0c;哈哈。索性好好宅家里学习&#xff0c;强化一下自己。相信大家也感受到了&#xff0c;随着互联网加速了信息的流动速度&…

什么标准规定了aes加密_Python 爬虫进阶必备 | 关于某租房网站数据加密的分析(送两本 Python 书)...

关于某租房网站数据加密的分析aHR0cHM6Ly93d3cubWFvbWFvenUuY29tLw抓包分析先看看这个网站的首页数据可以看到首页的 html 是压缩的&#xff0c;但是格式化之后没有看到需要的首页数据。过滤 xhr 请求看到一个 index.json的请求可以看到这个请求的请求参数以及返回值都是密文返…

[Java基础]线程同步之卖票案列分析

案列: 卖票。 需求: 某电影院目前正在上映国产大片&#xff0c;共有100张票&#xff0c;而它有3个窗口卖票&#xff0c;请设计一个程序模拟该电影院卖票。 代码如下: package SellTicketPack;public class SellTicket implements Runnable{private int tickets 100;Overrid…

sap 标准委外和工序委外_SAP FICO零基础学习_0035_标准成本估算-主数据-物料主数据...

前辈的第35堂课&#xff1a;谢谢大家的喜欢和关注噢~这里的“前辈”其实指的是给我讲课的前辈啦&#xff0c;我不是前辈噢&#xff0c;我只是一个刚刚接触FICO的小白&#xff0c;跟大家分享前辈给我讲的东西。因为刚接触&#xff0c;学习的内容比较简单~有基础的小伙伴可以去看…

[Java基础]线程安全的类

package ThreadDemoPack01;import java.util.*;public class ThreadDemo01 {public static void main(String[] args){StringBuffer sb new StringBuffer();//线程安全StringBuilder sb2 new StringBuilder();//线程不安全Vector<String> v new Vector<String>(…

数据结构与算法-- 八皇后问题(多种实现方案)

八皇后问题解法一(排列筛选法) 本篇我们承接上一篇中的思想&#xff0c;想到了一个经典的算法题&#xff0c;八皇后问题&#xff1a;题目&#xff1a;在8*8的国际象棋上摆放8个皇后&#xff0c;使得其互相不能攻击&#xff0c;即任意两个换后不能在同一行&#xff0c;同一列&a…

Blazor WebAssembly 3.2.0 正式起飞,blazor 适合你吗?

最近blazor更新很快&#xff0c;今天在官方博客上发布了Blazor WebAssembly 3.2.0 RC&#xff1a;https://devblogs.microsoft.com/aspnet/blazor-webassembly-3-2-0-release-candidate-now-available/ &#xff0c;这是最后一次预览版了&#xff0c;功能开发都已经完成。5.19的…

中获取文件名不要扩展名_如何批量修改文件名,3s时间够不够

?点击关注Excel表哥公众号上一篇推文我们介绍了如何批量获取同一文件夹下所有的文件名。▲点此图片回顾很多读者获取到这些文件名之后的一种工作情形就是需要批量或者有针对性地修改这些文件的名称。那么但凡是这类需要批量操作的重复工作&#xff0c;Excel擅长。还是以上篇推…

数据结构与算法--死磕二叉树

死磕二叉树 近一年都比较关注算法相关的知识&#xff0c;也刷了不少题&#xff0c;之前的文章中大多也是算法相关的文章&#xff0c;但是感觉每次遇到树相关的题型都不能应对自如&#xff0c;因此还是有必要在相关知识上下功夫&#xff0c;因此有此次总结&#xff0c;以下是所…