磁盘类型与IOPS性能指标

目录

1.磁盘的访问模式

2.磁盘分类

2.1 HDD机械磁盘

2.1.1 机械磁盘性能

2.1.2 IOPS

2.1.3 提升IOPS性能手段

2.1.4 RAID技术

RAID 0

RAID 1

RAID 5

RAID 6

RAID 10

RAID 50

RAID总结

2.2 SSD固态硬盘

2.2.1 查看磁盘调度算法

2.2.2 修改磁盘调度算法

2.2.3 参数innodb_flush_neighbors

2.2.4 参数innodb_log_file_size

2.2.5 SSD选择

3.文件系统与操作系统


1.磁盘的访问模式

顺序、随机访问严格意义上说是逻辑的

2.磁盘分类

左边是HDD机械磁盘,右边是SSD固态硬盘,mysql一般要用SSD

2.1 HDD机械磁盘

2.1.1 机械磁盘性能

机械磁盘顺序访问性能好,100M/s的速度叫做带宽(磁盘吞吐率)

机械磁盘随机访问性能较差,每次随机读都会去旋转定位

2.1.2 IOPS

        IOPS(Input/Output Operations Per Second)即每秒处理IO的能力,用来形容随机访问性,数据库比较多的是随机访问,通过B+tree索引定位是比较随机的,如果是顺序的话通常来说是扫描,比如join,但是mysql大部分用作OLTP系统,所以大部分看重IOPS性能,机械硬盘7200转/分钟的IOPS是7200/60=120。

        每次IO可以4k、8k、16k甚至1M都可以,上面的图 4KB Random Write-MB/s Intel x25-E 64G(SLC)换算成IOPS是1MB/4KB*48=12288

        一般的磁盘1次IO是4KB(块大小,业界默认),mysql中innodb_page_size(块大小)是16K,所以IOPS需要除以4

2.1.3 提升IOPS性能手段

 

raid和共享存储设备都是将多块盘组成一个逻辑设备 ,raid对IOPS性能提升非常有限

2.1.4 RAID技术

RAID(Redundant Array of Independent Disks)即独立磁盘冗余阵列,RAID技术将多个单独的物理硬盘以不同的方式组合成一个逻辑硬盘,从而提高了硬盘的读写性能和数据安全性。

RAID 0

条带化(数据分块)但没有冗余,提供较高的读写性能。

  • 优点:可以提高读写速度,对于需要处理大型文件的应用程序非常有用。
  • 缺点:不提供数据冗余,一旦硬盘出现故障,所有数据都将丢失。
  • 适用场景:适用于对数据冗余要求不高的应用,如游戏、视频编辑、图形处理等。
RAID 1

又称镜像(Mirror),数据同时一致写到主硬盘和镜像硬盘,提供容错能力。

  • 优点:提供了良好的数据冗余和保护,可以容忍一个硬盘的故障,数据仍然可以从其他硬盘中恢复。
  • 缺点:需要使用更多的硬盘以实现数据冗余,读写性能可能会受到影响。
  • 适用场景:适用于对数据可靠性要求较高的场景,如数据库、文件服务器等。
RAID 5

条带化加分布式奇偶校验,提供数据冗余和读取性能,RAID 5是最常用的RAID方式之一。

  • 优点:提供了良好的数据冗余和性能,可以容忍一个硬盘的故障,且读取性能较高。
  • 缺点:写入性能可能受到影响,且在发生故障时进行重建需要较长时间。
  • 适用场景:适用于多读少写的应用,如Web服务器、文件共享等。
RAID 6

类似于RAID 5,但提供更高级别的容错能力。

  • 优点:提供了更好的数据冗余和可靠性,可以容忍两个硬盘的故障。
  • 缺点:需要使用更多的硬盘以实现更高的数据冗余,写入性能可能会受到影响。
  • 适用场景:适用于需要高可靠性和数据冗余的应用,如金融和医疗领域。
RAID 10

将镜像和条带进行两级组合的RAID级别,第一级是RAID1镜像对,第二级为RAID 0,提供较高的容错能力和读写性能。RAID10也是一种应用比较广泛的RAID级别。

  • 优点:提供了较好的性能和数据冗余,可以容忍一个或多个硬盘的故障。
  • 缺点:需要使用更多的硬盘,成本较高。
  • 适用场景:适用于需要高性能和可靠性的应用,如虚拟化服务器、数据库等。
