Engineering Performance Requires An Invesment In Understanding the System

Engineering applications for performance is no trivial task and am sure you will agree with me on that. It all starts with the basic fundamental set of questions at design –

  • Do you have an understanding of the overall Non Functional Requirements
  • Do you have an understanding of the system as a whole
  • Do you have an understanding of the tools, processes and people capability required to meet the documented Non Functional Requirements

Have said all of the above it’s of paramount importance that Performance Engineering be built into the delivery processes as a proactive approach to engineering performance into the system as compared to the traditional reactive approach of trying to retrofit performance into the system when the system is nearing go live by tuning and testing the system and struggling to meet the Non Functional Requirements.

In our experience a lot of performance problems stem from the fact that most professionals tasked with delivering systems that performance have an inadequate understanding of the overall system and how the application interacts with the environment it is deployed into. Something we have always recommend to our customers is to create a performance “statement” or vision for every core application in your IT portfolio. Think of this as describing the characteristics, footprint and touch-points of an application which should provide a summary of the system within a few paragraphs. This should ideally include:

Design:  A summary of the underlying system design and interaction. Key to understanding the infrastructure workload.

  • The way an application uses memory, CPU and I/O
  • The various physical and virtual resources consumed by the the various application components

Operations: A summary of the deployment model for the system.

  • How the application has been instrumented
  • How the application has been monitored
  • What are the various SLA’s that need to be tracked

KPI’s: Key Performance Indicators that help understand the various metrics that need to be tracked to stay on top of performance.

  • What metrics need to be collected to monitor performance, application and infrastructure?
  • What thresholds should be set so that infrastructure and application KPI’s are correctly aligned?

Interaction: 3rd party and internal services that the system interacts with

  • What services the application interacts with, external and internal
  • What other applications this application interacts with

Business: A summary of the various business metrics that help summarize the overall business workload

  • What are the business outcomes that the delivers
  • What are the business metrics that can be used to measure these outcomes
  • A typical usage profile, day to day and peaks for the various key business workload drivers

With this information at hand it becomes a much easier task to determine if you application is behaving normally or has regressed in terms of performance and/or capacity. In other words you minimize the false positives and negatives. For example It may be a conscious design decision that an application grabs as much memory as it can at the application server layer. This means that for this application, generic memory usage KPI’s may have completely inappropriate thresholds and generate redundant alerts.

A little knowledge can be a dangerous thing but not when it comes to maintaining application performance!

Ian Molyneaux (LinkedIn) has over 35 years of experience in IT, Ian brings unique insights into the world of IT in genIan_Meral as well as the issues of IT performance. Ian has held senior positions for vendors like Microfocus and Compuware. In 2009, O’Reilly Media published Ian’s book, “The Art of Application Performance Testing”, which has been well received as a much-needed guide on the right approach to performance testing. Ian is Head of Performance at Intechnica. Ian is a seasoned IT Professional with 35+ years in the industry and is passionate about promoting a structured approach to achieving and maintaining application performance within the enterprise.

As part of the leadership team at Intechnica Ian works closely with customers on engineering applications for scalability and high performance. This article was previously published at Performance By Design and has been reproduced at Practical Performance Analyst with prior permission.

Building Scalable Web Sites: Building, Scaling, and Optimizing the Next Generation of Web Applications

Price: $23.19

3.8 out of 5 stars (40 customer reviews)

76 used & new available from $0.49

Scalable Internet Architectures

Price: $37.32

3.9 out of 5 stars (21 customer reviews)

62 used & new available from $1.99

Related Posts

  • So What Does Performance Mean To You ?So What Does Performance Mean To You ? Performance means different things to different people. My personal experience over the last decade and a half, working with Architects, Developers, Testers and Managers tells me that mostly Performance tends to get viewed or interpreted as a set of reactive tasks. Performance tends to […]
  • Let’s not go overboard with our investments in Non Functional Testing!!!!Let’s not go overboard with our investments in Non Functional Testing!!!! Background - When was the last time you were told, “Let’s not go overboard with out investments in a performance validation exercise.!!! On my last project we expended a lot of effort on various Non-Functional initiatives, however the issues we experienced in production were never picked […]
  • Building Systems That Perform : Workload Characterization – Doing It RightBuilding Systems That Perform : Workload Characterization – Doing It Right Dr. Leonid Grinshpan (LinkedIn) is currently Technical Director at Oracle with a focus on Enterprise applications capacity planning, load testing, modelling, performance analysis, and tuning. Leonid has a few decades of experience on two complementing areas: computer science and […]
  • Use of Quantitative Models For Performance Testing & EngineeringUse of Quantitative Models For Performance Testing & Engineering Introduction : It is usually a misconception that performance-testing activities are limited to using a load-testing tool, scripting of  business scenarios, execution of the test, analysis and finally submission of test results. Many are unaware of the importance of basic Quantitative […]