这个答案是关于OP问题的第二部分 - “我可以对此做点什么吗?” 是!
Windows Vista及更高版本允许您指定称为“专用转储文件”的内容。 (我将简称DDF。)
可以把它想象成一个页面文件,但操作系统已被告知永远不要将它用于页面文件(从而在分页驱动器上保留实际的页面文件I / O)。但是因为它“像页面文件”,操作系统可以在BSOD时使用它来临时存储转储信息。重新启动后,它将被复制到您以正常方式指定的转储文件。
更重要的是,DDF甚至不必在您的启动分区上!它可以位于“可以支持页面文件的任何本地卷”上。 (这消除了可移动驱动器,例如USB和Windows群集存储上的任何东西。)
设置起来很简单,但没有用户界面,所以它确实需要注册表。
在注册表项中 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\CrashControl
,创建一个名为的值 DedicatedDumpFile
类型REG_SZ。将字符串设置为DDF所在的完整路径。您不必自己预先创建文件。例如, C:\DUMPTEMP.SYS
默认情况下,操作系统会将其大小设置为RAM + 256 MB。您可以使用同一键下的另一个注册表值手动指定大小:值名称 DumpFileSize
,键入REG_DWORD,value =您想要的大小 以兆字节为单位 。那些将是微软风格的“二进制兆字节”。因此,如果你想要它是“4 GB”,真的是“4 GiB”,你应该在这里使用1024作为值。
更多信息请参阅 这篇MSDN文章 。
虽然我在这里,但如果我没有指出“一个物理上分离的页面文件”通常没什么区别,除非你经常访问它,否则我会感到疏忽...如果你是,那就太多了添加RAM更有效。
您的所有进程正在使用的所有exe,dll和其他映射文件?实际上,这些也是页面文件!因此,将页面文件移动到另一个驱动器只会隔离该文件的分页I / O.您的系统仍将从OS驱动器上的所有其他内存映射文件进行分页,在某些情况下仍将分页。
同样,禁用页面文件不会消除磁盘分页(当然也不会关闭虚拟内存) - 它只会消除一个 百 OS页面的文件。
但是,将您的唯一页面文件移动到磁盘本身可以让您使用该驱动器的磁盘I / O性能计数器来查找系统实际执行的页面文件I / O数量。没有其他办法可以做到这一点,因为像“Page read I / O”这样的PerfMon计数器确实包含了对所有内存映射文件(如exe和dll)的页面读取I / O.