3

I would like to measure "truly" hard page faults, i.e. page faults that result in a disk IO.

It looks as if Memory\Page Reads/sec might do the trick, but as was explained in this answer, the page reads value includes reads that are satisfied from the file system cache, never reaching the disk. That seems to be the reason why the count of Page Reads/sec is consistently higher than the actual disk IOPS as measured by the counter Physical Disk\Disk Reads/sec.

My question is: How can I measure the number of read and write page faults per second reaching the disk?

Helge Klein
  • 2,031
  • 1
  • 15
  • 22

1 Answers1

0

It's been a year and no one's answered this. While I'm not expert on the subject of MS windows by any means, I believe you may want to look at "\Memory\Pages Input/sec" and "\Memory\Pages Output/sec". Microsoft has long descriptions of these values via their PDH library. Some are described here. You can search that page for "hard fault", but you won't find exactly what you're looking for (only hard faults) Here's a paste of their description of "Memory\Pages Input/Sec" which may be of help, YMMV:

Pages Input/sec is the rate at which pages are read from disk to resolve hard page faults. Hard page faults occur when a process refers to a page in virtual memory that is not in its working set or elsewhere in physical memory, and must be retrieved from disk. When a page is faulted, the system tries to read multiple contiguous pages into memory to maximize the benefit of the read operation. Compare the value of Memory\Pages Input/sec to the value of Memory\Page Reads/sec to determine the average number of pages read into memory during each read operation.

An I should add, in Windows 8 and up, you can poll these values from the powershell command line with the Get-Counter command, e.g. Get-Counter -Counter "\Memory\Pages Input/sec"

erco
  • 101
  • 1