At a Glance: Performance Modeling

From Guidance Share

Jump to: navigation, search

Performance modeling is a structured and repeatable approach to modeling the performance design of your software. It's both an information structure and a process to help you capture performance-related information, including performance threats. When you create performance models, you identify application scenarios and your performance objectives. Your performance objectives are your measurable criteria, such as response time, throughput (how much work in how much time), and resource utilization (CPU, memory, disk I/O, and network I/O). You break down your performance scenarios into steps and assign performance budgets. Your budget defines the resources and constraints across your performance objectives. You can use performance modeling to shape your application's design to meet your performance objectives, and reduce risk.


A number of inputs are required for the performance modeling process. These include initial (maybe even tentative) information about the following:

  • Scenarios and design documentation about critical and significant use cases.
  • Application design and target infrastructure and any constraints imposed by the infrastructure.
  • QoS requirements and infrastructure constraints, including service level agreements (SLAs).
  • Workload requirements derived from marketing data on prospective customers.


The output from performance modeling is the following:

  • A performance model document.
  • Test cases with goals.


The performance modeling process model is summarized in Figure 2.1.

image: PerformanceModelingSteps.gif

Figure 2.1: Eight step performance model

The performance modeling process involves the following steps:

  • Step 1. Identify key scenarios. Identify scenarios where performance is important and scenarios that pose the most risk to your performance objectives.
  • Step 2. Identify workload. Identify how many users and concurrent users your system needs to support.
  • Step 3. Identify performance objectives. Define performance objectives for each of your key scenarios. Performance objectives reflect business requirements.
  • Step 4. Identify budget. Identity your budget or constraints. This includes the maximum execution time in which an operation must be completed and resource utilization constraints, such as CPU, memory, disk I/O, and network I/O.
  • Step 5. Identify processing steps. Break down your key scenarios into component processing steps.
  • Step 6. Allocate budget. Spread your budget (determined in Step 4) across your processing steps (determined in Step 5) to meet your performance objectives (defined in Step 3).
  • Step 7. Evaluate. Evaluate your design against objectives and budget. You may need to modify your design or spread your response time and resource utilization budget differently to meet your performance objectives.
  • Step 8. Validate. Validate your model and estimates. This is an ongoing activity and includes prototyping, assessing, and measuring.


Personal tools