-
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 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)
and with a Logarithmic scale
Here is the CPU consumption sbulb machine :
On this machine, sbulb is able to handle ~260000 packets/s (130000 x 2) using less than 50% of CPU.