我的硬盘速度为5400RPM,并且在处理10GB大小的文件时无法使用计算机,直到大文件重新创建新的副本/合并/写入/等为止。取决于进程,问题是它消耗了所有HDD的速度,并且在此进程运行期间无法使用其他程序。
所以我在想,也许我可以限制所用程序的HDD写入速度,以便在处理大文件时保留免费的HDD剩余速度用于浏览Internet或播放mp3。
我的硬盘速度为5400RPM,并且在处理10GB大小的文件时无法使用计算机,直到大文件重新创建新的副本/合并/写入/等为止。取决于进程,问题是它消耗了所有HDD的速度,并且在此进程运行期间无法使用其他程序。
所以我在想,也许我可以限制所用程序的HDD写入速度,以便在处理大文件时保留免费的HDD剩余速度用于浏览Internet或播放mp3。
Answers:
不幸的是,你不能那样做。硬件是从应用程序甚至操作系统的一部分中抽象出来的。本质上,应用程序说“将其写入磁盘”,然后操作系统将对其进行处理。该应用程序无法处理如何甚至何时写入。所有这些都是在驱动程序和内核级别处理的,没有真正的方法可以更改它。
即使可以做到这一点,事实是您使用的是旋转磁盘-磁盘速度很慢-您不会看到太多收益。驱动器不断旋转,磁头沿着磁盘移动。即使您较少写入文件,磁盘也会不断地在磁盘上寻找正确的区域以进行读/写操作。
你最好的办法是让另一个驱动器,做该驱动器上你的工作,让你的第一个驱动器为您的互联网,MP3等
PS:您没有提到有多少RAM。交换可能是速度慢的一个因素。根据您有多少RAM,增加更多内存只会有所帮助。
ionice
难道不是一个答案吗?
进程套索允许您确定I / O的优先级。从他们的常见问题解答中:
Process Lasso是v4.1(v4.09 beta)中的新增功能,具有明确的当前和默认I / O优先级设置,可用于需要它们的人员。这仅适用于NT6 +(Vista,Win7等)。
但是,Vista的I / O优先级基于执行I / O的线程的优先级,而优先级取决于执行I / O的进程的优先级。实际上,应用程序只能使用两个级别的优先级:“正常”和“非常低”。尽管从技术上讲有5个,但是只有这两个可以由流程实现或使用。
因此,线程优先级的调整将传播到该线程的I / O。这样,进程套索已经对I / O进行了优先排序。Microsoft建议应用程序通过设置调用线程的优先级(直接或通过调整进程优先级基类)来调整其I / O优先级。
wmic process where name="calc.exe" CALL setpriority "idle"