Wait-Time Analysis Method: New Best Practice for Performance Management



Similar documents
WAIT-TIME ANALYSIS METHOD: NEW BEST PRACTICE FOR APPLICATION PERFORMANCE MANAGEMENT

SQL Server Performance Intelligence

Response Time Analysis

Response Time Analysis

Response Time Analysis

White Paper. The Ten Features Your Web Application Monitoring Software Must Have. Executive Summary

The Missed Opportunity for Improved Application Performance

A Comparison of Oracle Performance on Physical and VMware Servers

<Insert Picture Here> Java Application Diagnostic Expert

Installation and User Guide

A Comparison of Oracle Performance on Physical and VMware Servers

The Evolution of Load Testing. Why Gomez 360 o Web Load Testing Is a

Monitoring and Diagnosing Production Applications Using Oracle Application Diagnostics for Java. An Oracle White Paper December 2007

Five Trouble Spots When Moving Databases to VMware

Quick Start Guide. Ignite for SQL Server. Confio Software 4772 Walnut Street, Suite 100 Boulder, CO CONFIO.

Five Trouble Spots When Moving Databases to VMware

SolarWinds Database Performance Analyzer (DPA) or OEM?

LEVERAGE YOUR INVESTMENT IN DATABASE PERFORMANCE ANALYZER (CONFIO IGNITE) OCT 2015

Zing Vision. Answering your toughest production Java performance questions

IBM Tivoli Composite Application Manager for WebSphere

Load Testing and Monitoring Web Applications in a Windows Environment

Monitoring applications in multitier environment. Uroš Majcen A New View on Application Management.

WHITE PAPER. SAS IT Intelligence. Balancing enterprise strategy, business objectives, IT enablement and costs

Optimizing Your Database Performance the Easy Way

Confio Ignite. Installation and User Guide

Is ETL Becoming Obsolete?

Databases Going Virtual? Identifying the Best Database Servers for Virtualization

Performance Management for Call Centers

Unifying IT How Dell Is Using BMC

ITIL V3: Making Business Services Serve the Business

Access to easy-to-use tools that reduce management time with Arcserve Backup

Optimizing Service Levels in Public Cloud Deployments

Disk Storage Shortfall

5 Steps to Adopting Agile IT Infrastructure Monitoring Necessary for a Customer-Driven World

Datasheet FUJITSU Cloud Monitoring Service

The top 5 reasons you need synthetic monitoring

Holistic Performance Analysis of J2EE Applications

Application Performance Monitoring (APM) Technical Whitepaper

An Introduction to. Metrics. used during. Software Development

IT Performance & Capacity Management

RATIONALIZING THE MULTI-TOOL ENVIRONMENT

There are a number of factors that increase the risk of performance problems in complex computer and software systems, such as e-commerce systems.

Monitoring Databases on VMware

Service Quality Management The next logical step by James Lochran

Introduction. AppDynamics for Databases Version Page 1

Now Leverage Big Data for Successful Customer Engagements

Application Performance Management. Java EE.Net, Databases Message Queue Transaction, Web Servers End User Experience

A Wissen White Paper. Effectively utilizing an offshore Remote DBA team augmentation strategy to increase productivity and reduce costs

Optimizing IT Performance

Closing The Application Performance Visibility Gap Inherent To Citrix Environments

End-User Experience. Critical for Your Business: Managing Quality of Experience.

HP End User Management software. Enables real-time visibility into application performance and availability. Solution brief

3 keys to effective service availability management. Visibility. Proactivity. Collaboration.

HP Business Availability Center software. Improving IT operational efficiency and customer satisfaction

IBM Tivoli Composite Application Manager for WebSphere

Enterprise Resource Planning Analysis of Business Intelligence & Emergence of Mining Objects

Reducing Total Cost of Ownership for Oracle Retail

Getting Your Keywords Right

SQL Server Query Tuning

Programa de Actualización Profesional ACTI Oracle Database 11g: SQL Tuning Workshop

Tune That SQL for Supercharged DB2 Performance! Craig S. Mullins, Corporate Technologist, NEON Enterprise Software, Inc.

Winning the J2EE Performance Game Presented to: JAVA User Group-Minnesota

Detecta SQL Server Monitoring Solution

Intelligent Process Management & Process Visualization. TAProViz 2014 workshop. Presenter: Dafna Levy

Simplified Management With Hitachi Command Suite. By Hitachi Data Systems

