我一直在看很多视频,现在对计算机的工作原理有了更好的了解。我更好地了解了什么是RAM,易失性和非易失性内存以及交换过程。我也理解为什么增加RAM可以加快计算机的速度。

我不明白为什么清理磁盘空间可以加快计算机的速度。可以?为什么呢它与搜索可用空间以保存事物有关吗?还是通过移动物体来留出足够长的连续空间来保存东西?我应该在硬盘上留出多少可用空间?

评论

它并不能真正提高PC的速度,它只能减少文件碎片的机会,从而降低HDD的速度。这是每个人都在重复的最伟大的PC神话之一。要在PC上查找bootleneck,请使用xperf / WPA对其进行跟踪。

FWIW可以加速使用PC的体验。

@ magicandre1981:有一个很小的真理。每个文件夹中的内容越多,文件遍历的速度就越慢,这会影响使用文件路径的所有内容,即...所有内容。但这很小。

@MooingDuck为true时,它与文件夹中的文件数有关,与文件的大小或驱动器上剩余的空间量无关。这种影响与剩余磁盘空间无关。效果也仅限于文件夹本身,它不会“减慢”整个计算机的速度。某些文件系统(例如ext3 / 4)使用哈希目录树来快速进行查找(包括子文件夹访问),从而进一步限制了效果的范围,例如仅当列出目录内容时。

您到底在看什么视频?

#1 楼

在这里,我偶然写了一本书。请先喝杯咖啡。


为什么清空磁盘空间会加快计算机的速度?


它不是,至少不是靠它自己。这是一个非常普遍的神话。这是一个普遍的神话,是因为填充硬盘驱动器通常与其他传统上可能会使计算机减慢速度的事情同时发生†。随着驱动器的装满,SSD性能的确会下降,但这是一个相对较新的问题,是SSD独有的,并且对于休闲用户而言并不十分明显。通常,可用磁盘空间不足只是一个红色鲱鱼。例如,诸如:




文件碎片。文件碎片化是一个问题††,但是缺少可用空间虽然绝对是众多促成因素之一,但并不是造成这种情况的唯一原因。这里的一些关键点:


文件碎片的可能性与驱动器上剩余的可用空间量无关。它们与驱动器上最大的连续可用空闲块的大小(例如,“空洞”)有关,而空闲空间的大小恰好使上限达到上限。它们还与文件系统处理文件分配的方式有关(请参见下文)。请考虑:在一个连续块中具有95%可用空间的驱动器具有0%的机会分割一个新文件†††(而对附加文件进行分割的机会与可用空间无关)。 5%的驱动器已满,但数据均匀分布在该驱动器上,因此发生碎片的可能性很高。
请记住,文件碎片只会在访问碎片文件时影响性能。考虑:您有一个不错的,经过碎片整理的驱动器,其中仍然有许多空闲的“孔”。常见情况。一切运行顺利。最终,尽管如此,您将无法再剩下更多的大块可用空间。您下载了一部大电影,文件最终变得碎片化。这不会降低计算机的速度。您所有的应用程序文件以及以前可以使用的文件不会突然变得零散。这可能会使电影的加载时间更长(尽管与硬盘驱动器的读取速率相比,典型的电影比特率是如此之低,以至于很可能不会引起注意),并且可能会在电影加载时影响I / O限制的性能,但是除此之外,什么都没有改变。
虽然文件碎片肯定是一个问题,但通常情况下,操作系统和硬件级别的缓冲和缓存会减轻这种影响。延迟的写入,预读,Windows中的预取器之类的策略等都有助于减少碎片的影响。通常,在碎片变得很严重之前,您实际上并不会真正受到重大影响(我什至敢说只要您的交换文件没有碎片,您可能永远不会注意到)。


