我一直注意到,每当磁盘使用率较高(超过 50%)时,整个计算机就会变慢,主要是资源管理器。
我的问题是,这背后的原因是什么?为什么当磁盘使用率高时,性能却处于最低水平?这与 HDD 有关,还是与操作系统或 CPU 有关?
例如,我有一些不再需要的 Node 项目,所以我用它rimraf
来删除node_modules
包含数千个文件和目录的目录。在执行过程中,我注意到磁盘使用率约为 50%,而这段时间我真的什么也做不了。我无法浏览任何其他目录或右键单击文件夹。
我有 Windows 10 21H1 x64,它安装在与我要删除的文件不同的驱动器(SSD)中。我也尝试搜索此问题的答案,但大多数结果都是关于修复导致 100% 磁盘使用率的问题。
答案1
硬盘一次只能读取一个磁道(或多个连续磁道)。如果磁头必须移动才能获取下一个逻辑磁道,则需要花费一些时间。
5400-rpm 硬盘在经济型机器中很常见,与 7200-rpm 硬盘相比非常慢,与 SSD 硬盘相比更是如此。
如果可以的话,加快硬盘访问速度的一种方法是(a)查看是否可以删除或撤消许多减慢访问速度的小文件,以及(b)将碎片整理设置为自动并运行(比如说)每周一次。
如果您可以转换为 SSD,这将大大缓解您的问题。
答案2
速度慢是由于微软的实现选择、开发人员的编程选择或用户的配置选择不当造成的。文件删除不应该具有高优先级。
微软实际上建议开发人员重命名该文件(在编程时)以获得更快的删除(在允许重用文件名的意义上)。
它也可以在运行时完成,以同步方式重命名的删除脚本或程序,然后以较慢的速度和异步方式删除重命名的文件。
rimraf 有很多选择。你有没有尝试过rimraf.moveRemove(路径,[opts])?
您还可以尝试在与节点不同的进程中调用删除并设置较低优先级在这个过程当中