Introduction
Now that I am able to aggregate SytemTap probes by Oracle database, let’s focus on page faults.
For this purpose a new SystemTap script (page_faults_per_db.stp) has been created and has been added into this github repository.
page_faults_per_db
This script tracks the page faults per database. It reports the total number of page faults and splits them into Major or Minor faults as well as Read or Write access.
Usage:
$> stap -g ./page_faults_per_db.stp <oracle uid> <refresh time ms>
Output example:
$> stap -g ./page_faults_per_db.stp 54321 10000
---------------------------------------------------------------------------------------
DBNAME : READS_PFLT WRITES_PFLT TOTAL_PFLT MAJOR_PFLT MINOR_PFLT
---------------------------------------------------------------------------------------
BDT : 30418 22526 52944 22 52922
NOT_A_DB : 773 1088 1861 4 1858
Remarks
- In this post the word database stands for “all the foreground and background processes linked to an oracle database”.
- In a consolidated environment, having a view per database can be very useful.
- Should you be interested by this subject, then do read Hatem Mahmoud post.
Conclusion
We are able to track and group the page faults at the database level.