diff --git a/Performance-Measurements.md b/Performance-Measurements.md index ea2ed4d..17fd381 100644 --- a/Performance-Measurements.md +++ b/Performance-Measurements.md @@ -4,26 +4,28 @@ Sender node: * Intel(R) Core(TM) i5-2540M CPU @ 2.60GHz * 8 GiB Ram * Intel 82579LM Gigabit Network - * Ubuntu 14.04 (Kernel 3.13.0-65-generic) + * Ubuntu 16.04 (Kernel 4.4.0-38-generic) + * CPU Governor set to `performance` Receiver node: * Intel(R) Core(TM) i5-3450 CPU @ 3.10GHz * 16 GiB Ram * Realtek RTL8111/8168/8411 Gigabit Network - * Ubuntu 14.04 (Kernel 3.13.0-63-generic) + * Ubuntu 16.04 (Kernel 4.4.0-47-generic) + * CPU Governor set to `performance` -VpnCloud version: `VpnCloud v0.6.0, protocol version 1, libsodium 1.0.10 (AES256: true)` +VpnCloud version: `VpnCloud v0.8.0, protocol version 1, libsodium 1.0.10 (AES256: true)` The sender runs the following command: ``` -$> ./vpncloud -t tap -l 3210 -c RECEIVER:3210 --ifup 'ifconfig $IFNAME 10.0.0.1/24 mtu 1400 up' & +$> ./vpncloud -t tap -l 5005 -c RECEIVER:5005 --no-port-forwarding --ifup 'ifconfig $IFNAME 10.0.0.1/24 mtu 1400 up' & ``` and the receiver runs: ``` -$> ./vpncloud -t tap -l 3210 -c SENDER:3210 --ifup 'ifconfig $IFNAME 10.0.0.2/24 mtu 1400 up' & +$> ./vpncloud -t tap -l 5005 -c SENDER:5005 --no-port-forwarding --ifup 'ifconfig $IFNAME 10.0.0.2/24 mtu 1400 up' & $> iperf -s & $> top ``` @@ -48,13 +50,13 @@ The test is run in 3 steps: | Throughput test | Bandwidth | CPU usage (one core) | | --------------------------------------- | ------------- | -------------------- | -| Without VpnCloud | 921 Mbits/sec | - | -| Unencrypted VpnCloud | 878 Mbits/sec | 85% / 95% | -| Encrypted VpnCloud (ChaCha20) | 798 Mbits/sec | 90% / 90% | -| Encrypted VpnCloud (AES256) | 822 Mbits/sec | 85% / 85% | -| Unencrypted VpnCloud (MTU 7000) | 939 Mbits/sec | 75% / 75% | -| Encrypted VpnCloud (ChaCha20, MTU 7000) | 919 Mbits/sec | 75% / 75% | -| Encrypted VpnCloud (AES256, MTU 7000) | 922 Mbits/sec | 75% / 75% | +| Without VpnCloud | 930 Mbits/sec | - | +| Unencrypted VpnCloud | 894 Mbits/sec | 85% / 95% | +| Encrypted VpnCloud (ChaCha20) | 699 Mbits/sec | 90% / 90% | +| Encrypted VpnCloud (AES256) | 820 Mbits/sec | 85% / 85% | +| Unencrypted VpnCloud (MTU 7000) | 942 Mbits/sec | 40% / 40% | +| Encrypted VpnCloud (ChaCha20, MTU 7000) | 938 Mbits/sec | 55% / 55% | +| Encrypted VpnCloud (AES256, MTU 7000) | 938 Mbits/sec | 55% / 55% | ### Latency @@ -69,10 +71,10 @@ The latency is assumed to be half of the RTT. | Payload size | 100 bytes | 500 bytes | 1000 bytes | | ----------------------------- | --------------- | --------------- | --------------- | -| Without VpnCloud | 143 µs | 150 µs | 158 µs | -| Unencrypted VpnCloud | 204 µs (+61 µs) | 212 µs (+62 µs) | 223 µs (+65 µs) | -| Encrypted VpnCloud (ChaCha20) | 216 µs (+12 µs) | 231 µs (+19 µs) | 251 µs (+28 µs) | -| Encrypted VpnCloud (AES256) | 209 µs ( +5 µs) | 219 µs ( +7 µs) | 240 µs (+17 µs) | +| Without VpnCloud | 152 µs | 157 µs | 168 µs | +| Unencrypted VpnCloud | 222 µs (+70 µs) | 225 µs (+68 µs) | 243 µs (+75 µs) | +| Encrypted VpnCloud (ChaCha20) | 225 µs ( +3 µs) | 235 µs (+10 µs) | 253 µs (+10 µs) | +| Encrypted VpnCloud (AES256) | 220 µs ( -2 µs) | 232 µs ( +7 µs) | 251 µs ( +8 µs) | ### Conclusion @@ -81,4 +83,4 @@ The latency is assumed to be half of the RTT. * In encrypted mode, VpnCloud reaches over 800 MBit/s with default MTU settings. * With increased MTU, VpnCloud reaches over 900 Mbit/s, encrypted and unencrypted. * VpnCloud adds about 70µs to the latency. -* Encryption adds an additional latency up to 30µs. +* Encryption adds an additional latency up to 10µs.