diff --git a/Performance-Measurements.md b/Performance-Measurements.md index 17fd381..8c7a72a 100644 --- a/Performance-Measurements.md +++ b/Performance-Measurements.md @@ -1,86 +1 @@ -### Test setup - -Sender node: - * Intel(R) Core(TM) i5-2540M CPU @ 2.60GHz - * 8 GiB Ram - * Intel 82579LM Gigabit Network - * 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 16.04 (Kernel 4.4.0-47-generic) - * CPU Governor set to `performance` - -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 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 5005 -c SENDER:5005 --no-port-forwarding --ifup 'ifconfig $IFNAME 10.0.0.2/24 mtu 1400 up' & -$> iperf -s & -$> top -``` - -For encrypted tests, `--shared-key test --crypto METHOD` is appended. - -For increased MTU tests `mtu 7000` is used in `--ifup`. - -### Throughput - -The throughput is measured with the following command: - -``` -$> iperf -c DST -t 30 -``` - -The test is run in 3 steps: -* Native throughput without VpnCloud (`DST` is the native address of the receiver) -* Throughput via VpnCloud (`DST` is `10.0.0.2`) -* Encrypted throughput via VpnCloud (`DST` is `10.0.0.2`) - - -| Throughput test | Bandwidth | CPU usage (one core) | -| --------------------------------------- | ------------- | -------------------- | -| 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 - -The latency is measured with the following command: -``` -$> ping DST -c 30000 -i 0.001 -s SIZE -U -q -``` - -For all the test, the second best average RTT out of 5 runs is selected. -The latency is assumed to be half of the RTT. - - -| Payload size | 100 bytes | 500 bytes | 1000 bytes | -| ----------------------------- | --------------- | --------------- | --------------- | -| 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 - -* VpnCloud achieves over 850 MBit/s with default MTU settings. -* 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 10µs. +Please see https://vpncloud.ddswd.de/features/performance/ \ No newline at end of file