论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
软件与程序人生
›
后端开发
›
Java
›
机械硬盘与固态硬盘的适用场景
机械硬盘与固态硬盘的适用场景
尚未崩坏
金牌会员
|
2023-4-9 22:24:09
|
显示全部楼层
|
阅读模式
楼主
主题
959
|
帖子
959
|
积分
2877
之前一直以为固态硬盘各方面都比机械硬盘性能高,所以首选固态硬盘,直到看了极客时间-深入浅出计算机组成原理中硬盘相关章节的内容,才发现固态硬盘原来是有缺点的,所以这里来做一个总结。
机械硬盘(HDD)
机械硬盘由以下几个部分组成:
盘面
:盘面(盘片)上有一层磁性涂层,数据就是存储在这个磁性的涂层上,一个盘面在正反两面都有磁性涂层。盘面中央有一个可以旋转的主轴,主轴可以使盘片以固定的旋转速率进行旋转,我们看到磁盘标注的每分钟多少转(RPM , Revolution Per Minute)指的就是这个旋转速率,比如7200转,表示一分钟可以旋转7200下:
(注:图片来自极客时间-深入浅出计算机组成原理)
一个盘面又可以划为多个扇区和多个磁道。
磁道
:一个盘片可以划分为多个同心圆,每一个圆环就叫做磁道,可以理解为是盘片上的圆形环道:
扇区
:每个磁道又可以分为一个个扇区,也就是磁道上的一个弧段:
柱面
:上下平行的一个个盘面的相同扇区组成的部分,称作一个柱面。
(注:图片来自极客时间-深入浅出计算机组成原理)
磁头
:用于从盘面读取数据传输到总线,一个盘面有正反两面,正反两面都会有一个磁头。
传动臂(悬臂)
:与磁头相连接,通过沿着半径轴前后移动传动臂,可以将磁头定位到每一个磁道上,读取存储的数据。
磁盘是由一个或者多个平行叠放在一起的盘片组成的,将它们封装在一个密封的包装内,整个装置称为磁盘驱动器,也就是我们常说的磁盘。
磁盘以扇区为大小进行数据读写,数据读写的耗时主要有以下几部分:
寻道时间
:首先传动臂需要将磁头定位到包含目标扇区的磁道上,移动传动臂所需的时间称为寻道时间,它依赖于磁头当前所在的位置以及传动臂在盘面上移动的速度。
旋转时间
:将磁头定位到目标扇区所在的磁道后,需要等待目标扇区的第一个位旋转到磁头下,它依赖于磁盘的旋转速率。
从数据读取步骤当中可以看出,如果我们将数据进行顺序存放,尽可能将数据放在同一个扇区或者是一个柱面,这样只需旋转一次盘面,进行一次寻道,即可读取出内容,这也是顺序读写比随机读写性能高的原因。
固态硬盘(SSD)
固态硬盘是一种基于闪存的存储技术,由半导体存储器构成,没有移动的部件,不需要像机械硬盘一样进行寻道,所以在顺序写以及随机写的性能上相比机械硬盘都要高,但是它的耐用性缺比较差,接下来就看下SSD硬盘的耐用性为何差。
固态硬盘是有多个裸片叠在一起的:
(注:图片来自极客时间-深入浅出计算机组成原理)
一张裸片上可以放多个平面(Plane),一个平面上又会划分为多个块(Block),一个块的大小通常在几百KB到几MB,一个块里会划分为多个页(Page),一个页的大小通常是4KB:
(注:图片来自极客时间-深入浅出计算机组成原理)
SSD硬盘写入的基本单位为页,
按页进行数据写入
,但是它不能像机械硬盘一样直接通过覆盖进行写入,如果某一页已经写入过数据,需要被擦除后才可以重新写入数据,而且SSD硬盘是
按块进行擦除的
,也就是说如果某个页的数据被删掉还不能直接对页进行擦除,需要等待这个页所在的块整个被擦除才可以重新写入数据,而每一个块的擦除次数是有限的,当达到一定的擦除次数容易损坏。
举个例子
假设白色代表这个页未写入过数据,绿色代表这个页写入了有效数据,红色代表之前写入了有效数据后来数据被删除:
首先在某些空白页内写入了一些数据,写入数据的页变为绿色:
删除一部分数据,由于SSD需要按块擦除,所以某个块内的页如果既有有效数据又有删除数据,被删除的那部分数据会先标记为删除状态此时数据并未真正删除:
当某个块内的所有页都被标记为已删除,此时这个块就可以被擦除,这个块内的页就恢复成了白色:
假如删除的数据不连续,分散在各个块内,由于红色的页在被擦除之前不能写入数据,所以这些红色的页看起来类似磁盘碎片,既不能清理又不能写入数据,到达一定程度时可能没有合适的空白页进行数据写入,所以这时候需要做一次类似于磁盘碎片整理的工作,找一个红色页最多的块,将里面绿色页的数据移动到另外一个块中,然后将整个红色页所在的块进行擦除:
总结
机械硬盘可能更适合于写多(顺序写)读少的场景,固态硬盘更适合于读多写少的场景,不过也不能一概而论,最终还是要根据实际的应用场景来定。
参考
【极客时间-徐文浩】深入浅出计算机组成原理
《深入理解计算机系统》
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
尚未崩坏
金牌会员
这个人很懒什么都没写!
楼主热帖
读高性能MySQL(第4版)笔记01_MySQL架 ...
SQL Server向表中插入数据
鸿蒙DevEco Studio3.0——开发环境搭建 ...
容器开发运维人员的 Linux 操作机配置 ...
Redis命令手册
Webpack的使用
慢SQL,压垮团队的最后一根稻草! ...
.NET现代化应用开发 - CQRS&类目管理代 ...
2022-8-17 mysql 第三天
Triple 协议支持 Java 异常回传的设计 ...
标签云
CIO
存储
服务器
快速回复
返回顶部
返回列表