Difference between revisions of "Benchmarks"
 (Added results for Pi 3)  | 
				 (→Gateway Benchmark:   add vCPUs to the benchmark table)  | 
				||
| (6 intermediate revisions by one other user not shown) | |||
| Line 1: | Line 1: | ||
| − | == EspressoBin v5 ==  | + | == Mesh Benchmark ==  | 
| − | === No Yggdrasil ===  | + | The Mesh Benchmark represents the maximum amount of mesh-based traffic a device can send or receive. This is the speed limit of node to node traffic that doesn't leave the mesh. Services hosted in a way such that they are accessible on the mesh are mainly subject to this limit.  | 
| + | |||
| + | === Procedure ===  | ||
| + | To test the in-mesh speed, run iperf3 and yggdrasil on both a decently powerful PC/laptop as well as a mesh node.  | ||
| + | |||
| + | On the PC, run the following command:  | ||
| + | |||
| + |  iperf3 -s  | ||
| + | |||
| + | Then use <code>yggdrasilctl getself</code> and note the IPv6 address.  | ||
| + | |||
| + | On the mesh node, run the following command to start the benchmark:  | ||
| + | |||
| + |  iperf3 -c <PC-ipv6-address>  | ||
| + | |||
| + | === Results ===  | ||
| + | |||
| + | {| class="wikitable"  | ||
| + | |+ Mesh Node Benchmarks (In-Mesh)  | ||
| + | ! Device !! Download !! Upload !! Notes  | ||
| + | |-  | ||
| + | | example || 55 Mbit/s || 30 Mbit/s || Maxes out cpu  | ||
| + | |-  | ||
| + | | example || 53 Mbit/s || 47 Mbit/s || Low resource usage  | ||
| + | |}  | ||
| + | |||
| + | == Gateway Benchmark ==  | ||
| + | |||
| + | Todo: Create standard test procedure with more powerful hardware  | ||
| + | |||
| + | Environment: Laptop, Rpi4, DO Droplet, mullvad  | ||
| + | |||
| + | Fully wired, rpi connected via autoygg to droplet, which routes traffic out through mullvad  | ||
| + | |||
| + | {| class="wikitable"  | ||
| + | |+ Benchmarked VPS  | ||
| + | ! Size !! vCPUs !! Download !! Upload !! Notes  | ||
| + | |-  | ||
| + | | $5 Basic || 1 || 55 Mbit/s || 30 Mbit/s || Tested steam downloads as well as speedtest.net. Maxed out CPU  | ||
| + | |-  | ||
| + | | $15 Basic || 2 || 53 Mbit/s || 47 Mbit/s || Tested speedtest.net, CPU at ~50%  | ||
| + | |-  | ||
| + | | $40 Basic || 4 || 65 Mbit/s || 55 Mbit/s || Tested speedtest.net, low resource utilization overall  | ||
| + | |}  | ||
| + | |||
| + | == Old benchmarking results ==  | ||
| + | === EspressoBin v5 ===  | ||
| + | ==== No Yggdrasil ====  | ||
  <nowiki>Connecting to host 10.0.0.1, port 5201  |   <nowiki>Connecting to host 10.0.0.1, port 5201  | ||
[  5] local 10.0.0.106 port 58198 connected to 10.0.0.1 port 5201  | [  5] local 10.0.0.106 port 58198 connected to 10.0.0.1 port 5201  | ||
| Line 20: | Line 67: | ||
iperf Done.</nowiki>  | iperf Done.</nowiki>  | ||
| − | === Yggdrasil ===  | + | ==== Yggdrasil ====  | 
  <nowiki>Connecting to host 201:f06b:1827:4e45:90fa:554e:ace5:27c7, port 5201  |   <nowiki>Connecting to host 201:f06b:1827:4e45:90fa:554e:ace5:27c7, port 5201  | ||
[  5] local 201:28ab:ee79:77d4:192e:1366:8b79:4980 port 33776 connected to 201:f06b:1827:4e45:90fa:554e:ace5:27c7 port 5201  | [  5] local 201:28ab:ee79:77d4:192e:1366:8b79:4980 port 33776 connected to 201:f06b:1827:4e45:90fa:554e:ace5:27c7 port 5201  | ||
| Line 41: | Line 88: | ||
iperf Done.</nowiki>  | iperf Done.</nowiki>  | ||
| − | == Raspberry Pi 3B+ ==  | + | === Raspberry Pi 3B+ ===  | 
| − | === Yggdrasil ===  | + | ==== Yggdrasil ====  | 
  <nowiki>[ ID] Interval           Transfer     Bitrate  |   <nowiki>[ ID] Interval           Transfer     Bitrate  | ||
