文件系统在填满时是否会失去性能?

问题的上下文是一个Windows计算机(因此所讨论的文件系统NTFS),正在填充可能被删除的数据。 但是我不知道是否值得花时间去研究,还是应该整理一下,然后继续前进。

基本上,文件系统的“完整性”是否会导致性能下降,还是仅仅是碎片化会降低速度? 如果是这样,它是否有意义的区别?

许多事情会影响服务器的文件服务性能。 文件系统的完整性只是许多可以贡献的东西之一。

  • 原始磁盘吞吐量。 如果磁盘上的I / O数量超过了它们的能力,速度会变慢。
  • 磁盘I / O模式。 有些磁盘比其他磁盘的随机I / O性能更好。 例如,SATA不如SAS或SCSI驱动器那样具有大规模的随机I / O性能。
  • 磁盘控制器资源耗尽。 无论你用什么RAID(假设你是,这不是一个单一的磁盘)有自己的资源。 如果您使用奇偶校验RAID,则控制器CPU会限制您可以将数据提交到磁盘的速度。 另外,大多数硬件控制器都有自己的板载caching。 这用于许多事情,但包括重新sorting写入,以提高效率。 如果I / O太随机,你的RAID卡可能无法优化。
  • 文件caching内存资源。 文件服务器在完全caching内存中100%的打开文件时性能最佳。 这使得他们可以接受来自客户端的写入,并以提高效率的方式将提交重新sorting到磁盘。 如果你不能将你的整个打开的文件放在内存中,那么它将不得不直接转到磁盘上用于这些I / O,否则你将失去性能的提升。
  • 客户端本地内存资源。 通过使用OpLocks,客户端可以在本地caching本地打开的文件。 一旦多个客户端打开同一个文件,服务器就会通知客户端刷新其caching,这就消失了。 但是,对于一些工作量来说,这可能是一个真正的节省。 如果客户端没有足够的文件caching空间来caching打开的文件,则在独占打开文件时,性能可能会明显下降。
  • 文件系统碎片。 一个大规模碎片化的文件系统本身就会在磁盘子系统上产生大量的随机I / O模式。 如果这个子系统不能容忍这种I / O模式,事情会变得很慢。
  • 用户生成的I / O模式。 如果你的用户正在处理数以百万计的办公文档(一般在2MB以下),你的访问模式将是非常随机的。 如果您的用户正在处理大型文件(如video文件,地理空间数据或AutoCAD文件),则您的用户将会产生大量的连续操作。

其中有些是相互关联的,很多时候会引发性能问题。 一般来说,NTFS文件系统碎片确实有影响。 从这样的文件系统执行大量顺序读取时(例如在备份期间发生),影响最大。 对于一般的文件服务性能的影响对典型的办公室服务器负载没有那么重要,因为无论如何,这些负载大部分是随机I / O; 在某些情况下,甚至可以看到一个完整的碎片整理系统在性能方面的一些改进。

对于存储大量AutoCAD文件的文件服务器来说,NTFS碎片对最终用户是可感知的。 用户生成的I / O模式具有明显的顺序性,因此易受碎化影响而降级。 真正受到影响的是多less取决于服务器有多lessRAM用于caching,以及底层存储对于随机I / O模式的速度有多快。 很可能,下层存储速度足够快,最终用户不会注意到具有60%碎片的卷。 或者只有15%的碎片会导致I / O饱和。

对于存储大量普通旧办公文件的文件服务器来说,NTFS碎片对于terminal用户来说是不可感知的。 那个用户I / O模式是非常随机的,并且受碎片影响最小。 问题出现在备份过程中,备份每个GB的时间随着碎片增加而增加。

这使我想到了最后一点。 受碎片影响最大的一个I / O操作是顺序I / O。 大多数服务器都经历大规模的顺序I / O模式,作为备份过程的一部分。 如果您在备份窗口中安装备份时遇到问题,则整理碎片可以帮助您更快地完成备份。 您的底层存储系统将决定影响碎片的数量,您的碎片数量将决定它实际上具有多less影响。 知道你的存储。

碎片会导致一些缓慢。 总的来说,它可能不会是你的用户注意到的任何东西,除非他们正在做很多的video工作或处理大量的文件。

实际上,如果有大量的search操作,数以千计的小文件受到打击,我认为它会放慢速度。

在大多数情况下,内存体面,只有几个文件正在使用的例程,操作系统将caching的东西在内存中,你不会注意到太多的差异。 只有基准会告诉。

最后…这是另一个“它取决于”的问题。 取决于大型文件与计算机上的小型使用模式,以及碎片的分散程度以及用户对性能差异的影响。

如果你运行MyDefrag,不会伤害任何东西。 免费软件; 它也试图“优化”一些文件的布局到磁盘的访问速度会更快的区域。

碎片整理,继续前进。 保存几十GB是不值得的。 但要回答你的问题,新磁盘的唯一的一件事就是在开始时所有的文件,所以寻找时间less。 但一旦使用,文件可以在任何地方,所以碎片整理将有所帮助。

TL; DR:直到你得到75%以上。

对于大多数意图和目的,填满驱动器没有性能影响,直到你超过75%满。 这取决于使用情况,可能会有点偏差,但对于典型的工作站负载来说,这是事实。

当所有文件都有空间放置时,碎片被最小化。 在大部分为空的NTFS分区上被分割的文件的唯一types是日志文件和目录元数据,因为它们不断扩大。 如果您经常search日志或者创build和删除文件的吞吐量较大,则即使驱动器不够满,定期的碎片整理也可能会有所帮助。

如果你使用率低于80%,不要担心,只是碎片整理。

当它开始接近100%时,任何文件系统将开始减速。

如果您使用的是Windows 2008,那么您可以使用重复数据删除function来释放一些不必要的文件,将您的硬盘归档