RAID 50

RAID 5组合成RAID 0,提供较高的性能和容错能力。

  • 优点:提供较高的数据传输速度和系统性能,更高级别的数据冗余,同时发生多个驱动器故障,仍能恢复丢失的数据。
  • 缺点:较高的成本,配置和管理复杂性。
  • 使用场景:适用于需要高性能和更高级别的数据冗余的场景,如大规模数据存储、图形渲染和动画制作、虚拟化环境
RAID总结

RAID级别

最小磁盘数

容错能力

磁盘空间开销

读取速度

写入速度

硬件成本

RAID 0

2

0%

RAID 1

2

单个磁盘

50%

RAID 5

3

单个磁盘

1 / N

RAID 6

4

两个磁盘

2 / N

RAID 10

4

多个磁盘

50%

RAID 50

6

单个磁盘

1 / N

2.2 SSD固态硬盘

2.2.1 查看磁盘调度算法

[root@localhost ~]# cat /sys/block/sda/queue/scheduler 
noop [deadline] cfq

2.2.2 修改磁盘调度算法

[root@localhost ~]# echo cfq > /sys/block/sda/queue/scheduler
[root@localhost ~]# cat /sys/block/sda/queue/scheduler 
noop deadline [cfq] 
[root@localhost ~]# echo deadline > /sys/block/sda/queue/scheduler
[root@localhost ~]# cat /sys/block/sda/queue/scheduler 
noop [deadline] cfq

 是SSD的话,强烈要求使用deadline算法

2.2.3 参数innodb_flush_neighbors

        innodb_flush_neighbors是MySQL InnoDB存储引擎的一个配置参数,用于控制邻近页的刷新行为。它影响了InnoDB在刷新脏页到磁盘时的写入策略。

        在 InnoDB 中设置 innodb_flush_neighbors这个参数的值为 0,来规定 MySQL只刷当前脏页,MySQL 8 这个值默认是 0,MySQL 5.7默认是1

innodb_flush_neighbors参数的取值可以是0或1,具体含义如下:

当innodb_flush_neighbors设置为1时,InnoDB会尽量按照邻近页的顺序进行刷新,以提高顺序写入的效率。这意味着InnoDB会将邻近的脏页一起刷新到磁盘,而不是单独刷新每个脏页。
当innodb_flush_neighbors设置为0时,InnoDB将按照页号的顺序进行刷新,而不考虑邻近页。这可能导致更多的随机写入操作,但在某些场景下可能适用。

2.2.4 参数innodb_log_file_size

innodb_log_file_size参数是用来设置InnoDB存储引擎的日志文件大小的。修改此参数后重启mysql才能生效。在MySQL中,日志文件用来记录数据库的变更操作,包括事务的提交和回滚。在设置innodb_log_file_size参数时,需要考虑以下几个因素:

  • 日志文件大小的合理性:日志文件大小太小会导致频繁的切换和写入操作,降低数据库的性能,而日志文件大小太大则会占用较多的磁盘空间。
  • 磁盘空间的可用性:在调整日志文件大小时,需要确保磁盘空间足够存储新的日志文件。

根据服务器性能配置来设置,innodb_log_file_size=4G等等

2.2.5 SSD选择

推荐intel

3.文件系统与操作系统

提高挂载性能

mount -o noatime,nobarrier /dev/sdb1 /data

  • noatime参数:这个选项可以阻止在文件被访问时更新文件的访问时间,这可能会稍微提高文件访问的性能,因为不需要更新inode
  • nobarrier参数:这个选项主要用于“barrier”的用途,barrier是一种同步数据写入到磁盘和提交数据到日志的方法。在某些情况下,例如电源故障,可能会导致数据丢失,因此需要barrier。但是,在使用某些SSD或RAID配置时,可以禁用barrier以获得更好的性能。

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

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

相关文章

【随笔】Git 高级篇 -- 提交的技巧(下) cherry-pick commit --amend(十九)

