硬盘空间是否会影响性能?

几年前我看到一个演示文稿,说当硬盘的容量不足50%时,硬盘的性能performance最好,而对于繁忙的服务器,则希望硬盘的容量保持在80%以下。 推理是从内向外写道,访问,尤其是随机访问,对于内部轨道比外部轨道更快。 旋转潜伏期较低。

另一方面,在今天的caching中,有时在诸如SQL Server之类的产品中读取更长的外部跟踪,而没有跟踪移动的轨迹,可能是否定因素。

这是真的? 在现代硬盘系统上保留空间是否有理由? Windows和Nix不一样吗?

根据我的经验,担心外轨与内轨不再是值得的。 考虑到其他影响性能的因素(RAID,caching,文件系统碎片等),性能的差别太小了。

但是,要直接回答你的问题,在现代硬盘(尤其是旋转(非SSD)磁盘)上保留一定量的可用空间肯定还有一个理由,那就是文件碎片化和寻找时间。 当有足够的可用空间时,可以顺序写入文件,以便在不需要多次查找的情况下读入文件。 这使得一个文件的检索速度比磁盘头要全部search一小块文件要快得多。

这篇文章/博客文章比磁盘性能更有针对性的文件碎片,但它提供了我已经发现的文件碎片更好的解释之一,为什么可用空间的影响: 为什么Linux不需要整理碎片?

磁盘填满越多,文件(尤其是大文件)就会变得越来越分散,读取和访问速度也越慢。 这也是Linux文件系统保留一定比例的空间(通常是5%)的原因。 这个保留空间对于紧急情况非常有用(因此用户不能完全填满磁盘并导致问题),但主要是为了在磁盘填满时减less磁盘碎片。 处理非常大的文件时,就像数据库常见的那样,通过预先分配数据文件(假设数据库(或其他应用程序)支持它),可以减less碎片问题。

在这些非常大且相对便宜的磁盘的日子里,很less有一个合理的理由让文件系统达到容量。 在绩效至关重要的情况下更是如此。

我同意Cashell先生(并已经投了票),但是还想补充另外两个因素。

首先,根据您的操作系统,系统将希望有一些可用空间用于交换和其他临时文件。 当然,Linux有一个专用交换卷,但是Windows,OS X和Netware都希望将系统卷用于临时存储。 任何时候在系统上保持至less一个千兆字节到10%(如果可以pipe理的话,最多可以达到20%)是一个很好的做法。

其次,服务器的规则是现在,而且一直会是你用更多的内存来对抗慢速磁盘性能。 操作系统调度器变得越来越复杂,并将保持在RAM读取,直到方便的时候写回到磁盘。 为了数据完整性,一些应用程序还会将临时“回滚”文件写入磁盘,最终将与主数据集合并在一起。 RAM越多,读取的磁盘就越less(因为经常访问的文件通常会caching在RAM中),操作系统可以隐藏缓慢的写入。