互联网时代下机械硬盘的发展史(下)

简介: 互联网时代下机械硬盘的发展史

Partial Stroking:根据场景提升性能

100 IOPS,难以满足现在互联网海量高并发请求。所以,DB都会将数据存在SSD。

但20年前,没有现在这么便宜的SSD硬盘。DB数据只能存放在HDD。


即便如今数据中心用的HDD,也是7200r,要更快随机访问速度,会选择SSD。但当时,SSD非常贵,还没能商业化。硬盘厂商们在不断研发转得更快的硬盘。数据中心往往用10000转,乃至15000转的硬盘。

直到2010年,SSD开始逐步进入市场,西数还在尝试研发20000转硬盘。转速更高、寻道时间更短的机械硬盘,才能满足实际DB需求。


但10000r,乃至15000r硬盘也更贵,想节约成本,提高性价比,就得想它法。Google早年用家用PC乃至二手硬件,通过软件层面设计解决了可靠性和性能。那有办法提高机械硬盘的IOPS吗?这就是Partial Stroking或者Short Stroking,“缩短行程”技术。

既然访问一次数据的时间:“平均延时+寻道时间”,只要能缩短其一,就能提升IOPS!


一般 硬 盘 的 寻 道 时 间 > 平 均 延 时 硬盘的寻道时间 > 平均延时硬盘的寻道时间>平均延时,如何缩短平均寻道时间?

最极端的:不需要寻道,即将所有数据都放在一个磁道。比如始终把磁头放在最外道磁道。寻道时间就基本为0,访问时间就只剩平均延时。

IOPS就变成:

1s / 4ms = 250 IOPS

但只用一个磁道,能存的数据就很有限了!可能我们还不如把这些数据直接都放到内存呢!

所以,实践可只用1 / 2 1/21/2或1 / 4 1/41/4磁道,即最外面1/4或1/2的磁道。

如此,硬盘可使用的容量可能变成1/2或1/4。但寻道时间也变成1/4或1/2,因为悬臂需移动的“行程”也变成原来1/2或者1/4,IOPS大幅提升!


比如7200r硬盘,正常平均延时4.17ms,寻道时间9ms。原本IOPS:

1s / (4.17ms + 9ms) = 75.9 IOPS

若只用其中1/4磁道,则IOPS变成:

1s / (4.17ms + 9ms/4) = 155.8 IOPS

IOPS提升一倍,和块15000r硬盘性能差不多。但这时硬盘可用空间也只有原1/4。所以,这样通过软件去格式化硬盘,只保留部分磁道让系统可用的情况,可大大提升硬件性价比。

总结

机械硬盘的硬件主要由:盘面、磁头和悬臂组成。

数据在盘面上的位置,可通过磁道、扇区和柱面来定位。

实际的一次对于硬盘的访问,需要把盘面旋转到某一个“几何扇区”,对准悬臂的位置。然后,悬臂通过寻道,把磁头放到我们实际要读取的扇区上。


受制于机械硬盘的结构,对随机数据的访问速度,就要包含旋转盘面的平均延时和移动悬臂的寻道时间。通过这俩时间,能计得机械硬盘IOPS。


7200转机械硬盘的IOPS,只能做到100。早期没有SSD,所以想出Partial Stroking这个浪费存储空间,但能缩短寻道时间以提高硬盘IOPS的方案。


目录
相关文章
|
网络安全 Python
这个错误是由于在将字符串类型的值转换为字典类型时出现了问题
【2月更文挑战第20天】这个错误是由于在将字符串类型的值转换为字典类型时出现了问题
113 1
|
数据采集 监控 异构计算
transformers+huggingface训练模型
本教程介绍了如何使用 Hugging Face 的 `transformers` 库训练一个 BERT 模型进行情感分析。主要内容包括:导入必要库、下载 Yelp 评论数据集、数据预处理、模型加载与配置、定义训练参数、评估指标、实例化训练器并开始训练,最后保存模型和训练状态。整个过程详细展示了如何利用预训练模型进行微调,以适应特定任务。
817 3
|
8月前
|
人工智能 图形学
PhysGen3D:清华等高校联合推出,单图秒变交互式3D场景
PhysGen3D是清华等高校联合开发的创新框架,通过单张图像重建3D场景并模拟物理行为,实现从静态图像到动态交互的突破性转换。
236 15
PhysGen3D:清华等高校联合推出,单图秒变交互式3D场景
|
Ubuntu 安全 Linux
Windows——安装Ubuntu 18.04 LTS
Windows——安装Ubuntu 18.04 LTS
376 1
Windows——安装Ubuntu 18.04 LTS
|
机器学习/深度学习 算法 数据可视化
UniApp手机滑块验证组件代码生成器
UniApp手机滑块验证组件代码生成器
718 1
|
JavaScript
jQuery 选择器
jQuery 选择器
84 3
|
NoSQL Linux 网络安全
基于 centOS7 的 redis 安装
基于 centOS7 的 redis 安装
312 1
|
SQL 数据处理 数据库
专坑同事的SQL写法:性能杀手揭秘
【8月更文挑战第29天】在日常的数据库开发与维护工作中,编写高效、清晰的SQL语句是每位数据工程师的必修课。然而,不当的SQL编写习惯不仅能降低查询效率,还可能给同事的工作带来不必要的困扰。今天,我们就来揭秘八种常见的“专坑同事”SQL写法,助你避免成为那个无意间拖慢整个团队步伐的人。
122 1
|
机器学习/深度学习 人工智能 文字识别
一种基于YOLOv8改进的高精度红外小目标检测算法 (原创自研)
【7月更文挑战第2天】 💡💡💡创新点: 1)SPD-Conv特别是在处理低分辨率图像和小物体等更困难的任务时优势明显; 2)引入Wasserstein Distance Loss提升小目标检测能力; 3)YOLOv8中的Conv用cvpr2024中的DynamicConv代替;
1296 4
|
Web App开发 缓存 JavaScript
【开发工具】【windows】Visual Studio Code(VS Code)远程Linux服务器环境搭建——SSH篇
【开发工具】【windows】Visual Studio Code(VS Code)远程Linux服务器环境搭建——SSH篇
1154 0
【开发工具】【windows】Visual Studio Code(VS Code)远程Linux服务器环境搭建——SSH篇