💌 所属专栏:【Git】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢迎大…

【架构七】Hadoop

什么是Hadoop? Hadoop是一个存储系统计算框架的软件大数据处理框架。 Hadoop的核心,说白了就是HDFS和MapReduce,HDFS为海量数据提供了存储,而MapReduce为海量数据提供了计算框架。HBase是一个分布式的、面向列的开源数据库。属于Nosql。 …

day11 java不同对象的关联与内存分析 JavaBean用途及讲解 import导入包

不同对象的关联与内存分析 内存图: 对象的属性是另一个对象时,在堆内存内该属性对应的值是另一个对象的首地址(指向另一个堆内存内另一个对象),两对象建立了联系,可以根据箭头间接调用。 JavaBean…

linux基础篇:Linux中磁盘的管理(分区、格式化、挂载)

Linux中磁盘的管理(分区、格式化、挂载) 一、认识磁盘 1.1 什么是磁盘 磁盘是一种计算机的外部存储器设备,由一个或多个覆盖有磁性材料的铝制或玻璃制的碟片组成,用来存储用户的信息,这种信息可以反复地被读取和改写…

蚁剑修改特征性信息

前言 我们首先得知道蚁剑的流量特征: 编码器和解码器的特征:蚁剑自带的编码器和解码器具有明显的特点,可以通过更改配置文件来达到流量加密的目的1。例如,蚁剑支持多种编码方式,如base64、chr、rot13等,这…

41.基于SpringBoot + Vue实现的前后端分离-校园网上店铺管理系统(项目 + 论文PPT)

项目介绍 二十一世纪互联网的出现,改变了几千年以来人们的生活,不仅仅是生活物资的丰富,还有精神层次的丰富。本课题研究和开发校园网上店铺,让安装在计算机上的该系统变成管理人员的小帮手,提高校园店铺商品销售信息处…

一步到位,MacBook 轻松卸载 App 的简易指南

尽管 MacBook 以其精致外观、卓越效能以及高效的 macOS 操作系统深受广大用户的青睐,但对于初次接触或习惯 Windows 系统的用户而言,如何在 MacBook 上简单而彻底地删除应用程序似乎成了一项挑战。当面临磁盘空间不足或需要彻底摆脱冗余应用时&#xff0…

hexo接入github Discussions评论系统

评论存储仓 可以是你的博客项目的(github)仓库,也可以单独新建一个评论存储仓库。 我的博客项目在gitee上,就以新建存储仓为例: 使用Discussions评论系统必须开通Discussions模块! 安装giscus插件 https://github.com/apps/…

蓝桥杯刷题-09-三国游戏-贪心⭐⭐⭐

蓝桥杯2023年第十四届省赛真题-三国游戏 小蓝正在玩一款游戏。游戏中魏蜀吴三个国家各自拥有一定数量的士兵X, Y, Z (一开始可以认为都为 0 )。游戏有 n 个可能会发生的事件,每个事件之间相互独立且最多只会发生一次,当第 i 个事件发生时会分别让 X, Y,…

oracle 19c xtts迁移

一、环境检查 1.检查数据库时区 select dbtimezone from dual; 检查一致 2.检查数据库时间 select to_char(sysdate, yyyy-mm-dd hh24:mi:ss) from dual; 检查一致 3.检查两边字符集 set linesize 120 select * from nls_database_parameters where parameter like %CHAR…

MySQL进阶-----SQL优化(插入和主键优化)

目录 前言 一、插入数优化(insert) 1.insert插入的优化方案 2 大批量插入数据 二、主键优化 1.数据组织方式 2. 页分裂 3. 页合并 4. 索引设计原则 前言 本期我们就正式进入到下一个章节的学习了,也就是SQL优化,前面我们…

运动健身选什么耳机好?推荐五款好用的运动蓝牙耳机

运动蓝牙耳机相比传统的蓝牙耳机佩戴起来更为舒适,这使它们成为旅途和运动健身的理想选择。我们购买了多款运动蓝牙耳机并进行了测试,现在分享几个选购运动耳机的建议和几款好用的运动耳机给您。 一、选择有保障的大品牌耳机 我们在挑选蓝牙耳机的时候…