搜索索引是另一个示例。假设您启用了自动索引编制,并且操作系统无法正常处理此问题。随着您将越来越多的可索引内容(例如文档等)保存到计算机中,建立索引的时间可能越来越长,并且可能开始影响计算机在运行时的I / O和CPU使用率。这与可用空间无关,与您拥有的可索引内容的数量有关。但是,耗尽可用空间与存储更多内容是紧密结合的,因此绘制了错误的连接。
防毒软件。与搜索索引示例相似。假设您已经设置了防病毒软件来对驱动器进行后台扫描。当您拥有越来越多的可扫描内容时,搜索将占用更多的I / O和CPU资源,可能会干扰您的工作。同样,这与您拥有的可扫描内容的数量有关。更多的内容通常等于更少的可用空间,但是缺少可用空间并不是原因。
已安装的软件。假设您安装了许多在计算机启动时加载的软件,从而减慢了启动时间。之所以会变慢,是因为正在加载许多软件。但是,已安装的软件占用硬盘驱动器空间。因此,硬盘驱动器的可用空间在发生这种情况的同时会减少,并且很容易再次建立错误的连接。


沿这些线的许多其他示例如果一起考虑,

上面的例子说明了另一个普遍的神话:虽然缺乏可用空间并不是导致速度变慢的直接原因,但卸载各种应用程序并删除索引或扫描的内容等有时(但不总是;不在此答案范围内)由于与剩余可用空间量无关的原因而再次提高性能。但这自然也会释放硬盘空间。因此,再次可以在“更多可用空间”和“更快的计算机”之间建立明显的连接(但错误的连接)。

考虑:如果由于安装了很多软件而使机器运行缓慢,等等,然后您将硬盘驱动器精确地克隆到更大的硬盘驱动器,然后扩展分区以获取更多的可用空间,那么计算机将不会神奇地加速。相同的软件负载,相同的文件仍以相同的方式进行碎片处理,相同的搜索索引器仍在运行,尽管具有更多的可用空间,但没有任何变化。


它与寻找用来保存内容的存储空间有关吗?


否。它不是。这里需要注意两个非常重要的事情:


您的硬盘驱动器不会四处寻找放置物品的地方。您的硬盘很笨。没什么。这是一个很大的寻址存储块,它盲目地将内容放置在OS告诉它的地方,并读取要求它的内容。现代驱动器具有复杂的缓存和缓冲机制,旨在根据我们随着时间的推移获得的经验来预测操作系统的要求(某些驱动器甚至意识到其上的文件系统),但实际上,请考虑一下您的驱动器只是一个笨拙的存储砖,偶尔还会有额外的性能表现。

您的操作系统也不会搜索放置东西的地方。没有“搜索”。解决这个问题已经付出了很多努力,因为这对于文件系统的性能至关重要。在驱动器上实际组织数据的方式由文件系统决定。例如,FAT32(旧的DOS和Windows PC),NTFS(后来的Windows),HFS +(Mac),ext4(某些Linux)以及许多其他文件。甚至“文件”和“目录”的概念也仅仅是典型文件系统的产物-硬盘驱动器并不了解被称为“文件”的神秘野兽。详细信息不在此答案的范围内。但从本质上讲,所有通用文件系统都具有跟踪驱动器上可用空间的位置的方法,因此在正常情况下(即运行状况良好的文件系统)无需搜索可用空间。示例:NTFS有一个主文件表,其中包括特殊文件$Bitmap等,以及描述该驱动器的大量元数据。本质上,它跟踪下一个空闲块的位置,以便可以将新文件直接写入空闲块,而不必每次都扫描驱动器。
另一个示例ext4具有所谓的“位图分配器”,它是对ext2和ext3的改进,基本上可以帮助它直接确定空闲块的位置,而不是扫描空闲块的列表。 Ext4还支持“延迟分配”,即在将数据写到驱动器之前由OS在RAM中缓冲数据,以便更好地决定将数据放在何处以减少碎片。
许多其他示例。




还是随处移动以形成足够长的连续空间来节省某些东西?


不。这不会发生,至少对于我所知道的任何文件系统都不会发生。文件最终变得碎片化。

“移动事物以形成足够长的连续空间来保存某些内容”的过程称为碎片整理。写入文件时不会发生这种情况。当您运行磁盘碎片整理程序时,会发生这种情况。至少在更新的Windows上,这是按计划自动发生的,但绝不会通过写入文件来触发。

能够避免像这样移动内容是文件系统性能的关键,并且是为什么会发生碎片以及为什么碎片整理作为单独的步骤存在。


