搜尋
首頁資料庫mysql教程 0. 磁盘读写与数据库的关系

一 磁盘物理结构 (1) 盘片:硬盘的盘体由多个盘片叠在一起构成。 在硬盘出厂时,由硬盘生产商完成了低级格式化(物理格式化),作用是将空白的盘片(Platter)划分为一个个同圆心、不同半径的磁道(Track),还将磁道划分为若干个扇区(Sector),每个扇区可存储1282

一 磁盘物理结构
(1) 盘片:硬盘的盘体由多个盘片叠在一起构成。

在硬盘出厂时,由硬盘生产商完成了低级格式化(物理格式化),作用是将空白的盘片(Platter)划分为一个个同圆心、不同半径的磁道(Track),还将磁道划分为若干个扇区(Sector),每个扇区可存储128×2的N次方(N=0.1.2.3)字节信息,默认每个扇区的大小为512字节。通常使用者无需再进行低级格式化操作。

 

(2) 磁头:每张盘片的正反两面各有一个磁头。

 

(3) 主轴:所有盘片都由主轴电机带动旋转。

 

(4) 控制集成电路板:复杂!上面还有ROM(内有软件系统)、Cache等。

 

二 磁盘如何完成单次IO操作
(1) 寻道
当控制器对磁盘发出一个IO操作命令的时候,磁盘的驱动臂(Actuator Arm)带动磁头(Head)离开着陆区(Landing Zone,美国空间,位于内圈没有数据的区域),移动到要操作的初始数据块所在的磁道(Track)的正上方,这个过程被称为寻道(Seeking),对应消耗的时间被称为寻道时间(Seek Time);

(2) 旋转延迟
找到对应磁道还不能马上读取数据,这时候磁头要等到磁盘盘片(Platter)旋转到初始数据块所在的扇区(Sector)落在读写磁头正下方之后才能开始读取数据,在这个等待盘片旋转到可操作扇区的过程中消耗的时间称为旋转延时(Rotational Latency);

(3) 数据传送
接下来就随着盘片的旋转,磁头不断的读/写相应的数据块,直到完成这次IO所需要操作的全部数据,这个过程称为数据传送(Data Transfer),对应的时间称为传送时间(Transfer Time)。完成这三个步骤之后单次IO操作也就完成了。

根据磁盘单次IO操作的过程,可以发现:
单次IO时间 = 寻道时间 + 旋转延迟 + 传送时间

进而推算IOPS(IO per second)的公式为:
IOPS = 1000ms/单次IO时间

三 磁盘IOPS计算
不同磁盘,它的寻道时间,旋转延迟,数据传送所需的时间各是多少?

1. 寻道时间
考虑到被读写的数据可能在磁盘的任意一个磁道,既有可能在磁盘的最内圈(寻道时间最短),也可能在磁盘的最外圈(寻道时间最长),所以在计算中我们只考虑平均寻道时间。

在购买磁盘时,该参数都有标明,目前的SATA/SAS磁盘,按转速不同,寻道时间不同,不过通常都在10ms以下:

转速

平均寻道时间

15000rpm

2~3ms

10000rpm

3~5ms

7200rpm

8~9ms

2. 旋转延时
和寻道一样,香港服务器,当磁头定位到磁道之后有可能正好在要读写扇区之上,这时候是不需要额外的延时就可以立刻读写到数据,但是最坏的情况确实要磁盘旋转整整一圈之后磁头才能读取到数据,所以这里也考虑的是平均旋转延时,对于15000rpm的磁盘就是(60s/15000)*(1/2) = 2ms。

3. 传送时间
(1) 磁盘传输速率
磁盘传输速率分两种:内部传输速率(Internal Transfer Rate),外部传输速率(External Transfer Rate)。

内部传输速率(Internal Transfer Rate),是指磁头与硬盘缓存之间的数据传输速率,简单的说就是硬盘磁头将数据从盘片上读取出来,然后存储在缓存内的速度。

理想的内部传输速率不存在寻道,旋转延时,就一直在同一个磁道上读数据并传到缓存,显然这是不可能的,因为单个磁道的存储空间是有限的;

实际的内部传输速率包含了寻道和旋转延时,目前家用磁盘,稳定的内部传输速率一般在30MB/s到45MB/s之间(服务器磁盘,应该会更高)。

外部传输速率(External Transfer Rate),是指硬盘缓存和系统总线之间的数据传输速率,也就是计算机通过硬盘接口从缓存中将数据读出交给相应的硬盘控制器的速率。