HOW TO BUILD A. REQUIREMENTS ROADMAP FOR PROACTIVE IBM i SYSTEM MONITORING A DIVISION OF HELP/SYSTEMS

Business Usage Monitoring for Teradata

Transaction Performance Maximizer InterMax

Altosoft White Paper. Process Intelligence: Improving Operational Performance in the Insurance Industry. Executive Summary

Product Review: James F. Koopmann Pine Horse, Inc. Quest Software s Foglight Performance Analysis for Oracle

Oracle Database 11g: SQL Tuning Workshop

WHITE PAPER: ENTERPRISE SOLUTIONS. Symantec Insight Inquire Symantec i 3 Application Availability and Performance Management Solution

Agile Manufacturing for ALUMINIUM SMELTERS

Balancing the Risk and Reward of Outsourcing Contracts

SQL Sentry Essentials

vrops Microsoft SQL Server MANAGEMENT PACK OVERVIEW

PeopleTools Tables: The Application Repository in the Database

Best Practices for Managing Virtualized Environments

TECHNOLOGY WHITE PAPER. Application Performance Management. Introduction to Adaptive Instrumentation with VERITAS Indepth for J2EE

How Can I Deliver Innovative Customer Services Across Increasingly Complex, Converged Infrastructure With Less Management Effort And Lower Cost?

Process Remixes - Mixing Legacy with Process Orchestration

HP Business Availability Center software. Manage and optimize the health of business services and applications

Fault Tolerant Servers: The Choice for Continuous Availability

Ensuring Service Levels for Enterprise Content Management Applications. A Unique Problem That Requires a Unique Solution

Move beyond monitoring to holistic management of application performance

Quest Solution for Application Performance Management

I D C T E C H N O L O G Y S P O T L I G H T. F l e x i b l e Capacity: A " Z e r o C a p i t a l " Platform w ith On- P r emise Ad va n t a g e s

Monitoring Microsoft Project Server

Smarter Balanced Assessment Consortium. Recommendation

One of the database administrators

A White Paper. The Best Practices Guide to Developing and Monitoring SLAs

Physicians are fond of saying Treat the problem, not the symptom. The same is true for Information Technology.

are you helping your customers achieve their expectations for IT based service quality and availability?

GETTING STARTED WITH ANDROID DEVELOPMENT FOR EMBEDDED SYSTEMS

Managing Application Delivery from the User s Perspective

Load Testing Basics: These are the basic ideas in setting up a load test By: Bob Wescott

Automating Healthcare Claim Processing

A White Paper. Best Practices in Automated Agentless IT Monitoring

How To Monitor Performance On Peoplesoft.Org

Integrated Performance Monitoring

Transcription:

WHITE PAPER Wait-Time Analysis Method: New Best Practice for Performance Management September 2006 Confio Software www.confio.com +1-303-938-8282

SUMMARY: Wait-Time analysis allows IT to ALWAYS find the root cause of the most important problem impacting customers, and always identify what critical resource must be addressed in order to resolve it. You can t tell how long something took by counting how many times it happened" 1 Introduction to Wait-Time Methods Until very recently, tuning of IT application performance has been largely a guessing game. This is both surprising and unacceptable considering the relentless focus IT organizations place on cost-efficiency and productivity. The traditional approaches for database and application tuning that involve collecting large volumes of statistics and making trial and error changes are still in widespread use. They may have a more sophisticated face these days, but most tools continue to deliver the same server oriented statistics that are disconnected from concrete end user benefits. The landscape is changing, however. Current thinking by leading consultants, DBAs and training organizations is focusing on performance tuning practices that are directly tied to end user service levels and improvements in operating efficiency. Wait-Time analysis is a new approach to application and database performance improvement that allows users to make tuning decisions based on optimal service impact. Using the principles of Wait-Time analysis described here, DBAs, developers and application owners can align their efforts with the service levels desired by their IT customers. Wait-Time analysis allows IT to always find the root cause of the most important problem impacting customers, and always identify which critical resource will resolve it. What is Wait-Time Analysis? Measure Time If you were trying to shorten your commute to work, what would you measure? Would you count the number of tire rotations? Would you measure the car s temperature? Would these statistics have any meaning in the context of your goal? All that really matters is that which impacts the time for your trip. All the other statistics are distractions that do not help your mission. This is the basis for Wait- Time analysis. Although this seems obvious, common IT practices would suggest that other practices hold the answer. Rather than immediately focusing on time to complete requested services, IT tools barrage the user with detailed statistics that count the number of many different operations. So while the DBA really should be looking at how long it took for the database to return the results of a query, typical tools display the number of I/O operations and locks encountered. Wait-Time analysis is the singular focus on measuring and improving SERVICE TIME to END- USERS. Get the Details Under the trial and error approach, what level of detail do you need to actively improve your commute time? If the only statistic you have is that the trip took 40 minutes, you can compare one day to the next, but there is not enough data to help improve the situation. What you need is detailed insight into how long you spent at each stoplight, which stretches of road have the most stop-and-go traffic and how long you waited there. This detail is essential to making the exercise useful. The same concept applies to IT performance systems. When Wait-Time is typically measured, a black box approach is taken, where the user sees how long a server took to respond to a request. However, no indication is given as to which of the thousands of steps performed by the server were actually responsible for the delay. 2 WAIT-TIME ANALYSIS:

As will be shown here, it is important not just to measure Wait-Time but to break it down into sufficient detail so that you can take action. Identifying EVERY STEP inside each layer for EVERY REQUEST exposes the true sources of End-User Wait-Time. Wait-Time analysis for IT applications is the singular focus of measuring and improving the service time to the IT customers. By identifying exactly what contributes to longer service time, IT professionals can focus not on the thousands of available statistics, but on the most important bottlenecks that have direct and quantifiable impact on the IT customer. Figure 1: Ideal Analysis Exactly where is Every Request Spending Time? Service Level Management and measurement of Service Level Agreements (SLAs) directly depend on Wait- Time results. Wait-Time Analysis for Service Level Management Because Wait-Time analysis measures the collective time delays causing end users to wait for an information request, it is the measurement technique most closely matched to end user service levels. For organizations focused on Service Level Management (SLM) techniques, or those bound by Service Level Agreements (SLAs), Wait-Time analysis techniques allow the IT department to measure performance that is most relevant to achieving the stated service level goals. Service level management typically identifies technical metrics that define whether performance is adequate, and Wait-Time data is the basis for evaluating these metrics. Standard tools supplied by database vendors focus on counting events, not identifying Wait-Time The Problem with Conventional Statistics There are so many management tools gathering thousands of statistics from IT systems. Don t these provide the same answer as Wait-Time methods? Why are they not effective? Traditional approaches to database tuning and performance analysis introduce the same errors identified in the driving example above. 3 WAIT-TIME ANALYSIS: Too many statistics leads

1. Event Counters vs. Wait-Time Methods Typical tools count the number of events, but do not measure time. These statistics are numerous and easy to capture, therefore they tend to flood management dashboards. But, are they useful? Broad management dashboards have sophisticated displays of monitored data, but counting events or calculating ratios does not indicate or predict better performance for database customers. In fact, this approach can have the effect of covering up, rather than exposing, the real service level bottlenecks. Figure 2: Typical Event Counter Statistics. Too high or too low? The example is an excerpt from a long summary of counted statistics. Clearly there is much detail and technical accuracy. But where would you go to begin your diagnosis? Do these raw numbers reveal a performance problem? Is the value for physical writes direct in the table below too high or too low? There is no indication of impact on the end user service level to make that judgment. On the other hand, figure 3 below ranks individual SQL requests by Wait-Time. The statement with the highest Wait-Time is at the top of the list. Its relative impact on overall user service is reflected in the length of the bar measuring how much time users experience waiting on this request. Without counting how many times an operation occurred, this is much meaningful measure of end user service. 4 WAIT-TIME ANALYSIS:

Wait-Time analysis, like the example shown here, tells the DBA or system manager: This is where you need to focus, here is the exact problem. Figure 3: Wait-Time Display Immediately Identifies the Problem 2. System Wide Averages Typically statistics are gathered across an entire system, rather than on a basis that applies to an individual user request. When averaging performance across all requests, it becomes impossible to tell which requests are the most critical resource drains and which resources are impacting service levels. System wide averages are not actionable, as they do not identify the exact point of the bottleneck. Conventional vendor supplied tools use system wide averages. Vendor supplied database tools, for example, typically display data across the entire database without breaking it down into specific user requests. As a result, there is no indication of which end user functions are impacted. Figure 4: Performance Averaged Across the Entire Database 5 WAIT-TIME ANALYSIS:

3. Silos versus End-to-End Analysis Focusing on individual silos without connecting the result to end user service time results in a system optimized for the system admin, not the customer. Another key problem with typical IT monitoring tools is the creation of individual information silos that localize statistics for a single type of system, but do not expose an end-user s view of performance. Figure 5: Traditional Silo Based Measurement of Server Statistics Because of the differing technical skill sets, separate groups manage databases, application servers, and web infrastructure. Each group has a primary focus to optimize the performance of their box. And typically they use the most common and convenient statistics to measure and improve performance. For an application server, this often means watching memory utilization, thread counts, and CPU utilization. For a database, this is a counting of the number of sessions, number of reads or number of processes. The problem is that there is no view of the end objective minimizing service time for the customer and no collaboration across these groups focusing them beyond their individual server operations. In reality, the database bottlenecks are a direct result of the application procedure calls while the application responds to web requests. All of these combine to have a direct impact on end user service. Without the ability to track the flow of transactions across the multiple systems, each IT group can only try to optimize its own statistics, not of the response time to the customer. Finger pointing results from vague assumptions about the problem source. Detailed Wait-Time analysis identifies the true ownership of the problem. 4. Finger Pointing The real trouble starts when a cross-functional group assembles to try and respond to a customer reported problem. With each department watching their own server oriented statistics, the result is a finger pointing session where blame is deflected from one group to the next. Without a performance measurement system that identifies in exact detail the root cause of the performance bottleneck, finger pointing becomes inevitable. In contrast, by measuring end-user Wait-Time with the recommended detailed granularity, management can identify exactly where in the IT value chain that the bottleneck lies and who is really responsible. Using Wait-Time techniques to pinpoint the source of the problem helps eliminate the finger-pointing. Key Requirements for Wait-Time Analysis Wait-Time analysis is an approach to application performance management that captures and delivers data in a way to enable business decisions that have optimal service impact. 6 WAIT-TIME ANALYSIS:

The foundations of Wait-Time analysis are three requirements measuring User Requests, measuring Every Step, and measuring accumulated Time. Essential Requirements for accurate Wait-Time analysis: 1. Watch user requests individually 2. Watch every step individually 3. Track the time at each step Requirement One: Every User Request -- Individually This requirement states that all IT performance statistics must correspond to specific user requests not averages across the entire system. Individual SQL statements or web user screens must be tracked individually as they pass through the respective servers. In a database or application server, mixing data across all requests has the effect of averaging all responses and hiding any unique information about the request of interest. To effectively identify the problem, each SQL or Java application screen must be monitored and optimized separately. Seeing individual requests tells where customer service is slow. A system average does not identify the problem. Figure 6: See Individual User Requests Requirement Two: Every Step To be actionable, every user request must be measured with sufficient granularity to identify each step taken along the path from end-user through the database. This requires more detail than simply designating the database layer as the source of delay. It requires measuring each of the individual processes along the execution path. For an Oracle or SQL Server database, these steps correspond to hundreds of individual Wait-Events. For a web application, the steps can be Java methods that are executed on an application server. You cannot take action if all you know is that your request waits on Java or Oracle. But if you know that your request is hung in a specific method getcreditcard.do or database lock Enqueue then you have sufficient detail to productively work the problem. 7 WAIT-TIME ANALYSIS:

Seeing individual steps shows which ones are bottlenecks. An average of all steps does not identify the problem. Figure 7: See Every Step Requirement Three: Measure Time The most important requirement is measuring Time spent for a request, not counting how often a computing resource was utilized. The principle follows logically from the business purpose of the information system, which is to process requests and deliver output as quickly as possible. Counting events provides no indicator of how long a database user must wait for a response, or how long a request must wait for execution of a Java method. In the Wait-Time service-oriented performance approach, Time is the most important resource to measure. Measuring Wait-Time on the individual steps shows the most serious problem. Counting the number of steps processed has no bearing on end user service. Figure 8: Measure Time as the Driving Metric 8 WAIT-TIME ANALYSIS:

Key practical considerations: Low Load Agentless install Passive Monitoring Production Data Practical Considerations for Wait-Time Analysis The Wait-Time approach to performance monitoring described here is only practical if it can be implemented efficiently in a performance sensitive production environment. While basic tools to extract Wait-Time from Oracle databases on an individual session basis were the first step in this type of analysis, more efficient approaches have now been developed that meet ease of use, low impact, and continuous monitoring requirements. Beyond the database, it is now possible to employ Wait-Time analysis efficiently in end-to-end production application environments. Here are some practical considerations: Low Impact Data Capture The process of capturing performance data should not place a performance burden on your production systems. Software probes or agents on the production server can consume scarce resources. A better technique is to use an agentless architecture that offloads all processing to a separate analysis system that does not affect production users. Agentless Database Operation When monitoring a database, it is possible to remotely capture session information directly from database memory structure and gather the data on a separate server. This can be accomplished without installation of any software on the production database, avoiding configuration problems or long test cycles associated with introducing new software into critical environments. By running queries from remote systems, the raw data detailing session and SQL operation can be captured, then analyzed and stored offline in a centralized repository. Lightweight Application Monitoring Capturing end-to-end data from application servers is more difficult than from the database, but newer techniques have made this more practical. The key is to balance the need for detailed data on every request passing through the application against the intrusive load that might result from analyzing every transaction. Byte Code Instrumentation (BCI) is a technique available for application server monitoring that can be calibrated to deliver full, continuous monitoring at a low impact on load for J2EE applications. BCI differs from other J2EE monitoring techniques in that it is detailed enough to obtain highly granular performance timing on a Java method by method basis, but without the high overhead of the Java profiler tools used by most developers. Various forms of BCI are in use, but all involve instrumentation of compiled Java code with tracker bytes. A monitor observes the time of the start and finish of the tracker bytes to capture raw data used to calculate Wait-Time. By controlling which Java methods are instrumented, the load on the server can be reduced to levels below 1%, avoiding any noticeable impact for end users. Don t actively simulate data, passively watch real traffic. Passive Monitoring of Production Data An essential attribute of the Wait-Time analysis approach is monitoring real production, not simulated test transactions. This is the only way to identify true performance bottlenecks in a production environment. While a simplified approach 9 WAIT-TIME ANALYSIS:

to Wait-Time involves generating synthetic transactions and timing their arrival at various points in the system, this active approach is not the same as measuring real data to identify real bottlenecks. The preferred approach is to use passive monitoring (preferably agentless as described above) to measure real production traffic in live production situations. Wait-Time techniques are designed to resolve the toughest performance problems. These hard to find issues only occur in complex interactions on loaded systems. Watch all requests constantly. If you must specify the session to watch beforehand, the system is far less effective. Continuous Monitoring A final requirement for an effective Wait-Time performance solution is that data must be collected continuously, across all sessions. Do you know in advance when a problem will occur? Typically not. Thus techniques that specify in advance the monitoring of a specific session for a short period do not provide a generally useful approach. While trace file techniques, such as those based on tkprof (for Oracle databases) are effective for detailed Wait-Time analysis in controlled situations, they require that a trace be set to watch a specific session at a specific time. This only works if you know in advance of the problem! Likewise, approaches that move a probe between different systems for short periods cannot gather trending data or look back in history to identify a specific event after the fact. Effective Wait-Time analysis requires continuous monitoring of all production sessions, with the ability to deeply examine performance of any operation occurring at any time. Wait-Time answers the question: What is the problem? Who should fix it? Where does it occur? How does it impact service? Conclusion With increased focus on service levels as the most important measure of IT productivity, Wait-Time analysis has come to the forefront as the monitoring technique that ties IT practice to overall IT goals. This movement is aided by the combination of superior results experienced by leading consultants and trainers as well as the availability of excellent packaged tools. Wait-Time analysis tells the IT organization exactly where the problem lies, who should fix it and how it impacts the customer. Unlike traditional methods that barely deliver clues, Wait-Time, implemented in sufficient detail, delivers answers. 1. Optimizing Oracle Performance, C. Millsap, O Reilly & Associates, 2003 About Confio Confio Software is dedicated to helping IT organizations extract the maximum value from their application systems. We are a pioneer in the development of Application Performance Management tools built on Wait-Time analysis techniques. Focusing on the database layer, and the applications that depend on the database, Confio has developed proprietary methods of capturing detailed Wait-Time data, while bypassing the standard interfaces exposed by typical systems. Confio Igniter Suite includes Ignite for Oracle, the leading tool for Oracle database performance analysis; Ignite for Java, tying J2EE application performance end-toend from the user to the database; and new Ignite for SQL Server (late 2006) for IT organizations with a mix of Oracle and Microsoft SQL Server databases. Since their debut in 2003 Confio tools have delivered outstanding ROI to customers worldwide. The common denominator for Confio customers is the desire for exceptional performance visibility, beyond what is delivered by conventional tools. For a free trial, see www.confio.com V101006 10 WAIT-TIME ANALYSIS: