讨论一下机械硬盘的下载存储

平时喜好下载一些视频,经常都是七八条同时进行下载,但是这样对磁盘多线程进行写入,会导致磁盘碎片化非常严重,后期访问文件时会影响因为磁道的不连贯而影响性能。虽然微软有提供磁盘整理工具,不过效果并不是很好。

所以我想到一个办法,下载目录改至一个专有磁盘空间,可以是固态或者机械硬盘。当下载完成后再拷贝到机械硬盘中,这样就能解决文件碎片化的问题了。

我觉得 NAS 提供 SSD 缓存大概就是这个道理。

先写入 SSD 然后慢慢存入磁盘。

有些软件会在创建下载任务的时候就按照要下载文件的大小去先创建一个同样大小的空文件应该也是这个道理吧。

下载工具基本都有缓存设定,也是解决这个问题的

迅雷最大支持512MB的缓存, 不用担心. 下载用固态毁的会更快.

如果有钱, 可以上超大内存.

然后设置一个超大的内存盘(把内存映射为磁盘), 这样再复制到机械硬盘, 你的担心就最小化了.

前面说到的下载时就创建一个空文件来预先占用硬盘空间,我估计是平台差异化的问题,mac平台迅雷下载是下了多少就占用多少,而win平台就是先占用那么大的空间,再把数据写入里面,但是一样没法解决碎片问题。

实际上你说的缓存也并不能解决磁盘碎片的问题,虽然我也不是很懂这个缓存实际是什么的作用。

毕竟如果这两种方式都能解决掉文件碎片的话,我就不会发现文件碎片影响性能的问题了。

预分配空间应该是很多软件都有的功能,和平台无关。

缓存肯定有用,不要怀疑,尤其是用大内存做 ramdisk,对硬盘的损伤最小。

我的方案:把笔记本和老 台式机上拆下的硬盘放在硬盘盒里,USB 连接,当专用下载盘,坏了就坏了,一点也不心疼
Snipaste_2021-12-18_20-41-25

预写文件有2个好处:

  1. 避免下到一半才发现磁盘空间不足的问题.

  2. 存储连续性. 机械硬盘的原理大概是磁头读写随机停放, 以便延长寿命. 先占用大空间大多数情况下会让磁盘先写下大块连续空间, 但是如果没有一整块连续空间, 就会分成几块. 尽管如此, 也会很大程度减少磁盘碎片.

缓存的作用就是每次写入磁盘的块大小.

比如 缓存是20MB, 就会每次写入20MB大小的文件. 如果一个文件10G, 磁头就大概需要写入512次, 还不算系统其他程序的读写操作.

如果缓存是 512MB, 10G的文件就大概需要写入20次.

所以, 预写文件是为了减少磁盘碎片. 大缓存是为了减少磁头读写次数.

对于机械硬盘来说, 大缓存会保护磁头, 预写文件会减少但不会消灭磁盘碎片.
对于固态硬盘来说, 频繁擦写本身就会减少寿命. 至于磁盘碎片问题反而不用担心.

如果很担心磁盘性能, 可以用固态装系统, 机械硬盘存下载文件.