Getting the virtual memory address for (major) page faults

view story

http://serverfault.com – On a Linux (Cent OS 5) system, I have a process that accesses a large amount of memory mapped files. The process is generating a large amount of page faults because the aggregated size of the mapped files exceeds the available RAM by far. If I had a way of not only counting the page faults but logging the virtual address where the fault occurs, I could use /proc//maps or pmap to get an estimate of how the reads are spread out across the mapped files and how much additional RAM would be needed to improve the situation. (HowTos)