Skip to content

Benchmark

Olivier Duclos edited this page Nov 15, 2019 · 3 revisions

The tests is done with 4 machines in an AWS environment.
The 4 machines are c5n.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 test : 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 1 packet 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 the flooder machine is 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 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