我应该在硬盘上留出多少可用空间?


这是一个棘手的问题,已经有了答案。变成一本小书。

经验法则:



对于所有类型的驱动器:


最重要的是,请留出足够的可用空间以有效使用计算机。如果您没有足够的空间来工作,那么您将需要更大的驱动器。
许多磁盘碎片整理工具需要的可用空间最少(我认为使用Windows的磁盘需要最坏情况的15%)。 。他们使用此可用空间来临时保存碎片文件,并重新安排其他内容。
为其他OS功能留出空间。例如,如果您的计算机没有太多的物理RAM,并且已为动态大小的页面文件启用了虚拟内存,则需要为页面文件的最大大小留出足够的空间。或者,如果您有一台笔记本电脑进入了休眠模式,那么您将需要足够的可用空间来存储休眠状态文件。诸如此类。



SSD特定:


为了获得最佳可靠性(在较小程度上提高性能),SSD需要一些可用空间,这些空间无需过多详细说明,而是用于在驱动器周围散布数据,从而避免不断写入同一位置(使它们耗尽)。留下自由空间的概念称为超额配置。这很重要,但是在许多SSD中,已经存在强制性的超额配置空间。也就是说,驱动器通常比向操作系统报告的容量多几十个GB。低端驱动器通常需要您手动保留未分区的空间,但是对于具有强制OP的驱动器,则无需保留任何可用空间。这里要注意的重要一点是,预留空间通常仅取自未分配的空间。因此,如果分区占用了整个驱动器,并且在其上留下了一些可用空间,那么这并不总是重要的。很多时候,手动超额配置要求您将分区缩小为小于驱动器的大小。有关详细信息,请检查您的SSD的用户手册。 TRIM和垃圾回收等也有影响,但这些问题不在此答案的范围内。




我个人通常在拥有约20-25时会获得更大的驱动器剩余可用空间百分比。这与性能无关,只是到了这一点,我希望很快就会用完数据空间,是时候获得更大的驱动器了。

比观察可用空间更重要的是确保在适当的地方(而不是在SSD上)启用计划的碎片整理,这样您就永远不会陷入严重影响您的境地。同样重要的是避免误导性的调整并让您的操作系统执行其操作,例如不要禁用Windows预取器(SSD除外)等。还有最后一件事值得一提。此处的其他答案之一是SATA的半双工模式阻止同时进行读写。确实如此,但是这大大简化了,并且与此处讨论的性能问题无关。简而言之,这意味着不能同时在导线的两个方向上传输数据。但是,SATA具有相当复杂的规范,涉及很小的最大块大小(我认为线路上每个块大约8kB),读写操作队列等,并且不排除在读取进行中,交错时发生对缓冲区的写操作操作等。

发生的任何阻塞都是由于争用物理资源而导致的,通常是通过大量的缓存来缓解的。 SATA的双工模式在这里几乎完全无关。


†“减速”是一个广义术语。在这里,我用它来指代受I / O约束的事物(例如,如果您的计算机坐在那儿,数字紧缩,硬盘的内容没有影响),或者受CPU约束且与切向相关的事物竞争高CPU使用率(例如,防病毒软件扫描大量文件)。

