优化 Windows 上的 I/O

优化 Windows 上的 I/O

我目前正在组装一台新电脑,其规格如下:

  • Windows 7旗舰版
  • 英特尔酷睿 2 2.6
  • 2GB 内存
  • 硬盘驱动器
    • 150GB SATA 硬盘
    • 180GB SATA 硬盘
    • 200GB SATA 硬盘
  • 512MB Express GFX 卡

现在我的问题主要与硬盘有关,大多数人都知道计算机的主要瓶颈是硬盘,事实上它需要一个硬盘,它不能同时从两个地方读取/写入。

我正在尝试加快硬盘的 I/O 速度,这对我自己来说是一个学习曲线,但我认为这个问题是合理的,但我不确定可能影响我所考虑的事情的其他因素。

因为我有 3 个硬盘,我想知道是否可以将 Windows 操作系统分布在多个硬盘上,这样大部分操作系统(程序文件)就可以放在单独的驱动器上,从而分散 I/O 瓶颈以减轻负载。

现在我明白了 Linux 发行版是这样做的,例如主文件夹可以放在单独的硬盘上。

  • 会不会是好的将 I/O 分散到多个硬盘上的想法
  • 这在基于 Windows 的操作系统上可行吗?
  • 还有其他方法可以加速 I/O 吗

如上所述,这不是我需要在这台计算机上做的事情,但如果可能的话,我想知道该怎么做。

问候


我读到的一个可能的解决方案是,在安装 Windows 7 并进入“创建用户”屏幕后,如果您按Shift+ F10,您将获得命令提示符,然后您可以执行以下操作:

  • 在硬盘上创建分区。
  • 将所有文件从用户数据和程序文件复制到新位置
  • 打开注册表编辑器并更改一些键以指向新位置
  • 继续创建用户,应该一切正常。

答案1

这里的瓶颈是硬盘 - 正如您提到的那样 - 但这不是您描述的并发问题。事实上硬盘比 RAM 慢很多倍。

如果你想加快你的计算机速度:

  • 购买更多 RAM - 比如 4GB,因为 2GB 基本上是当今的最低标准
  • 买最快的硬盘——我认为是 7200RPM

但是,如果您想“扩展”您的操作系统,您可以通过跨磁盘条带化来实现。查看 RAID 以了解更多信息,因为通常,这种条带化是为了在硬盘发生故障时复制数据。http://en.wikipedia.org/wiki/RAID

  • 我还建议将 Duel Core 换成 Core 2 Duo,它们要好得多

记忆是如何运作的

您的计算机会将尽可能多的数据存储在 RAM 中。这样,当计算机需要任何数据(无论是文件还是指令)时,它都可以简单地查看内部内存以获得超快速响应。如果该数据不在内存中,则必须转到硬盘驱动器来获取。这需要花费大量时间,因为物理设备速度很慢。

当计算机的 RAM 满了之后,它必须将一些内容重新存储到硬盘上,并从硬盘中获取所需的新内容并将其放入 RAM 中。如果您正在运行一个庞大的程序或同时做很多事情,那么您就会遇到计算机不断将内容从 RAM 移动到硬盘的情况,因为您的工作内存集(您真正需要和正在使用的内容)不再适合 RAM - 这称为抖动,您会听到硬盘发出噪音,并且您的计算机会变得非常缓慢和迟钝。

因此,RAM 越多,可以放入超快速内存中的内容就越多(而不是从 HD 中获取),等待 HD 的时间就越少,计算机的整体运行速度就越快。


回答您的问题:

Would it be a good idea to spread the I/O across several hard drives

就加速电脑而言,你实际上不会看到太大的差别。购买更多 RAM 是最有效的解决方案。

如果您有备份意识,RAID 绝对不是一个坏主意,而且可以实现您的目标。

这在基于 Windows 的操作系统上可行吗?

是的,但更常见的是物理方式执行,并在 BIOS 中控制。请参阅此操作指南:http://www.pcmag.com/article2/0,2817,2249572,00.asp

还有其他方法可以加速 I/O 吗

从性价比上来说:

  • 购买更多 RAM
  • 购买更好的处理器
  • 购买 7200RPM 磁盘

答案2

如果您的意思是将一个驱动器用于操作系统,将另一个驱动器用于所有数据存储,那么您可以这样做。

您需要做的就是在一个硬盘上安装 Windows,然后一旦您进入 Windows,只需简单地转到C:\Users\**USERNAME**,您将看到所有用户文件夹,只需右键单击每个文件夹并转到属性。然后转到位置,将位置更改为第二个硬盘的位置,例如,如果您的第二个驱动器号是 H,那么要更改文档文件夹位置,只需使用 H:\Documents

这将在第二个驱动器上执行所有数据存储,而所有操作系统 I/O 将在 OS 驱动器上完成。

编辑:

要移动其他 Windows 文件夹的位置,请考虑使用mklinkwindows 命令

以下是有关如何执行此操作的简单教程: http://windows7themes.net/windows-7-mklink-command-use-to-create-symbolic-links.html

如果你这样做,你可能会遇到错误

mklink /J "C:\Program Files" "H:\Program Files"

因为它抱怨 C:\Program Files 存在。

以下是解决此问题的一种可能方法: http://tuts4tech.net/2009/08/05/windows-7-move-the-users-and-program-files-directories-to-a-different-partition/

答案3

折衷措施:无论何时安装任何东西,都告诉它安装到另一个驱动器上的某个目录(我讨厌称它们为“文件夹”)。这确实很乏味。

更好的答案是继续像往常一样安装系统,然后使用“动态磁盘”并将系统和启动分区转变为双成员 RAID-1(镜像)集。

这为您提供了极好的读取吞吐量,因为任何读取都可以从任一驱动器完成 - 如果一个驱动器繁忙,另一个驱动器可以完成。这对于写入来说并不是很好,因为所有内容都必须写入两次(每个磁盘一次),但操作系统不会花费大量时间写入大部分系统或启动分区。如果“写入时间”让您感到困扰,那么您可以将第三个驱动器用于 \users 和页面文件。

冗余性是其一大优点:两个磁盘始终保持同步,因此如果其中一个磁盘发生故障,您仍然可以使用另一个磁盘。无需“运行备份”,备份就在那里。想要保留异地备份?关闭,取出一个驱动器,将其存放在安全的地方。放入另一个驱动器,然后启动。您的系统将(应该)正常启动,但磁盘管理器会抱怨镜像设置已损坏。告诉它使用新驱动器重新建立镜像,它将复制所有内容,然后您又有了 RAID-1 阵列。

这一页:http://sourcedaddy.com/windows-7/mirroring-boot-and-system-volumes.html对如何完成这一操作有一个相当完整的描述。

动词。Sap.:“系统”卷是 BIOS 启动的卷;它很小(通常为 100 MB),上面有 \BCD 目录。“启动”卷是 \Windows、\Program files 等所在的卷。

答案4

我能找到的只有以下两样东西:

似乎将一些 Windows 文件放在另一个驱动器(不在系统驱动器中)上来提高性能的唯一方法是只将交换文件放在另一个驱动器上。我见过一些人甚至在另一个驱动器上创建 TEMP 文件夹,并将 TEMP 和 TMP 的 Windows 环境变量更改为指向新文件夹。

http://essayboard.com/2011/08/22/increasing-file-system-cache-size-to-improve-system-performance-in-windows-7/comment-page-1/

这是一个注册表黑客,它告诉 Windows 使用更多内存进行文件 I/O,但我不确定这是否与大型系统缓存相同。由于我有 8 GB 的 RAM,所以我这样做了,并且确实发现我的 PC 速度更快了。

http://www.online-tech-tips.com/computer-tips/simple-ways-to-increase-your-computers-performace-configuring-the-paging-file/

相关内容