mirror of https://github.com/dswd/vpncloud.git
Updated Performance Measurements (markdown)
parent
bc27c55196
commit
59f2deabc0
|
@ -1,86 +1 @@
|
||||||
### Test setup
|
Please see https://vpncloud.ddswd.de/features/performance/
|
||||||
|
|
||||||
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.
|
|
Loading…
Reference in New Issue