热门标签 | 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的持久化存储策略。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • vue使用
    关键词: ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
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社区 版权所有