††SSD受碎片影响的原因是,尽管SSD所面临的限制与机械设备没有相同的限制,但顺序访问的速度通常比随机访问要快(即使如此,由于磨损平衡等原因,碎片的不足也不能保证顺序访问的速度。 ,就像詹姆斯·斯内尔(James Snell)在评论中指出的那样。但是,实际上在每种通用情况下,这都不是问题。由于SSD碎片化而导致的性能差异通常对于加载应用程序,启动计算机等而言可以忽略不计。

†††假设没有文件碎片的理智的文件系统。

评论


非常全面的答案,谢谢。也感谢您提醒大家喝杯咖啡,非常感谢。

–普罗米修斯
18年2月27日在0:19

#2 楼

除了Nathanial Meek对HDD的解释之外,SSD的情况也不同。

SSD对分散的数据不敏感,因为对SSD任意位置的访问时间是相同的。 SSD的典型访问时间为0.1ms,而HDD的典型访问时间为10到15ms。但是,它对已经写入SSD的数据敏感。

与可以覆盖现有数据的传统HDD不同,SSD需要完全空白的空间来写入数据。这是通过称为Trim and Garbage Collection的函数完成的,该函数清除了标记为已删除的数据。垃圾回收与SSD上一定数量的可用空间结合使用时效果最佳。通常建议使用15%到25%的可用空间。

如果垃圾回收无法及时完成其工作,则在每次写操作之前都要清理应该存放数据的空间。被写。这会使每次写操作的时间加倍,并且会降低整体性能。

这是一篇出色的文章,介绍了Trim and Garbage Collection的功能

评论


请注意,SSD可以通过读取部分数据并用更多写入的内容写回来写入部分填充的单元,但只有在不可避免的情况下,它才会这样做。这当然也很慢,并且通常表明驱动器的碎片非常严重,需要花费很多时间才能使其再次快速写入。

–蓬松
2015年4月20日在3:56

那也将取决于控制器。而且由于变化太多,所以我不想详细介绍。

–为什么
15年4月20日在4:04

您所说的15-25%被称为“超额配置”。一些驱动器已经为此分配了强制性空间(例如1TB EVO 840已保留9%,并且没有报告给操作系统免费),对于那些您不需要留下任何可用空间的驱动器。我认为在某些情况下,也必须对超额分配的空间进行未分区,并且仅在文件系统上保留可用空间不会削减它,实际上需要保留未分配的空间。

–杰森C
15年4月20日在14:54

过度配置是另外一回事。这些是待命的nand,用于替换有缺陷的nand。需要15-25%的空间来释放块(页面)和磨损平衡。您可能需要阅读此处以获取详细信息==> thessdreview.com/daily-news/latest-buzz / ...

–为什么
15年4月20日在16:38

@whs不是,您链接到的文章并不暗示它是。多余的空间(请参阅本节中引用的资源,或Google)是空闲块的池,该池中的块用于垃圾回收/快速写入,损耗均衡和缺陷单元的替换。至于更换有缺陷的电池,它们都放在同一个池中。一旦充满了有缺陷的单元格,您就会开始看到一致的错误。另请参阅本演示文稿中的幻灯片12。整个事情都值得研究,它直接解决了这个话题。

–杰森C
15年4月20日在18:17

#3 楼

传统硬盘内部的某个地方是旋转的金属盘,其中各个位和字节实际上已编码。当数据添加到磁盘时,磁盘控制器首先将其存储在磁盘外部。随着添加新数据,最后会使用空间移向磁盘内部。
牢记这一点,有两种影响会导致磁盘性能随着磁盘填满而降低:“寻道时间”和“旋转速度”。
寻求时间
要访问数据,传统的硬盘必须物理地将读/写磁头移动到正确的位置。这需要时间,称为“寻找时间”。制造商发布其磁盘的查找时间,通常只有几毫秒。听起来可能并不多,但是对于计算机而言,这是永恒的。如果您必须读取或写入许多不同的磁盘位置以完成任务(这很常见),那么那些寻找时间可能会导致明显的延迟或延迟。
几乎是空的驱动器将具有它的数据位于相同位置或附近,通常位于读/写头静止位置附近的外边缘。这减少了在磁盘上查找的需求,从而大大减少了查找所花费的时间。几乎已满的驱动器不仅需要更频繁地在磁盘上搜索并且搜索动作更大/更长,而且可能难以将相关数据保持在同一扇区中,从而进一步增加了磁盘搜索。这称为碎片数据。
释放磁盘空间可以通过允许碎片整理服务不仅更快地清理碎片文件,而且还可以将文件移到磁盘外部,从而缩短平均查找时间,从而缩短查找时间。较短。
旋转速度
硬盘驱动器以固定速率旋转(计算机通常为5400rpm或7200rpm,而服务器为10000rpm甚至15000 rpm)。它还需要驱动器上的固定空间量(或多或少)来存储单个位。对于以固定旋转速度旋转的磁盘,磁盘外部的线性速率将比磁盘内部更快。这意味着磁盘外边缘附近的位以比磁盘中心附近的位更快的速度经过读取头,因此读/写头可以读取或写入磁盘外边缘附近的位的速度比磁盘外边缘快。内部。
快要用光的驱动器将花费大部分时间访问光盘较快的外边缘附近的位。快要装满的驱动器将花费更多时间访问磁盘较慢的内部区域附近的位。
再次清空磁盘空间可以通过允许碎片整理服务将数据移至磁盘外部来使计算机运行更快,读取和写入速度更快。
有时光盘实际上对于读取头移动得太快,并且由于外边缘附近的扇区将错开而错开写入,因此读取头会降低这种效果。可以跟上。但是总的来说,这是成立的。
这两种效果都归结为磁盘控制器首先将数据分组在磁盘的较快部分中,而不是在需要时才使用磁盘的较慢部分。随着磁盘装满,磁盘的较慢部分将花费越来越多的时间。
这些效果也适用于新驱动器。在所有其他条件相同的情况下,新的1TB驱动器比新的200GB驱动器快,因为1TB会将位存储得更近,并且不会以最快的速度填充到内部磁道中。但是,尝试使用此信息来指导购买决策几乎没有帮助,因为制造商可能使用多个磁盘来达到1TB的大小,较小的磁盘将1TB的系统限制为200GB,软件/磁盘控制器的限制将1TB的磁盘限制为仅200GB。空间,或从部分容量不完整的1TB驱动器和200GB驱动器中出售许多坏道的驱动器。
其他因素
在此值得注意的是,上述影响相当小。计算机硬件工程师花费大量时间来研究如何最小化这些问题,并且诸如硬盘驱动器缓冲区,Superfetch缓存和其他系统之类的工作都可以最大程度地减少问题。在具有足够可用空间的健康系统上,您甚至都不会注意到。此外,SSD具有完全不同的性能特征。但是,这种影响确实存在,并且随着驱动器的装满,计算机确实会变慢。在磁盘空间非常低的不正常系统上,这些影响会造成磁盘颠簸的情况,磁盘不断在分散的数据之间来回搜索,释放磁盘空间可以解决此问题,从而带来更加显着和显着的改进。
此外,将数据添加到磁盘意味着某些其他操作(例如索引或AV扫描和碎片整理过程)在后台只是做更多的工作,即使它的运行速度与以前相同或接近。 br />最后,磁盘性能是当今PC整体性能的重要指标……甚至比CPU速度还要重要。甚至磁盘吞吐量的小幅下降通常也将等同于PC性能的实际整体下降。尤其是这样,因为硬盘性能并未真正跟上CPU和内存改进的步伐。 7200 RPM磁盘已经成为桌面标准已有十多年了。传统的旋转磁盘比以往任何时候都成为计算机的瓶颈。

评论


寻求时间的增加不是由于可用空间不足,而是数据组织的结果。如果您的数据已经遍及驱动器,那么释放磁盘空间将不会减少查找时间。同样,用尽磁盘空间不会突然增加已经组织良好的无关数据的查找时间。更重要的是,要非常谨慎地将其中任何一个与“速度较慢的计算机”相关联。例如,您不会仅仅因为浏览器的可执行文件没有碎片并且位于机械驱动器的外部而更快地浏览Web,即使在最坏的情况下,MP3仍将流畅播放。

–杰森C
2015年4月21日在19:05



@JasonC这些观点中的每一个都是孤立的,但是作为整个系统的一部分,它们的总和可能会加起来。一个例子是这样的说法:“如果您的数据已经遍及驱动器,那么释放磁盘空间不会减少查找时间。”我不能对此表示怀疑,但是我可以指出,碎片整理服务现在可以将这些数据移至驱动器的前端,并且现在这些事情将缩短寻道时间。您评论中的其他观点也有类似的说法:磁盘空间用尽不会增加对组织良好的数据的搜索,但确实减少了数据保持组织的可能性。

–乔尔·科恩(Joel Coehoorn)
2015年4月21日在20:35

@JasonC但是,我确实根据您的评论在答案中添加了几行,以更直接地解决标题问题。

–乔尔·科恩(Joel Coehoorn)
15年4月21日在20:40

当然;但我的主要观点是:1)减速是其他因素造成的,即使可用空间不足可能是许多因素之一,以及2)您必须非常谨慎地对待这个话题,这是人们陷入困境的其中之一很快如果临时用户注意到他们的计算机运行缓慢,那么实际上,(例如)碎片是真正的原因是非常不寻常的。但是随后他们在互联网上阅读了一堆东西,安装了ccleaner,50个磁盘碎片整理程序,对注册表进行了一些错误的调整等。聪明的人不需要我们的答案。

