
Brian Doherty
Software Staff Engineer, Java Performance Engineering Group,
Sun Microsystems, Inc.
Brian Doherty is a Staff Engineer in the Java Performance Engineering
group at Sun Microsystems, where he works on performance analysis and
tuning of Java technology based benchmarks and customer applications.
Brian is the principal engineer for the jvmstat project, which provides
an instrumentation infrastructure for the HotSpot Java Virtual Machine
and a set of tools for viewing this instrumentation.
Prior to joining the Java Performance Engineering group, Brian was
a System Engineer, specializing in Java Technologies and working with
large financial, telecommunication, and retail customers in the
mid-western region of the United States.
Before coming to Sun Microsystems in 1994, Brian worked for AT&T
Bell Laboratories in Naperville, IL for nearly 10 years where he
worked on a high availability application framework, virtual machine
technologies, and a fault tolerant variant of the UNIX operating
system used in various AT&T switching systems.
Outside of work, Brian enjoys golf, biking, roller blading, and
spending time with his family.
According to Brian...
The Java Performance Engineering team is routinely running industry
and customer benchmarks. We find that many of the available mechanisms
for extracting Java Virtual Machine performance data are too intrusive
from either an application availability or performance perspective.
This is particularly true when we need to gather performance data from
live customer applications, where setting command line options or
enabling JVMPI based tools is out of the question. Our ability to
unintrusively gather configuration and performance data in these
situations is critical to solving this class of performance problems.
When looking at this problem, David Stoutamire and I considered the
ease of collecting performance data with the Solaris operating system
and asked ourselves how we could make observability of the JVM just
as easy. We concluded that the HotSpot JVM needed to provide always-on
instrumentation that can be accessed with lightweight tools that don't
compromise the performance or availability of the application. Given
that the inspiration for this concept was the UNIX style 'stat' tools,
it seemed natural to name the technology 'jvmstat'.
The jvmstat project adds light weight performance and configuration
instrumentation to the HotSpot Java Virtual Machine and provides a
a set of tools for monitoring this instrumentation. The jvmstat tools
allow this data to be collected in an unintrusive way. Optional with
HotSpot 1.4.1, and enabled by default in HotSpot 1.4.2, the HotSpot
JVM provides information on the configuration and performance of the
generational garbage collection system, the JIT compiler, and the class
loader. This set of instrumentation was chosen as it corresponds with
the data available through various command line options; options that
we typically request when analyzing a customer performance issue.
The visualgc tool was originally an application developed by Ben Kim
for the 'Big Iron' talk given by David Stoutamire at JavaOne in 2001.
Its original purpose was to demonstrate how the relationships between
the spaces and generations in the heap can change the performance
characteristics of a Java application. Dave and I agreed that an
adaptation of this tool to live instrumentation would make a killer
jvmstat demo, and thus visualgc was reborn as a useful monitoring tool.
Why CoolStuff?
The Java Performance Engineering group has been using the jvmstat
tools to monitor various industry benchmarks for over a year. The
coolstuff website provides an opportunity to make these tools
available for our customers. With these tools, we hope to get more
accurate configuration information and more easily obtained performance
information from customers, allowing us to better solve their
performance problems. We expect that developers and system administrators
will benefit from these tools by getting better insight into the
relationship between their application and the HotSpot JVM. Finally,
we also hope to get customer feedback on the usefulness of these
tools.
Contact jvmstat-support@sun.com if you encounter bugs or have questions/comments regarding the jvmstat technology.
|