硬盘厂商在硬盘参数中,通常也会给出一个最大传输速率,比如现在SATA3.0的6Gbit/s,换算一下就是6*1024/8,768MB/s,通常指的是硬盘接口对外的最大传输速率,当然实际使用中是达不到这个值的。

这里计算IOPS,保守选择实际内部传输速率,以40M/s为例。

(2) 单次IO操作的大小
有了传送速率,还要知道单次IO操作的大小(IO Chunk Size),才可以算出单次IO的传送时间。那么磁盘单次IO的大小是多少?答案是:不确定。

操作系统为了提高 IO的性能而引入了文件系统缓存(File System Cache),系统会根据请求数据的情况将多个来自IO的请求先放在缓存里面,然后再一次性的提交给磁盘,也就是说对于数据库发出的多个8K数据块的读操作有可能放在一个磁盘读IO里就处理了。

还有,有些存储系统也是提供了缓存(Cache),接收到操作系统的IO请求之后也是会将多个操作系统的 IO请求合并成一个来处理。

不管是操作系统层面的缓存,还是磁盘控制器层面的缓存,目的都只有一个,提高数据读写的效率。因此每次单独的IO操作大小都是不一样的,它主要取决于系统对于数据读写效率的判断。这里以SQL Server数据库的数据页大小为例:8K。

(3) 传送时间
传送时间 = IO Chunk Size/Internal Transfer Rate = 8k/40M/s = 0.2ms

可以发现:
(3.1) 如果IO Chunk Size大的话,传送时间会变长,单次IO时间就也变长,从而导致IOPS变小;
(3.2) 机械磁盘的主要读写成本,都花在了寻址时间上,即:寻道时间 + 旋转延迟,也就是磁盘臂的摆动,和磁盘的旋转延迟。
(3.3) 如果粗略的计算IOPS,可以忽略传送时间,1000ms/(寻道时间 + 旋转延迟)即可。

4. IOPS计算示例
以15000rpm为例:

(1) 单次IO时间
单次IO时间 = 寻道时间 + 旋转延迟 + 传送时间 = 3ms + 2ms + 0.2 ms = 5.2 ms

(2) IOPS
IOPS = 1000ms/单次IO时间 = 1000ms/5.2ms = 192 (次)
这里计算的是单块磁盘的随机访问IOPS。

考虑一种极端的情况,如果磁盘全部为顺序访问,那么就可以忽略:寻道时间 + 旋转延迟 的时长,IOPS的计算公式就变为:IOPS = 1000ms/传送时间
IOPS = 1000ms/传送时间= 1000ms/0.2ms = 5000 (次)

显然这种极端的情况太过理想,毕竟每个磁道的空间是有限的,寻道时间 + 旋转延迟 时长确实可以减少,不过是无法完全避免的。

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
在 Windows 11 上配置 RAID 1 的步骤在 Windows 11 上配置 RAID 1 的步骤Sep 22, 2023 pm 03:05 PM

Windows11有严格的要求,在努力获取该存储之后,丢失硬盘驱动器和数据将是一个遗憾。好吧,我们带来了好消息,可以帮助您缓冲硬盘驱动器故障。使用内置的Windows工具,您可以将所有数据从一个驱动器复制到另一个驱动器。这样,如果一个驱动器发生故障,您可以在替换驱动器上镜像和重建原始数据。Windows11可以做RAID吗?借助Windows存储空间功能,您可以在Windows11上执行RAID。此功能允许您使用直接连接到计算机的硬盘驱动器创建多个虚拟磁盘,而不会降低性能。突袭的好处:降低因磁盘

如何在 Windows 11 上将动态磁盘转换为基本磁盘如何在 Windows 11 上将动态磁盘转换为基本磁盘Sep 23, 2023 pm 11:33 PM

如果要在Windows11中将动态磁盘转换为基本磁盘,则应首先创建备份,因为该过程将擦除其中的所有数据。为什么要在Windows11中将动态磁盘转换为基本磁盘?根据Microsoft,动态磁盘已从Windows中弃用,不再推荐使用。此外,Windows家庭版不支持动态磁盘,因此您将无法访问这些逻辑驱动器。如果要将更多磁盘合并到更大的卷中,建议使用基本磁盘或存储空间。在本文中,我们将向您展示如何在Windows11上将动态磁盘转换为基本磁盘如何在Windows11中将动态磁盘转换为基本磁盘?在开始