–杰森C
2015年4月21日在20:51



此答案暗示着短击(人为限制HD大小以将数据保留在较快的外部区域中)以及它的一些潜在问题。我也喜欢它,因为它不能否认在大多数情况下,对于大多数用户来说,驱动器变得越来越满,因此变得更加分散。值得注意的是,可用空间并不是真正的问题,但在处理一般用户体验问题时,忽略一般用户体验毫无意义。

–史密斯
2015年4月27日在17:47

#4 楼

所有其他答案在技术上都是正确的-但是我总是发现这个简单的示例可以最好地说明问题。

如果有足够的空间,对事物进行排序确实很容易...但如果没有足够的空间,则很难进行排序没有空间...计算机也需要空间!

这个经典的“ 15个难题”是棘手的/耗时的,因为您只有1个免费的正方形,可以将周围的瓷砖打乱才能进入正确的1-15顺序。



但是,如果空间很大,则可以在10秒内解决这个难题。



对于曾经玩过这个难题的任何人……理解类比似乎是自然而然的。 ;-)

评论


但是,这与任何文件系统行为都不相似。我想,它有点像整理碎片的一般过程,尽管相对于这个难题的类比,碎片整理可以使您从板上删除数字,并在解决时将其重新放置在所需的任何位置。

–杰森C
2015年4月23日在4:31



