我有一台 Windows 7 64 位计算机,它存在性能问题。经过一番调查,我发现性能监视器报告的每秒页面错误率非常高。
其余一切似乎都很正常。资源监视器报告没有硬故障,并且有大量可用内存。
这是导致问题的潜在原因吗?还是只是转移注意力的借口?如果这是导致问题的原因,我下一步该怎么做才能找出导致问题的原因?
这是性能监视器的屏幕截图。请注意,平均页面错误/秒为 75,887。在另一台没有问题的计算机上,这个数字接近 3,000。
下面是资源监视器的屏幕截图,按硬故障/秒排序,目前所有进程的硬故障/秒均为 0。
答案1
进程探索器有一列可用于检查产生了多少个页面错误,
这样您就可以识别导致问题的程序并进行更具体地故障排除。
性能监视器:平均页面错误/秒:
这个计数器给出了请求的信息不在应用程序(和 VMM)期望的位置. 信息必须从内存中的另一个位置检索或来自页面文件。回想一下,虽然持续的值可能表示此处存在问题,你应该更关心代表实际读取或写入磁盘的硬页面错误请记住磁盘访问比 RAM 慢得多。
答案2
硬页面错误是指内存管理器发现其所需的内存块不在 RAM 中。该内存已被交换到磁盘,并且系统速度会变慢,因为从磁盘获取内存需要更多时间。向系统添加更多内存以减少页面错误的数量并提高性能。
答案3
“页面错误/秒”包括软错误(可以从 RAM 提供的页面/向 RAM 提供的页面)和硬错误(必须从磁盘提供的页面/向磁盘提供的页面)。因此,较高的“页面错误/秒”值并不一定意味着存在问题。软页面错误的示例包括将转换列表中的页面(它由备用列表和已修改列表组成;它们包含暂时未使用的内存页面,这些页面是分页到磁盘的候选页面(如果未修改则丢弃),但仍在 RAM 中)转换为活动页面以及将活动页面转换为转换列表。在 Windows 10 中,当压缩页面转换为活动页面时也可能发生这种情况(因为 Windows 10 具有内存压缩功能)。
要查看硬故障,您可以使用页面数/秒、页面输入/秒或页面输出/秒计数器。
答案4
这是《Windows Internals》一书中关于页面错误的表格。(我排除了导致访问冲突的那些):
- 故障原因 - 结果
- 访问不在内存中但位于磁盘上的页面文件或映射文件中的页面 - 分配物理页面,并从磁盘读取所需页面并将其读入相关工作集
- 访问待机或修改列表中的页面 - 将页面转换到相关进程、会话或系统工作集
- 访问需求零页 - 将零填充页添加到相关工作集
- 写入写时复制页面 - 创建页面的进程私有(或会话私有)副本,并替换进程或系统工作集中的原始副本。
您可以参考该问题以了解更多详细信息什么原因导致页面错误
有 很多 理由 必须 这么做page fault
.