It has been a while that i haven’t blogged about systemtap, so it’s time to introduce the new version of StapOra which include some bugs correction and enhancement.For more info on StapOra here and here.
Here is a quick overview :
- Top wait events
- Wait events histograms <– new part
- Time spent on the run queue
- IO wait time
- Top kernel function
- Top user function
- Consistent Read by object
- Consistent Read elapsed time and cpu time
- Number of context switches
New part : Wait events histograms
I have included Luca Canali code for displaying Wait events histograms.
Bug fixes and enhancement:
1- Improved wait event snapping (Up to 1000 snap/sec) controlled by the second argument to stapora (number of ms).
2- Removed function offset from top user/kernel functions.(Focus on function name and not in line number)
3- Removed the need for addr2line for displaying userspace symbol name.(Using ustack and usymname inplace of ucallers and print_usyms )
4- Correcting histogram display of cr by objects and scheduler switch
Example : (oracle 11.2.0.4 / OEL 6 / UEK 4 )
DOWNLOAD : stapora.stp
That’s it 😀
Hi Mahmoud,
really good stuff here. Could you please provide you exact linux kernel version as well as systemtap version ?
Thanks 🙂
Hi Oliver,
My systemtap version is 2.7 and i am using oracle enterprise linux 7 with kernel version 3.10 (Red Hat compatible kernel).You can use older kernel or linux version but to have CR I/O duration(elapsed and cpu time) histogram an measurement section you must have at least kernel version 3.10 because there are some restrictions on the use of the return probe for userspace function.
Hope that help 😀
I have similar question regarding kernel version , for example I have a lot problem with kernel version 3.10.0-327.el7.x86_64 (OEL 7.2) , when I need to use opiprs I get this error regarding inode-offset
— > probe process(“/u01/app/oracle/product/12.0.1.2/dbhome_1/bin/oracle”).function(“opiprs”) inode-offset 0000000002cfb010 registration error (rc 0)
Hi Adam,
It appear that there some problem when using uprobe on an ORACLE 12.1 version with newer kernel.As stated by Luca Canali : “However, for Oracle 12.1 I find that uprobes works OK on RHEL7.0 (kernel 3.10.0-123) and UEK (kernel 3.8.x), but does not work for kernels that ship with RHEL 7.1,7,2 and anything higher (including UEK4).” https://db-blog.web.cern.ch/blog/luca-canali/2016-01-linux-perf-probes-oracle-tracing
For testing try to use oracle 11.2.0.4 with new kernel such as UEK4 .