OctoPerf On Premise Infra can be installed in just a few minutes by following the Quick Setup. For production-grade installations, we recommend to follow the High Availability Setup.
This installation guide setups OctoPerf On Premise Infra on a single machine. The installation can be completed within 5 minutes by unexperienced users.
The setup using Docker Compose is provided as an example. OctoPerf EE can be indifferently setup in various environments like Kubernetes or Rancher.
OctoPerf On Premise Infra has the following requirements:
- dual or quad cores CPU,
- At least
- Operating System: Ubuntu
20.04LTSor newer is recommended. (although Centos and Debian are supported too) See Docker Install for more supported operating systems.
The advanced setup assumes you are familiar with Linux and Docker.
It's recommended to disable any firewall like
firewalld (Centos) or
ufw (Ubuntu) because they interfer with IPTables rules. As Docker inserts IPTables rules, it's wise to disable firewall to avoid networking issues.
Increase VM Max Map Count¶
Elasticsearch Database requires the systemctl
vm.max_map_count to be set at least to
sysctl -w vm.max_map_count=262144
To set this value permanently, update the
vm.max_map_count setting in
/etc/sysctl.conf. To verify after rebooting, run
See Elasticsearch VM Max Map Count for more information.
To install Docker, run the following command on a Terminal:
curl -sSL https://get.docker.com/ | sh
Once the installation is finished, add your current user to the Docker group:
sudo usermod -aG docker $your_user
$your_user needs to be replaced by your username. This step is optional but avoids you to run docker commands as sudoer next time.
Check Docker is installed correctly by running
Client: Docker Engine - Community Version: 23.0.1 API version: 1.42 Go version: go1.19.5 Git commit: a5ee5b1 Built: Thu Feb 9 19:47:01 2023 OS/Arch: linux/amd64 Context: default Server: Docker Engine - Community Engine: Version: 23.0.1 API version: 1.42 (minimum version 1.12) Go version: go1.19.5 Git commit: bc3805a Built: Thu Feb 9 19:47:01 2023 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.6.16 GitCommit: 31aa4358a36870b21a992d3ad2bef29e1d693bec runc: Version: 1.1.4 GitCommit: v1.1.4-0-g5fd4c4d docker-init: Version: 0.19.0 GitCommit: de40ad0
You should see something like above in your terminal.
OctoPerf EE exists in two versions:
The HTTPS version is configured to work with an SSL certificate. You must provide additional files to make it work:
haproxy/server.crt: server certificate,
haproxy/server.crt.key: server certificate key.
Those files must be copied in
haproxy/ folder before starting the OctoPerf stack.
A few notes:
- The SSL certificate must be generated by a valid certification authority (self-signed certificates won't work),
- The SSL certificate hostname must match with the hostname configured in
It's now time to configure OctoPerf EE using docker-compose:
Unzip the previously downloaded file in any location, it should decompress the following files:
- haproxy: contains the files related to the HAProxy configuration, (Dockerfile and haproxy.cfg)
- docker-compose.yml: defines the services to start via docker-compose,
- config/application.yml: server configuration file,
- Makefile: provides convenient commands like
maketo run OctoPerf EE.
config/application.yml: define the
server.hostnameproperty with the IP / Hostname of the machine running OctoPerf:
server: hostname: YOUR_HOSTNAME
By Default, the web-server runs with
httpprotocol on port
YOUR_HOSTNAMEby the hostname of your machine. It must be a hostname reachable publicly or at least from your local area network.
Start the Application¶
To start OctoPerf EE:
maketo start OctoPerf EE,
- Browse to
localhostif running on your own machine) to open OctoPerf EE. (starts on port
80by default; on port
443with the SSL version)
OctoPerf Login Page (server running on my local machine)
Create an Account¶
OctoPerf EE comes completely empty. You need to create an account and register a load generator (computer used to generate the load) to be able to run load tests:
- Signup and create a new account,
- Create an On-Premise Provider: providers are groups of load generators,
- And register an On-Premise Agent within the previously created On-Premise Provider.
Congratulations! The setup is now complete.
High Availability Setup¶
High Availability Setup require intensive knowledge of kubernetes and additional components like Hazelcast. As such we do not recommend it unless this OctoPerf server is going to be used by a huge team of testers (more than 20 people concurrently).
OctoPerf EE can be scaled horizontally by running on a cluster of machines. It allows you to:
- Operate continuously: resiliency to one or multiple machine failures,
- Replicate Data over multiple machines: your data is safe by being replicated on multiple machines.
The High Availability Setup procedure is intended to be used in Production Environments.
This setup involves:
- cluster of at least 3 machines, (an odd number is recommended. Example:
elasticsearchcontainers running on the whole cluster, (to benefit from data replication across multiple servers)
enterprise-edition(backend server) container running with High Availability enabled,
- Load-balancer to distributed incoming traffic to relevant containers,
- DNS hostname associated with one or multiple machines serving as load-balancers,
- Automated Elasticsearch Backups (via snapshots; on a shared NFS Disk for example).