![仅测量到达磁盘的页面错误](https://linux22.com/image/716575/%E4%BB%85%E6%B5%8B%E9%87%8F%E5%88%B0%E8%BE%BE%E7%A3%81%E7%9B%98%E7%9A%84%E9%A1%B5%E9%9D%A2%E9%94%99%E8%AF%AF.png)
我想测量“真正的”硬页面错误,即导致磁盘 IO 的页面错误。
看起来好像Memory\Page Reads/sec
可以解决问题,但正如这个答案Page Reads/sec
,页面读取值包括从文件系统缓存中获取的读取,但从未到达磁盘。这似乎是计数器测量的计数始终高于实际磁盘 IOPS 的原因Physical Disk\Disk Reads/sec
。
我的问题是:如何测量每秒到达磁盘的读写页面错误数?
答案1
已经一年了,没有人回答这个问题。虽然我并不是微软 Windows 方面的专家,但我相信你可能想看看"\Memory\Pages Input/sec"
和"\Memory\Pages Output/sec"
。微软通过他们的 PDH 库对这些值进行了详细的描述。其中一些被描述为这里。您可以在该页面上搜索“硬故障”,但您找不到您要查找的内容(只有硬故障)。以下是他们对“Memory\Pages Input/Sec”的描述的粘贴,可能有帮助,YMMV:
Pages Input/sec 是从磁盘读取页面以解决硬页面错误的速度。当进程引用虚拟内存中不在其工作集或物理内存其他地方的页面并且必须从磁盘检索时,就会发生硬页面错误。当页面错误时,系统会尝试将多个连续页面读入内存以最大限度地提高读取操作的效益。将 Memory_Pages Input/sec 的值与 Memory_Page Reads/sec 的值进行比较,以确定每次读取操作期间读入内存的平均页面数。
我应该补充一点,在 Windows 8 及更高版本中,你可以使用以下命令从 powershell 命令行轮询这些值Get-Counter
,例如Get-Counter -Counter "\Memory\Pages Input/sec"