Skip to content

Benchmark

Simon edited this page Sep 12, 2019 · 3 revisions

The tests is done with 4 machines in an AWS environment.
The 4 machines are cn5.large instance type running Debian 9.

  • 1 machine launching sbulb : python3 ulb.py eth0 -vs virtual-server-ip -cfg ulb.ini -p 5683
  • 2 machine simulating real servers : on this machine we capture traffice with : tcpdump udp port 5683 -w test1.pcap
  • 1 machine (flooder) used to simulate traffic using hping3.

This is an unidirectional tests : packet traffic is only from flooder => sbulb => real servers.

Here is the script used to generate traffic :

#!/bin/bash
DURATION=60s
PORT=5683
DEST=52.31.56.141

timeout $DURATION hping3  $DEST --udp  -V -i u100000 -p $PORT
timeout $DURATION hping3  $DEST --udp  -V -i u10000 -p $PORT
timeout $DURATION hping3  $DEST --udp  -V -i u1000 -p $PORT
timeout $DURATION hping3  $DEST --udp  -V -i u100 -p $PORT
timeout $DURATION hping3  $DEST --udp  -V -i u10 -p $PORT
timeout $DURATION hping3  $DEST --udp  -V -i u1 -p $PORT
timeout $DURATION hping3  $DEST --udp  -V --flood -p $PORT

We first launch packets each 100ms during 60s, then each 10ms during 60s, then each 1ms, then 100us, then 10us, then 1us and finally we send the maximum we can (--flood).
Here is the output of hping3. This show how much packet we are able to send.

--- 18.202.77.27 hping statistic ---
600 packets transmitted, 0 packets received, 100% packet loss

--- 18.202.77.27 hping statistic ---
5991 packets transmitted, 0 packets received, 100% packet loss

--- 18.202.77.27 hping statistic ---
59240 packets transmitted, 0 packets received, 100% packet loss

--- 18.202.77.27 hping statistic ---
535327 packets transmitted, 0 packets received, 100% packet loss

--- 18.202.77.27 hping statistic ---
3400932 packets transmitted, 0 packets received, 100% packet loss

--- 18.202.77.27 hping statistic ---
4682850 packets transmitted, 0 packets received, 100% packet loss

--- 18.202.77.27 hping statistic ---
16268563 packets transmitted, 0 packets received, 100% packet loss

Here is the statistical analyses of tcpdump capture for 1 real server :
(both real server analyses are pretty much the same, meaning that round-robin is OK, at least in this situation)

dump analysis

and with a Logarithmic scale

dump analysis with log scale

Here is the CPU consumption and traffic of sbulb machine :

cpu

On this machine, sbulb is able to handle ~260000 packets/s (130000 x 2) using less than 50% of CPU.

Clone this wiki locally