Getting insights with DTrace - Part 1

Version 9 by vwetter
on Jun 08, 2009 01:48.

compared with
Current by vwetter
on Jun 24, 2009 05:45.

Key
This line was removed.
This word was removed. This word was added.
This line was added.

Changes (4)

View page history
Now it would be great to get a better understanding of what's happening behind the scenes in both scenarios. Again, a small DTrace script doing kernel profiling can give us an impression:
{noformat} {code}
#!/usr/sbin/dtrace -s
#pragma D option flowindent
self->duration[probefunc] = 0;
}
{noformat} {code}

There is one parameter passed to the script which is the pid of the Oracle LGWR process. The script uses the fbt (function boundary tracing) provider. fbt provides entry and return probes of most Solaris kernel functions. This time we are particularly interested in the UFS module. Basically we are tracking elapsed time between entry and return. In addition we are using the flowindent option to create more readable output providing a clear picture of the call hierarchy.
In case you have no access to Oracle statspack or AWR reports (or even have no license for Oracle Enterprise Manager diagnostics pack), you may run the following script to get an idea for the average redo write time of LGWR:
{noformat} {code}
#!/usr/sbin/dtrace -s
self->ts = 0;
}
{noformat} {code}

This script uses an aggregation (@time[]) to calculate the average elapsed time when entering the return probe.

The individuals who post here are part of the extended Sun Microsystems community and they might not be employed or in any way formally affiliated with Sun Microsystems. The opinions expressed here are their own, are not necessarily reviewed in advance by anyone but the individual authors, and neither Sun nor any other party necessarily agrees with them.

Copyright 1994-2009 Sun Microsystems, Inc.
Powered by Atlassian Confluence
Sun Guidelines on Public Discourse Privacy Policy Terms of Use Trademarks Site Map Employment Investor Relations Contact