如何在 Windows 11 上 RAID 外部硬盘驱动器如何在 Windows 11 上 RAID 外部硬盘驱动器Sep 16, 2023 pm 10:05 PM

RAID或独立磁盘冗余阵列是一种数据存储技术,其中多个外部驱动器组合成一个。当大型硬盘价格昂贵时,它被广泛使用,但许多人仍然更喜欢RAID外部驱动器的方法。RAID有几个级别,每个级别都用于特定目的。请记住,普通用户不必深入了解复杂性,RAID0或RAID1的简单设置应该可以正常工作。考虑突袭外部驱动器的原因:改进了电脑的性能易于配置,比现有替代方案便宜更快的数据读取和写入通过镜像实现有效的备份解决方案如何在Windows11上RAID外部驱动器?在RAID外部硬盘驱动器之前,需要注意以下几个先

掌握Ubuntu系统中的磁盘使用情况的方法掌握Ubuntu系统中的磁盘使用情况的方法Jan 03, 2024 pm 11:13 PM

我们在系统要查看硬盘使用的情况,Ubuntu系统该怎么查看呢?下面我们就来看看,Ubuntu系统查看硬盘占用率的教程。1、在系统上,点击桌面左下角,如图示。2、在系统,点击公用程式,如图示。3、点击磁碟使用量,如图示。4、那么即可看到磁盘使用的情况,就是中间的磁盘就是你电脑硬盘,如图示。磁盘下面的小字就是使用情况。5、或点击公用程式上的磁碟,如图示。6、那么在容量这里,看得到硬盘使用情况,如图示。下面是文字版本查看磁盘的使用情况:df-h结果如下:FilesystemSizeUsedAvailU

任务管理器磁盘100%是什么意思任务管理器磁盘100%是什么意思Jan 03, 2024 pm 06:13 PM

很多小伙伴打开任务管理器cpu时候,发现磁盘显示百分之100,这是怎么一回事呢?因为当WindowsDefender在进行扫描时,如果再进行其他的工作,磁盘占用率就达到了100%,或者还有其他功能的占用,具体的介绍及解决方法下面一起来看看吧。任务管理器磁盘100%是什么意思:答:当前磁盘资源被大量的占用了。磁盘占用的最大问题其实是windows搜索导致的,这个功能需要不断地简历因此会导致占用超高。任务管理器磁盘100%怎么办?1、首先右击任务栏,打开“任务管理器”。2、然后看看那个占用率高,右击

win11磁盘清理在哪查看win11磁盘清理在哪查看Jun 29, 2023 pm 09:25 PM

win11磁盘清理在哪查看?随着系统使用时间变久,c盘或者其他电脑磁盘里经常会多出来十几个G,或者是更多的无用垃圾文件。这时,使用win11自带的磁盘清理功能就可以帮助我们快速清理掉这些无用的文件。但是有不少用户们不清楚win11的磁盘清理功能在哪,怎么操作。今天小编就给大家带来了win11自带垃圾清理功能查看步骤,来给大家说明一下吧。win11自带垃圾清理功能查看步骤1、首先,按键盘上的【Win】键,或点击任务栏上的【开始菜单】,再选择已固定应用下的【设置】;2、当前路径为:系统>存储,

How to Resolve a Disk Read ErrorHow to Resolve a Disk Read ErrorFeb 19, 2024 pm 02:39 PM

标题:如何解决"Adiskreaderroroccurred"错误字数:1470引言:在使用电脑的过程中,我们可能会遇到各种各样的错误。其中,硬盘读取错误是较为常见的问题之一。当您的计算机显示“adiskreaderroroccurred”时,这表示您的计算机无法从硬盘上读取数据。虽然这个问题可能会导致一些麻烦,但幸运的是,我们有一些方法可以

在Windows 11上下载和安装三星NVME驱动程序的方法在Windows 11上下载和安装三星NVME驱动程序的方法Aug 23, 2023 pm 06:01 PM

我们一再重申定期更新驱动程序的重要性。一个好的驱动程序可以在您的PC上产生巨大的影响,NVMe驱动程序也不例外。在今天的文章中,我们的主要重点是三星NVMe驱动程序。我们将探讨如何在Windows11上下载和安装它、安装错误驱动程序可能出现的潜在问题以及如何优化它。三星NVMe驱动程序是否适用于Windows11?是的,三星NVMe驱动程序适用于Windows11,前提是您满足所有系统要求。三星NVMe驱动程序软件允许您的Windows操作系统识别您的三星NVMeSSD并与之通信。如果没有此驱动

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能