除了以上Jason的评论外,我想指出一个显而易见的问题:此答案与排序(碎片整理)有关,但没有解释为什么第二个访问特定的随机图块(例如“ 3”图块)会更快情况比第一种情况。

–用户
15年4月23日在21:24

因为您不仅仅访问“ 3”。您正在访问“ 1-15”。尽管我承认示例中的内容并不清楚,但我还是理解了这一点。可能值得特别指出,例如“此难题类似于单个碎片文件”。好的答案,使事情在心理上很容易获得!

–史密斯
15年4月27日在17:50

澄清一下:类推的主要问题在于,在实际的难题中,您只能将图块移动到相邻的空白空间。也就是说,在很小的示例中,只能将6或13移入空白空间。这就是使难题具有挑战性的原因。这是瓷砖游戏的重点。但是,在对硬盘驱动器进行碎片整理时,您可以移动例如4到空白处,1到正确的位置,依此类推,很容易解决,移动的次数与有很多空间的情况一样。因此,这种类比真的崩溃了,因为难题的症结并不适用:没有文件系统可以这样工作。

–杰森C
15年4月27日在22:07



'因为您访问的不只是“ 3”。您正在访问“ 1-15”'-这是胡说。答案无法解释为什么第二种情况下访问特定的随机图块比第一种情况下更快,因为答案是完全错误的。碎片整理不仅不会限制拼图的方式,而且“棘手/费时”的碎片整理与系统性能无关。

–吉姆·巴尔特(Jim Balter)
17年7月17日在19:28

#5 楼

随着文件碎片的增加,在旋转的机械硬盘驱动器上磁盘空间非常少的计算机通常会变慢。增加的碎片意味着读取速度慢-在极端情况下非常慢。

一旦计算机处于这种状态,释放磁盘空间实际上将无法解决问题。您还需要对磁盘进行碎片整理。在计算机处于这种状态之前,释放空间不会加快它的速度。

这仅适用于旋转机械硬盘的计算机,因为碎片对SSD的读取速度的影响微不足道。

评论


一个好,干净,简单的答案也可以解决主要的核心问题。

–史密斯
2015年4月27日在17:47

#6 楼

闪存磁盘已满或碎片化时,肯定会变慢,尽管减速的机制与物理硬盘驱动器不同。一个典型的闪存芯片将被划分为一定数量的擦除块,每个擦除块都包含大量(数百个,如果不是数千个)写页面,并且将支持三个主要操作:


