Helping measure performance

Open Source Performance and Load Testing Tool

Faban is a facility for developing and running benchmarks. Faban supports multi-tier server benchmarks (such as web/cache/database benchmarks) run across dozens of machines. It also supports developing and running a simple micro-benchmark targeting a single component (such as an ftp server.) It has two major components, the Faban Driver Framework and the Faban Harness.

Faban Driver Framework is an API-based framework and component model to help develop new benchmarks rapidly. The driver framework controls the lifecycle of the benchmark run as well as the stochastic model used to simulate users. It provides built-in support for many servers such as Apache httpd, Sun Java System Web, Portal and Mail Servers, Oracle RDBMS, memcached etc. It provides a well-documented interface to add support for any other server.

Faban Harness is a tool to automate running of server benchmarks. It also serves as a container to host benchmarks allowing new benchmarks to be deployed in a rapid manner. Faban provides an easy to use web interface to configure and queue runs, and includes extensive functionality to view, compare and graph run outputs.

The Faban Harness not only supports benchmarks developed using the Faban Driver Framework but also supports stand-alone benchmarks. Non-faban benchmarks are supported by defining a benchmark wrapper that identifies the processes involved in preparing and running the benchmark, and reporting results.

Faban Harness

The main features of the Harness are listed below:

  • Web interface for controlling benchmark runs and viewing results
  • Queuing of benchmark runs
  • Benchmark process automation
  • Automated collection of system and application statistics
  • Manages the whole rig consisting of multiple systems across multiple teers
  • Automated benchmark code distribution
  • Centralized logging
  • Pluggable services and tools to control and observe software components in the rig
  • Analysis tools - post processes and graphs and compares detailed run results
  • Automatically integrates and manages workloads defined using the Faban Driver Framework
  • Integrates with any existing workload or benchmark

Faban Driver Framework

The main features of the Driver Framework are listed below:

  • Workload component model with high-level APIs and abstractions
  • Driven by declarative workload model/specification
  • Provides, and encourages the use of stochastic models
  • Throughput-oriented measurements with response-time criteria
  • Life-cycle control
  • Time synchronization between all systems
  • Automated timing measurements
  • Lightweight and extremely scalable across large number of driver systems
  • Standardized and extensible reporting