[  5]   0.00-10.41  sec  37.3 MBytes  30.1 Mbits/sec                  receiver  | [  5]   0.00-10.41  sec  37.3 MBytes  30.1 Mbits/sec                  receiver  | ||
Latest revision as of 18:41, 27 October 2020
Contents
Mesh Benchmark
The Mesh Benchmark represents the maximum amount of mesh-based traffic a device can send or receive. This is the speed limit of node to node traffic that doesn't leave the mesh. Services hosted in a way such that they are accessible on the mesh are mainly subject to this limit.
Procedure
To test the in-mesh speed, run iperf3 and yggdrasil on both a decently powerful PC/laptop as well as a mesh node.
On the PC, run the following command:
iperf3 -s
Then use yggdrasilctl getself and note the IPv6 address.
On the mesh node, run the following command to start the benchmark:
iperf3 -c <PC-ipv6-address>
Results
| Device | Download | Upload | Notes | 
|---|---|---|---|
| example | 55 Mbit/s | 30 Mbit/s | Maxes out cpu | 
| example | 53 Mbit/s | 47 Mbit/s | Low resource usage | 
Gateway Benchmark
Todo: Create standard test procedure with more powerful hardware
Environment: Laptop, Rpi4, DO Droplet, mullvad
Fully wired, rpi connected via autoygg to droplet, which routes traffic out through mullvad
| Size | vCPUs | Download | Upload | Notes | 
|---|---|---|---|---|
| $5 Basic | 1 | 55 Mbit/s | 30 Mbit/s | Tested steam downloads as well as speedtest.net. Maxed out CPU | 
| $15 Basic | 2 | 53 Mbit/s | 47 Mbit/s | Tested speedtest.net, CPU at ~50% | 
| $40 Basic | 4 | 65 Mbit/s | 55 Mbit/s | Tested speedtest.net, low resource utilization overall | 
Old benchmarking results
EspressoBin v5
No Yggdrasil
Connecting to host 10.0.0.1, port 5201 [ 5] local 10.0.0.106 port 58198 connected to 10.0.0.1 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 49.2 MBytes 413 Mbits/sec 27 532 KBytes [ 5] 1.00-2.00 sec 44.8 MBytes 376 Mbits/sec 0 592 KBytes [ 5] 2.00-3.00 sec 44.8 MBytes 376 Mbits/sec 0 643 KBytes [ 5] 3.00-4.00 sec 44.9 MBytes 376 Mbits/sec 1 519 KBytes [ 5] 4.00-5.00 sec 46.1 MBytes 387 Mbits/sec 0 581 KBytes [ 5] 5.00-6.00 sec 44.8 MBytes 376 Mbits/sec 0 639 KBytes [ 5] 6.00-7.00 sec 46.1 MBytes 387 Mbits/sec 1 516 KBytes [ 5] 7.00-8.00 sec 43.6 MBytes 366 Mbits/sec 374 346 KBytes [ 5] 8.00-9.00 sec 44.9 MBytes 377 Mbits/sec 0 434 KBytes [ 5] 9.00-10.00 sec 46.1 MBytes 387 Mbits/sec 0 509 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.00 sec 455 MBytes 382 Mbits/sec 403 sender [ 5] 0.00-10.05 sec 452 MBytes 377 Mbits/sec receiver iperf Done.
Yggdrasil
Connecting to host 201:f06b:1827:4e45:90fa:554e:ace5:27c7, port 5201 [ 5] local 201:28ab:ee79:77d4:192e:1366:8b79:4980 port 33776 connected to 201:f06b:1827:4e45:90fa:554e:ace5:27c7 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 17.4 MBytes 146 Mbits/sec 26 1.50 MBytes [ 5] 1.00-2.00 sec 16.2 MBytes 136 Mbits/sec 20 1.31 MBytes [ 5] 2.00-3.00 sec 15.0 MBytes 126 Mbits/sec 56 959 KBytes [ 5] 3.00-4.00 sec 13.8 MBytes 115 Mbits/sec 31 767 KBytes [ 5] 4.00-5.00 sec 13.8 MBytes 115 Mbits/sec 20 831 KBytes [ 5] 5.00-6.00 sec 15.0 MBytes 126 Mbits/sec 2 1.25 MBytes [ 5] 6.00-7.00 sec 17.5 MBytes 147 Mbits/sec 23 1.37 MBytes [ 5] 7.00-8.00 sec 17.5 MBytes 147 Mbits/sec 1 1.62 MBytes [ 5] 8.00-9.00 sec 15.0 MBytes 126 Mbits/sec 5 1.62 MBytes [ 5] 9.00-10.00 sec 17.5 MBytes 147 Mbits/sec 6 1.62 MBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.00 sec 159 MBytes 133 Mbits/sec 190 sender [ 5] 0.00-10.09 sec 157 MBytes 130 Mbits/sec receiver iperf Done.
Raspberry Pi 3B+
Yggdrasil
[ ID] Interval Transfer Bitrate [ 5] 0.00-10.41 sec 37.3 MBytes 30.1 Mbits/sec receiver [ 8] 0.00-10.41 sec 36.6 MBytes 29.5 Mbits/sec receiver [ 10] 0.00-10.41 sec 36.6 MBytes 29.5 Mbits/sec receiver [ 12] 0.00-10.41 sec 38.0 MBytes 30.6 Mbits/sec receiver [SUM] 0.00-10.41 sec 149 MBytes 120 Mbits/sec receiver