Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mkeeler/serf-bandwidth-test
Tests different Serf configurations to see how they affect bandwidth.
https://github.com/mkeeler/serf-bandwidth-test
Last synced: 19 days ago
JSON representation
Tests different Serf configurations to see how they affect bandwidth.
- Host: GitHub
- URL: https://github.com/mkeeler/serf-bandwidth-test
- Owner: mkeeler
- Created: 2019-08-05T14:13:47.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2019-08-13T20:40:58.000Z (over 5 years ago)
- Last Synced: 2024-10-13T01:07:53.566Z (about 1 month ago)
- Language: Go
- Size: 43 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Serf Bandwidth Testing
This repo is mainly to test out how the network bandwidth required by a [Serf](https://github.com/hashicorp/serf) "server" increases with the number of distinct Serf "pools" it runs when the total number of "clients" connected to all the pools remains constant.
## What Gets Run
The docker-compose files have a number of services:
* `server1`, `server2` and `server3` - These are the "server" Serf instances that will run 1, 2 or 4 Serf "pools". Each client will get connected to exactly one of the pools and there is no bleeding of membership data between them.
* `client1` - Serf client that will connect to the first pool of the servers.
* `client2` - Serf client that will connect to the second pool of the servers.
* `client3` - Serf client that will connect to the third pool of the servers.
* `client4` - Serf client that will connect to the fourth pool of the servers.
* `influxdb` - Runs influxdb for metric storage and querying
* `telegraf` - This is configured to pull docker metrics and push them to influxdb
* `chronograf` - This is for visualization of the metrics in influxdbIt is intended that the `client*` services be scaled with the `--scale` command line argument to `docker-compose up`.
## How To Run
### One Serf Pool
```bash
export COMPOSE_PROJECT_NAME=serf
export COMPOSE_FILE=docker-compose.ymldocker-compose up -d --scale client1=100 server1 server2 server3 client1
```### Two Serf Pools
```bash
export COMPOSE_PROJECT_NAME=serf
export COMPOSE_FILE=docker-compose.yml:serf-2.ymldocker-compose up -d --scale client1=50 --scale client2=50 server1 server2 server3 client1 client2
```#### Four Serf Pools
```bash
export COMPOSE_PROJECT_NAME=serf
export COMPOSE_FILE=docker-compose.yml:serf-4.ymldocker-compose up -d --scale client1=25 --scale client2=25 --scale client3=25 --scale client4=25 server1 server2 server3 client1 client2 client3 client4
```## Visualization
The chronograf ui is port mapped to http://localhost:8888. You can import the dashboard from the serf_testing_dashboard.json file in this repo for my default display.