大部分程序员都搞错了,硬盘真的很慢么?

商务办公 新闻
缓存是每个程序员所熟知的,相信大家对缓存都已经不陌生了,缓存使用传输更快的介质来存储更加频繁读写的数据。在程序员面试中,我们常常会这样回答,因为硬盘的读写速度太慢,事实真的是如此么?

 缓存是每个程序员所熟知的,相信大家对缓存都已经不陌生了,缓存使用传输更快的介质来存储更加频繁读写的数据。在程序员面试中,我们常常会这样回答,因为硬盘的读写速度太慢,事实真的是如此么?

[[278784]]

虽然现在已经又SSD硬盘,但是由于SSD硬盘价格昂贵,在服务器领域,机械硬盘还是横行霸道,所以,今天我们讨论的,是机械硬盘。这十几年来,硬盘的容量已经翻了好几番,我记得我读书那会,能够配一个128G的硬盘已经非常奢侈了,而今天,家用的电脑基本都是TB级别起步的了。但是硬盘的读写速度并没有多大的提升,这很大程度是与硬盘的结构息息相关的。在一个机械硬盘里面,要完成数据读写,需要经历这三步:寻道、旋转、数据读取。

寻道

我们的机械硬盘,就像一个大圆饼一样,数据是一圈一圈地存在,读取数据地时候,需要将探头旋转到对应的磁道,这是一个机械运动的过程,尽管现在的探头越来越精致,速度越来越快,学过物理的同学都知道,从静止的物体运动起来跟加速度这些都有关系,考虑到探头的耐用性,无法太快,现在的大部分磁盘寻道时间都要花2ms到15ms。

旋转

当我们把探头调整到对应磁道之后,还需要去对应的地方去获取数据。我们的每一个磁道的数据都是一个大圆圈,所以需要旋转硬盘到合适的位置。旋转的耗时取决于旋转的转速,这就是市面上我们经常看到的磁盘转速参数,5400转或者7200转甚至更高,一般5400转的硬盘,也需要4ms左右才能旋转到对应的扇区。


数据读取

数据读取其实非常的快,快到可以忽略不记。

随机读写与顺序读写

综上所述,一个机械硬盘,如果要读写的数据不在对应的磁道上,那么最少也要花费5ms去跑到对应的地址,所以,我们常说的,机械硬盘速度慢,更多的是特指机械硬盘在随机读写的速度慢。为了更好的利用磁盘,完成更大的吞吐,在很多大型的系统,都会使用追加写来减少磁盘的寻道跟旋转次数。例如由领英著名的消息队列卡夫卡,或者谷歌开源的存储系统LevelDB,都是使用追加写数据来达到更大的性能。

事实上,硬盘的顺序读写速度非常地快,我们常说的慢,指的是随机读写,你学到了吗?欢迎大家关注我,共同学习,共同进步。大家的支持是我继续唠嗑的动力。

责任编辑:华轩 来源: 今日头条
相关推荐

2022-05-18 09:49:26

MySQLID数据库

2019-09-12 09:56:13

程序员技能开发者

2020-04-15 16:07:01

程序员技术数据

2013-04-08 15:39:15

程序员

2021-11-30 22:59:28

程序员IT架构师

2021-10-14 06:51:54

SpringSecurityJWT

2019-08-09 11:25:01

Java虚拟机Java程序员

2019-07-26 08:33:28

HTTP服务端负载均衡

2020-03-03 18:59:47

CDN缓存程序员

2019-11-24 19:34:04

HTTP长连接短连接

2019-06-12 10:35:49

程序员高效工具开源

2021-08-06 17:44:45

云安全云计算网络安全

2018-04-07 15:45:47

程序员技能沟通

2020-04-03 08:42:08

Servelt3程序员Tomcat

2011-11-09 09:59:21

云计算IT管理

2016-12-12 18:45:08

Data Mining大数据

2013-07-30 11:15:35

NASA云计算安全云计算

2021-03-15 08:02:43

线性结构PriorityQue

2019-09-23 20:00:34

MySQL数据库程序员

2015-06-23 16:14:42

程序员优秀程序员
点赞
收藏

51CTO技术栈公众号