Difference between revisions of "Benchmarks"

Jump to navigation Jump to search
(→‎Gateway Benchmark: add vCPUs to the benchmark table)
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
== In-Mesh Benchmarks ==
+
== 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 ===
 
=== Procedure ===
 
To test the in-mesh speed, run iperf3 and yggdrasil on both a decently powerful PC/laptop as well as a mesh node.
 
To test the in-mesh speed, run iperf3 and yggdrasil on both a decently powerful PC/laptop as well as a mesh node.
Line 24: Line 26:
 
|}
 
|}
  
== EspressoBin v5 ==
+
== Gateway Benchmark ==
=== No Yggdrasil ===
+
 
 +
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 45: 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 66: 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 74: 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>
 
== VPS Benchmark ==
 
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 !! Download !! Upload !! Notes
 
|-
 
| $5 Basic || 55 Mbit/s || 30 Mbit/s || Tested steam downloads as well as speedtest.net. Maxed out CPU
 
|-
 
| $15 Basic || 53 Mbit/s || 47 Mbit/s || Tested speedtest.net, CPU at ~50%
 
|-
 
| $40 Basic || 65 Mbit/s || 55 Mbit/s || Tested speedtest.net, low resource utilization overall
 
|}
 

Latest revision as of 18:41, 27 October 2020

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

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

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

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