磁盘类型与IOPS性能指标

news2024/10/7 6:50:15

目录

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.coloradmin.cn/o/1577604.html

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

相关文章

lottery-攻防世界

题目 flag在这里要用钱买,这是个赌博网站。注册个账号,然后输入七位数字,中奖会得到相应奖励。 githacker获取网站源码 ,但是找到了flag文件但是没用。 bp 抓包发现api.php,并且出现我们的输入数字。 根据题目给的附…

DNFOMP:杂乱环境中自动驾驶汽车导航的动态神经场最优运动规划器

DNFOMP:杂乱环境中自动驾驶汽车导航的动态神经场最优运动规划器 附赠自动驾驶学习资料和量产经验:链接 摘要 本文介绍了DNFOMP:杂乱环境中自动驾驶汽车导航的动态神经场最优运动规划器。动态变化环境中的运动规划是自动驾驶中最复杂的挑战之…

RA8900CE计时芯片介绍及开发方案

计时芯片 就是一个需要连接32.768k晶振的RTC芯片 规格书阅读 首先我们先读懂这个芯片是怎么用的。 引脚表 封装是这样的,一共10个引脚。 基本上一看这个引脚表就知道大概。 T1和T2是工厂测试的,不用管。 SCL和SDA是IIC通讯用的。 FOUT和FOE就是链…

文献速递:深度学习胰腺癌诊断--胰腺肿瘤的全端到端深度学习诊断

Title 题目 Fully end-to-end deep-learning-based diagnosis of pancreatic tumors 胰腺肿瘤的全端到端深度学习诊断 01 文献速递介绍 胰腺癌是最常见的肿瘤之一,预后不良且通常是致命的。没有肿瘤的患者只需要进一步观察,而胰腺肿瘤的诊断需要紧…

C/C++中局部变量static用法实例

1. 普通局部变量存储于进程栈空间,使用完毕会立即释放,静态局部变量使用static修饰符定义,即使在声明时未赋初值,编译器也会把它初始化为0,并且静态局部变量存储于进程的全局数据区,即使函数返回&#xff0…

用three.js做一个3D汉诺塔游戏(下)

本文由孟智强同学原创。 接上期:《用three.js做一个3D汉诺塔游戏(上)》 在上一期,我们成功地搭建了基础的 3D 场景。在本期中,我们将对场景进行优化,使其在视觉上更加真实,并为场景中的物体添加…

golang es查询的一些操作,has_child,inner_hit,对索引内父子文档的更新

