Using the middle tier to understand cross-tier delay in a multi-tier application

Understanding the cause of poor performance in a multi-tier enterprise application is challenging, because a performance bottleneck on any tier may cause the whole system to be under utilized, and to fail its throughput or quality of service goals. This paper presents an approach that focuses on the application server to identify bottlenecks in a multi-tier application that are caused by tiers other then the application server. The approach uses a performance tool, named SLICE, that selectively tracks method invocations that cross tier boundaries, and extracts contextual information associated with these invocations. SLICE also collects information from the operating system's scheduler to determine when a thread is blocked. Using the contextual information from method invocations and the information of when a thread is blocked from the operating system, SLICE computes cross tier delay. Experiments on DayTrader, a multi-tier application, show that performance bottlenecks caused by clients or database servers can be identified using cross tier delay.

[1]  Ian M. Steiner,et al.  A characterization of a java-based commercial workload on a high-end enterprise server , 2006, SIGMETRICS '06/Performance '06.

[2]  Richard Mortier,et al.  Magpie: Online Modelling and Performance-aware Systems , 2003, HotOS.

[3]  George Candea,et al.  Toward Self-Healing Multitier Services , 2007, 2007 IEEE 23rd International Conference on Data Engineering Workshop.

[4]  Eric Koskinen,et al.  BorderPatrol: isolating events for black-box tracing , 2008, Eurosys '08.

[5]  Marian Bubak,et al.  Architecture of Monitoring System for Distributed Java Applications , 2003, PVM/MPI.

[6]  Thomas Fahringer,et al.  Analysis of Distributed Java Applications Using Dynamic Instrumentation , 2005, 2005 IEEE International Conference on Cluster Computing.

[7]  Guillaume Pierre,et al.  Towards autonomic hosting of multi-tier internet applications , 2006 .

[8]  Randy H. Katz,et al.  X-Trace: A Pervasive Network Tracing Framework , 2007, NSDI.

[9]  Julio César López-Hernández,et al.  Stardust: tracking activity in a distributed storage system , 2006, SIGMETRICS '06/Performance '06.

[10]  Sheng Liang,et al.  Java Virtual Machine Profiler Interface , 2000, IBM Syst. J..

[11]  Matthias Hauswirth,et al.  Automating vertical profiling , 2005, OOPSLA '05.

[12]  Barton P. Miller,et al.  Diagnosing Distributed Systems with Self-propelled Instrumentation , 2008, Middleware.

[13]  Joseph L. Hellerstein,et al.  ETE: a customizable approach to measuring end-to-end response times and their components in distributed systems , 1999, Proceedings. 19th IEEE International Conference on Distributed Computing Systems (Cat. No.99CB37003).

[14]  David J. Lilja,et al.  JaViz: A client/server Java profiling tool , 2000, IBM Syst. J..

[15]  Matthias Hauswirth,et al.  Vertical profiling: understanding the behavior of object-priented applications , 2004, OOPSLA.

[16]  David E. Culler,et al.  The ganglia distributed monitoring system: design, implementation, and experience , 2004, Parallel Comput..

[17]  Eric Anderson,et al.  Extensible, Scalable Monitoring for Clusters of Computers , 1997, LISA.

[18]  Eric A. Brewer,et al.  Pinpoint: problem determination in large, dynamic Internet services , 2002, Proceedings International Conference on Dependable Systems and Networks.

[19]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.