Solaris Performance Analysis Methodology (The APM) - part 1b
By mrbenchmark on Nov 17, 2005
As promised in my previous post, I am continuing the exposé of the way I analyze
customer workloads. Please note that the way you will approach this mission can be :
- Personal - To be successful and have an happy customer (or consumer using a DTrace analogy), you may have to follow your own logic.
- Traditional - The
traditional approach is to start with a general tool (vmstat, prstat or
sar) and drill down into interesting areas.
- Based on previous analysis - You don't need to understand the whole performance picture and can focus on a specific issue.
The APM for Solaris
Part 1 (continued) - Control what's running
Based on my previous post, you now have a better idea of what's going on in the different
layers of your architecture. But, what about the quality of this applications ? The most
common reaction that I get on this question is : "We can't do anything about it". This may
be true for commercially available application like a database or a web server. In fact, I found out that for a majority of our customer, we can improve performance by doing one
very simple thing : Recompile with a modern compiler and adequate flags.
(for Java, read this as : Use the latest supported JVM with adequate flags).
Please remember that Sun Studio 11 is now FREE. You have no excuse not to use it. A
better question is how you can find out what compiler was used for a specific binary.
An old Unix System V tool named elfdump is hidden under /usr/ccs/bin with other tools like prof or lex. (usually it is not in your path - just add it ). Note that elfdump -C can demangle C++ names. For example :
elfdump -c /iGen/iGen_all |grep "SUNWspro"
Convincing your customer to re-compile is sometimes difficult but will most of the time
yield performance gains. Fundamentaly, the quality of the instructions executed
by the processors is key. Using the -fast flag (it will be automatically expanded to a set of
platform dependant flags) is a good place to start.
Well, that's it for today.
See you next time in the wonderful world of benchmarking.