1.因为业务需要查询父文档以及其下子文档,搞了很久才理清楚。 首先还是Inner_hits,inner_hits只能用在nested,has_child,has_parents查询里面 {"query": {"nested": {"path": "comments","query": {"match…

vulhub之fastjson篇-1.2.27-rce

一、启动环境 虚拟机:kali靶机:192.168.125.130/172.19.0.1(docker地址:172.19.0.2) 虚拟机:kali攻击机:192.168.125.130/172.19.0.1 本地MAC:172.XX.XX.XX 启动 fastjson 反序列化导致任意命令执行漏洞 环境 1.进入 vulhub 的 Fastjson 1.2.47 路径 cd /../../vulhub/fa…

企业IT运维事中故障定位方法及工具

企业IT故障定位指诊断故障直接原因或根因,故障定位有助于故障恢复动作更加有效。故障定位通常是整个故障过程中耗时最长的环节,定位的目标围绕在快速恢复的基础上,而非寻找问题根因,后者由问题管理负责。通常大部分可用性故障&…

GEE案例——小流域汇流计算以缅甸仰光为例(如何绘制除小流域内的河道)

简介 本案例主要介绍如何实现小流域内河流汇流的计算,这里需要用到地形中的坡度以及卷积的计算内容。 流域 流域是指一个地理区域内所有水流都会汇集到同一个主要水体(如河流、湖泊或海洋)的区域。流域由周围山脉、丘陵和地形特征所定义,其中的水流通过降水、融雪和地下…

计算机网络针对交换机的配置

实验 目的 交换机的基本配置,交换机VLAN配置 实验条件 Windows,Cisco packet tracer 实验 内容 交换机的基本配置,交换机VLAN配置 实验 过程 一、交换机的基本配置 进入特权模式 Switch>enable 进入配置模式 Switch#configure ter…

德国SycoTec义齿雕刻机主轴 助力高精密雕铣加工

随着科技的不断进步,义齿加工机械在牙科领域的应用越来越广泛。为了满足市场对高精度、高效率义齿加工设备的需求,SycoTec高速电主轴凭借其卓越的性能和可靠的质量,为CNC四轴、五轴义齿加工设备、五轴联动义齿加工中心、CAM/CAD义齿雕刻机、椅…

算法题中nextInt(),nextLine()的易错陷阱

nextInt()读取空格或回车前的整数 nextLine()读取回车前的一行,空格不会中断读取 陷阱代码如下: public class nextInt {public static void main(String[] args) {Scanner scannernew Scanner(System.in);System.out.println("请输入字符串数组…

C++11可变模板参数:海纳百川的Args

目录 一、可变模板参数的概念及功能 1.1Args的概念与使用 1.2获取args中的参数 二、emplace可变模板参数的实际应用 三、逗号表达式展开参数包 一、可变模板参数的概念及功能 1.1Args的概念与使用 C11的新特性可变参数模板能够让您创建可以接受可变参数的函数模板和类模板…

item_get_app在竞品分析中的应用与效果评估

item_get_app作为淘宝开放平台的重要API接口,为商家在竞品分析中提供了强大的数据支持。在竞争激烈的电商市场中,竞品分析是商家不可或缺的一环,而item_get_app的应用则使得这一分析过程更加高效、精准。通过调用item_get_app接口&#xff0c…

C语言 08 类型转换

一种类型的数据转换为另一种类型的数据&#xff0c;这种操作称为类型转换。 类型转换分为自动类型转换和强制类型转换。 自动类型转换 比如现在希望将一个 short 类型的数据转换为 int 类型的数据&#xff1a; #include <stdio.h>int main(){short s 10;// 直接将s的…

Redis: 配置文件详解(Redis.conf)

文章目录 一、Units二、INCLUDES三、NETWORK四、GENERAL五、SECURITY六、LIMITS 一、Units 单位&#xff0c;配置大小单位&#xff0c;开头定义了一些基本的度量单位&#xff0c;只支持bytes&#xff0c;不支持bit&#xff0c;大小写不敏感 二、INCLUDES 包含&#xff0c;多…

275. 传纸条(DP)

题目描述 小渊和小轩是好朋友也是同班同学&#xff0c;他们在一起总有谈不完的话题。一次素质拓展活动中&#xff0c;班上同学安排坐成一个 m 行 n 列的矩阵&#xff0c;而小渊和小轩被安排在矩阵对角线的两端&#xff0c;因此&#xff0c;他们就无法直接交谈了。幸运的是&…

easyExcel - 按模板导出

目录 前言一、情景介绍二、文档介绍2.1 读取模板2.2 填充模板 三、代码示例3.1 案例一&#xff1a;工资表3.2 案例二&#xff1a;报价单 四、我所遇到的问题 前言 Java-easyExcel入门教程&#xff1a;https://blog.csdn.net/xhmico/article/details/134714025 之前有介绍过如…

人工智能研究生前置知识—Anaconda与python工作环境

人工智能研究生前置知识—Anaconda与python工作环境 python环境管理 python工作环境的管理是需要满足的基本条件&#xff0c;指的是不同的python版本之间的切换。或者说是允许安装不同版本的python 解决&#xff1a;conda是一个跨平台的包管理工具&#xff0c;其环境管理功能允…