读取Flash页面。
写入以前为空白的Flash页面。
将所有Flash页面擦除在一个块中。

理论上可行要使每次写入闪存驱动器读取一个块中的所有页面,更改缓冲区中的一页,擦除该块,然后将缓冲区写回到闪存设备中,这种方法将非常慢;如果从擦除开始到回写完成之间断电,也很可能导致数据丢失。此外,磁盘的频繁写入部分将很快磨损。例如,如果FAT的前128个扇区存储在一个闪存块中,则在所有这些扇区的写入总数达到100,000次之后,驱动器将死掉,这不是很多,特别是考虑到128个扇区将保留大约16,384个FAT条目。

因为上述方法将非常糟糕,驱动器将使其识别一些空白页,在其中写入数据,并以某种方式记录所讨论的逻辑扇区为存储在该位置。只要有足够的空白页可用,此操作就可以快速进行。但是,如果空白页供不应求,则驱动器可能需要查找包含相对较少的“活动”页的块,将其中的任何活动页移动到其余的空白页中,并将旧副本标记为“死”;完成此操作后,驱动器将能够擦除仅包含“死”页面的块。

如果驱动器只有一半已满,那么肯定会有至少一个块,其中最多有一半的活动页面已满(并且很可能会有一些块很少或根本没有)。如果每个块包含256页,最少填充的块包含64个活动页(中等程度的错误情况),则对于每192个请求的扇区写入,驱动器将必须执行64个额外的扇区副本和一个块擦除(因此平均成本)每个扇区的写入次数约为1.34页写入和0.005块擦除。即使在最坏的情况下,每128个扇区写入也将需要128个额外的扇区副本和一个块擦除(每次写入的平均成本为2页写入和0.01块擦除)。

如果驱动器已满99%,并且最不完整的块具有248/256个活动页面,那么每8个扇区写入将需要248个额外的页面写入和一个块擦除,因此,每次写入的成本为32页写入和0.125块擦除-非常严重的减速。 br />
取决于驱动器有多少“额外”存储,它可能不会使事情变得那么糟糕。尽管如此,即使在驱动器已满75%的情况下,最坏情况下的性能也可能是最坏情况下性能达到50%时的两倍以上。

#7 楼

你几乎钉住了它。您可以将SATA HDD视为半双工通信介质(即一次只能接受或传输数据。不能同时接受和传输)。因此,如果将驱动器长时间搁置,会寻找空闲位置进行写入到,它无法读取任何数据给您。根据经验,由于这个原因,您不应将驱动器的容量加载超过80%。磁盘越完整,对文件进行碎片整理的可能性就越高,该碎片会使驱动器在读取请求(从而阻止写入请求)期间发生阻塞。

您可以执行许多操作帮助解决以下问题:


减少已存储的数据量并定期对驱动器进行碎片整理。
切换到基于闪存的存储。
保留大容量数据与您的操作系统分离的驱动器。
等等...


评论


当使用闪存时,驱动器几乎可以瞬时读取(同样,不能同时读取和写入)(9ms是HDD上相当标准的寻道时间,因为SSD通常在皮秒和纳秒级范围内具有“寻道时间”)磁盘上的位置。 en.wikipedia.org/wiki/…

–纳塔纳尔·米克(Nathanial Meek)
2015年4月19日在23:28

继续进行2:例如$ Bitmap文件用于NTFS或ext4中的位图分配器。即这个答案正在传播一些严重的错误信息。 3.大量的读写缓冲和缓存正在进行中,这引起了很多争议。这个答案多少描述了碎片的影响,并且即使仅限于较旧的文件系统,它肯定也不是正确的可用空间。释放磁盘空间不会加快计算机的速度。

–杰森C
2015年4月20日4:46



@JasonC,您应该将您的评论变成答案。

–Celos
2015年4月20日在7:21

不会发生这种情况:“因此,如果将驱动器长时间搁置以寻找要写入的空闲位置,那么它将无法读取任何数据给您” –事实并非如此。那不是文件系统的工作方式。请修改您的答案以停止传播错误信息。

–RomanSt
2015年4月20日在13:38



