Difference between revisions of "Benchmarks"
Stephen304 (talk | contribs) |
(→Gateway Benchmark: add vCPUs to the benchmark table) |
||
(5 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 | ||
Line 49: | Line 96: | ||
[ 12] 0.00-10.41 sec 38.0 MBytes 30.6 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</nowiki> | [SUM] 0.00-10.41 sec 149 MBytes 120 Mbits/sec receiver</nowiki> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
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