Performance Engineering

Module aims

Performance engineering is the area of computer science ensuring that IT systems are responsive, scalable, and efficient.  The course aims at introducing fundamental principles and techniques used in performance management of IT systems running in data centers and clouds. The course aims in particular at teaching:

1) Load testing and benchmarking for web applications. The Apache JMeter tool will be used in the course to expose the students to real-world load testing.

2) Mechanisms and architectures to control software performance, such as cloud auto-scaling.

3) Techniques to analyse bottlenecks and forecast the performance of a web application.

The course will also give chance to the students to learn and practice load testing using the Microsoft Azure cloud, thanks to an education support programme sponsored by Microsoft. 

Course lecturer: Dr Giuliano Casale


Learning outcomes

Knowledge and understanding: 

  • understand key performance metrics in enterprise systems
  • describe the performance lifecycle of enterprise applications
  • recognize standard benchmarks used in the industry
  • explain the software architecture of an enterprise benchmark
  • recognize types of enterprise applications and workloads 

Intellectual skills: 

  • identify an efficient testing strategy for a system
  • specify test runs using probabilistic graphs
  • specify an experimental plan for a system
  • forecast performance of an enterprise application

Practical skills: 

  • design and run an enterprise benchmark
  • analyse test data results
  • design an experiment to tune the performance of a computing system
  • assign computing resources to meet performance requirements

Module syllabus

Part 1: Introduction to performance engineering.

IT systems: architectures, lifecycle, workloads.

Introduction to cloud computing: Microsoft Azure case study.

Quality-of-service (QoS) and Service-level agreements (SLAs).

Part 2: Performance testing.

Benchmarking and load-testing. SPEC and TPC benchmarks.

Anatomy of a IT system benchmark.  Case study: SPECjbb2015.

Experimental performance tuning: capturing test results using response models, designing and running experiments. Case study: Apache JMeter.

Part 3: Resource management.

Workload analysis. Batch and interactive workloads.

Resource demand characterization. Operational analysis.

Analytical models of resource capacity. Performance bottlenecks.

Auto-scaling in the cloud. Case study: Apache Cassandra autoscaling.


There are no strict pre-requisites.

Teaching methods

Lectures and exercises. Assessed courseworks will be given throughout the course, which will involve experimental work with the Microsoft Azure cloud. 


 * This is a level 7/M course

Reading list


Module leaders

Dr Giuliano Casale