热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

磁盘的两个传输速率

温故:在上一篇文章《“磁盘”名字的由来》中给大家带来了两个内容,其一是磁盘的内部构造,我特意拆了一块硬盘给大家看;其二是磁盘
温故:

        在上一篇文章《“磁盘”名字的由来》中给大家带来了两个内容,其一是磁盘的内部构造,我特意拆了一块硬盘给大家看;其二是磁盘的工作原理。今天的这篇文章我想和大家聊一聊了磁盘的传输速率问题。比如说通常,每秒10000转的 SCSI硬盘的内部传输速率的数量级大概在1000MB/s左右。但是为何实际使用硬盘的时候,比如复制一个文件,其传输速率充其量只是每秒几十兆字节呢?这个问题大家有没有想过?这就是今天答疑解惑的重点
 

知新:

        我们一般认为磁盘的传输速率分为两种,分别是内部传输速率和外部传输速率,前者就是影响实际传输速率的重要因素。

一、内部传输速率

        磁盘的内部传输速率指的是磁头读写磁盘时的最高速率。这个速率不包括寻道以及等待扇区旋转到磁头下所耗费时间的影响。它是一种理想情况,即假设磁头读写的时候不需要换道,也不
专门读取某个扇区,而是只在一个磁道上连续地循环读写这个磁道的所有扇区,此时的速率就叫做硬盘的内部传输速率。如果大家看过我写的《计算机网络基础之学习总结(二)》中的第7条“信道容量指的是信道中数据的最大传输速率,它与数据传输速率的区别就在于前者是理论上的最大值,后者是实际传输中的速率”就会发现二者是何其的相似。说到这里,大家可能也就明白了,之所以实际速率和理论速率差了这么多,主要就是因为磁盘的磁盘还要有寻道的时间消耗。

        很好理解,这就像机枪和三八大盖之间的比较一样,同样打1000发子弹对于机枪来说只需要1分钟足矣,但是如果用三八大盖打够1000发子弹可就不合适用分钟来计时了,因为三八大盖的弹匣容量为5发,每5发就要装一次弹,不仅如此,每次打完一枪还要拉栓,就更浪费时间了,这就类似于磁盘的寻道浪费的时间。

三八式步枪

         所以,磁头必须不断地被"打断"去进行换道操作,整体传输速率就会大大降低。实际中一块 10000 转的 SCSI硬盘的实际外部传输速率也只有80MB/s左右。既然发现了问题,就要去解决,怎么解决的呢?为了避免磁头被不断打断的问题,人们发明了RAID 技术,什么是RAID技术?它是独立磁盘冗余阵列的缩写,就是将很多单块的磁盘组合在一起,构成一个磁盘组。让一个硬盘的磁头在换道时,另一个磁盘的磁头在读写。这样的话当很多磁盘联合起来,同一时刻总有某块硬盘的磁头在读写状态而不是都在换道状态,所以 RAID 可以显著提升传输速率。而且这个RAID之间也是可以互相组合的,比如RAID10就是RAID0 和RAID1组合而来。

        如果大家对RAID 这部分感兴趣,可以看我的《服务器的RAID》。

二、外部传输速率

        磁头从盘片上将数据读出,然后存放到硬盘驱动器电路板上的缓存芯片内,再将数据从缓存内取出,通过外部接口传送给主板 上的硬盘控制器。从外部接口传送给硬盘控制器时的传输速率,就是外部传输速率。上面说过因为磁头要被不断地打断去寻道,所以外部接口传输速率无须和磁头传输速率一样,只要满足最终的实际速率即可。最终外部接口的速率通常大于实际使用中磁头读写数据的速率(计入换道的损失)。

        大家对这个小知识有了解即可


推荐阅读
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了Redis中RDB文件和AOF文件的保存和还原机制。RDB文件用于保存和还原Redis服务器所有数据库中的键值对数据,SAVE命令和BGSAVE命令分别用于阻塞服务器和由子进程执行保存操作。同时执行SAVE命令和BGSAVE命令,以及同时执行两个BGSAVE命令都会产生竞争条件。服务器会保存所有用save选项设置的保存条件,当满足任意一个保存条件时,服务器会自动执行BGSAVE命令。此外,还介绍了RDB文件和AOF文件在操作方面的冲突以及同时执行大量磁盘写入操作的不良影响。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 开发笔记:计网局域网:NAT 是如何工作的?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了计网-局域网:NAT是如何工作的?相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Java中包装类的设计原因以及操作方法
    本文主要介绍了Java中设计包装类的原因以及操作方法。在Java中,除了对象类型,还有八大基本类型,为了将基本类型转换成对象,Java引入了包装类。文章通过介绍包装类的定义和实现,解答了为什么需要包装类的问题,并提供了简单易用的操作方法。通过本文的学习,读者可以更好地理解和应用Java中的包装类。 ... [详细]
  • 本文介绍了关于smarty自定义缓存名的解决思路,通过放弃生成缓存,直接生成html的静态页面来提高速度。同时提供了一个参考链接供参考。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 本文介绍了Composer依赖管理的重要性及使用方法。对于现代语言而言,包管理器是标配,而Composer作为PHP的包管理器,解决了PEAR的问题,并且使用简单,方便提交自己的包。文章还提到了使用Composer能够避免各种include的问题,避免命名空间冲突,并且能够方便地安装升级扩展包。 ... [详细]
  • Vagrant虚拟化工具的安装和使用教程
    本文介绍了Vagrant虚拟化工具的安装和使用教程。首先介绍了安装virtualBox和Vagrant的步骤。然后详细说明了Vagrant的安装和使用方法,包括如何检查安装是否成功。最后介绍了下载虚拟机镜像的步骤,以及Vagrant镜像网站的相关信息。 ... [详细]
author-avatar
手机用户2502927925
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有