-
Notifications
You must be signed in to change notification settings - Fork 9
Benchmark
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)
and with a Logarithmic scale
Here is the CPU consumption and traffic of sbulb machine :
On this machine, sbulb is able to handle ~260000 packets/s (130000 x 2) using less than 50% of CPU.