@NathanialMeek您正在混合图层。 :) SATA的半双工模式意味着它只能沿一个方向在电线上传输数据。在SATA指定的操作队列中,以较小的块(称为FIS)完成较高级别的读取和写入。它们可以是异步的,并且可以在板载高速缓存之间进行快速读写,并通过DMA直接到系统内存。 SATA控制器还可以自由地重新排序命令以优化效率。重点是:物理操作完成后,该线路不会处于繁忙状态,并且SATA的半双工模式没有您认为的效果。

–杰森C
15年4月20日在20:45

#8 楼

遵循简短而甜美的方法,我过度简化的答案(严格限于您的主要困惑)是:

,只要您的


OS有足够的操作系统(在最坏的情况下)方案)空间来完成其诸如调页/交换等任务。
其他软件也具有足够的空间来满足各自的需求。
对磁盘进行碎片整理。

那么您可以'不能说出80%空磁盘与30%空磁盘在性能上的区别,除了存储越来越多的新数据外,不用担心其他任何事情。

其他任何需要更多存储的事情都会导致性能不佳,因为现在可能可用空间不足。

当然,通过工具清理磁盘的效果很好:


临时文件应为定期进行清理以获取宝贵的磁盘空间。
旧的日志文件不过是浪费空间。
已安装/未安装的软件的残骸非常讨厌。
如果您重视在线服务,则必须清除Cookie隐私。
无效的快捷方式等。

所有这些(以及更多)原因导致性能较差,因为所有这些原因在寻找正确的比特集时都会使操作系统感到困惑与。

评论


摘要不错,但对“ BUT”部分却不太确定。特别是:3)尽管有常见的怪胎,但通常不会对性能产生明显的影响。4)Cookies并不是天生的问题,而且不管意见如何,隐私都与性能或硬盘空间无关。5)快捷键坏了,但通常否则无关紧要。这些都没有真正“混淆”任何常见的操作系统。请注意您遵循的“技巧”和“调整”。还要警惕不必要的清理工具,尤其是注册表清理程序经常会冒着为零收益而遭受损害的风险。

–杰森C
15年4月25日在15:08

#9 楼

我从未提到过的对旋转驱动器的影响:磁盘的不同部分的访问速度和数据传输速度是不同的。

磁盘以固定速度旋转。磁盘外部的磁道更长,因此每个磁道比内部的磁道可容纳更多数据。如果驱动器可以从最外面的轨道读取100 MB /秒,则最里面的轨道的速度将低于50 MB /秒。

同时,磁盘外部磁道上1 GB数据之间的磁道少于最里面磁道上1 GB数据之间的磁道。因此,平均而言,与最内侧轨道上的数据相比,存储在外侧的数据所需的头部移动更少。

如果可能,操作系统将尝试使用最外侧的轨道。当然,如果磁盘已满是不可能的。删除数据将在传输速度较高的地方留出空间,并使数据运行更快。出于同样的原因,如果需要速度(只要价格合理),则应购买比所需容量更大的旋转硬盘驱动器,因为最终只会使用驱动器中最快的部分。

评论


添加:en.wikipedia.org/wiki/Zone_bit_recording,对此进行了详细介绍。值得注意的是:现有数据将不会移动。这可能会影响新数据的存储(取决于驱动器上的位置,而不是直接取决于可用空间),但不会“减慢”在内部写入之前愉快地访问的现有文件的速度。我在亚马逊上发现的最便宜的1TB 7200RPM 3.5英寸驱动器具有以用户为基准的平均144MB / s的读取速度;即使考虑到内部和外部磁道的差异,这在随意使用时也不会成为瓶颈。

–杰森C
2015年4月20日在16:06



在实践中,@ JasonC的I / O性能(按顺序吞吐量)几乎从不考虑;即使是慢速的4900 rpm驱动器,对于几乎任何个人用户来说也足够快。在大多数情况下,每秒读/写操作的I / O性能会降低性能。如果您愿意,请向本地的系统管理员询问有关多用户系统中的旋转存储IOPS的信息。这就是为什么如今几乎没有人为多用户系统部署旋转存储的主要原因。您甚至永远无法接近SSD的IOPS。

–用户
2015年4月23日在21:28