Fix performance measurements

pull/61/head
Dennis Schwerdel 2020-06-08 18:06:11 +02:00
parent 717c360ef1
commit b6dafdaeee
6 changed files with 562 additions and 1026 deletions

View File

@ -1,227 +1,134 @@
{
"aes256-7000": {
"ping_500": {
"rtt_min": 0.074,
"rtt_avg": 0.088,
"pkt_loss": 0.0,
"rtt_max": 13.643
},
"meta": {
"region": "eu-central-1",
"instance_type": "m5.large",
"ami": "ami-0a02ee601d742e89f",
"version": "1.0.0",
"duration": 495.34057664871216
},
"native": {
"iperf": {
"cpu_sender": 6.394363,
"cpu_receiver": 54.566188,
"throughput": 2736147000.0
},
"throughput": 9680305000.0,
"cpu_sender": 20.862659,
"cpu_receiver": 65.856166
},
"ping_100": {
"rtt_min": 0.073,
"rtt_avg": 0.085,
"pkt_loss": 0.0,
"rtt_max": 0.698
},
"rtt_min": 0.035,
"rtt_max": 0.121,
"rtt_avg": 0.04,
"pkt_loss": 0.0
},
"ping_500": {
"rtt_min": 0.036,
"rtt_max": 0.151,
"rtt_avg": 0.042,
"pkt_loss": 0.0
},
"ping_1000": {
"rtt_min": 0.077,
"rtt_avg": 0.089,
"pkt_loss": 0.0,
"rtt_max": 0.152
"rtt_min": 0.039,
"rtt_max": 0.145,
"rtt_avg": 0.043,
"pkt_loss": 0.0
}
},
},
"plain": {
"iperf": {
"throughput": 4836527000.0,
"cpu_sender": 9.380104,
"cpu_receiver": 65.333537
},
"ping_100": {
"rtt_min": 0.06,
"rtt_max": 0.165,
"rtt_avg": 0.074,
"pkt_loss": 0.0
},
"ping_500": {
"rtt_min": 0.063,
"rtt_max": 0.389,
"rtt_avg": 0.076,
"pkt_loss": 0.0
},
"ping_1000": {
"rtt_min": 0.066,
"rtt_max": 0.185,
"rtt_avg": 0.077,
"pkt_loss": 0.0
}
},
"aes256": {
"iperf": {
"throughput": 3312712000.0,
"cpu_sender": 7.639525,
"cpu_receiver": 54.563243
},
"ping_100": {
"rtt_min": 0.062,
"rtt_max": 1.352,
"rtt_avg": 0.075,
"pkt_loss": 0.0
},
"ping_500": {
"rtt_min": 0.064,
"rtt_max": 0.163,
"rtt_avg": 0.077,
"pkt_loss": 0.0
},
"ping_1000": {
"rtt_min": 0.067,
"rtt_max": 0.334,
"rtt_avg": 0.079,
"pkt_loss": 0.0
}
},
"chacha20": {
"iperf": {
"throughput": 2418750000.0,
"cpu_sender": 4.331642,
"cpu_receiver": 49.452792
},
"ping_100": {
"rtt_min": 0.065,
"rtt_max": 0.182,
"rtt_avg": 0.08,
"pkt_loss": 0.0
},
"ping_500": {
"rtt_min": 0.072,
"rtt_max": 0.201,
"rtt_avg": 0.086,
"pkt_loss": 0.0
},
"ping_1000": {
"rtt_min": 0.075,
"rtt_max": 0.38,
"rtt_avg": 0.09,
"pkt_loss": 0.0
}
},
"results": {
"throughput_mbits": {
"aes256-7000": 2736.147,
"plain-1400": 914.593510048459,
"chacha20-1400": 660.0519042921719,
"chacha20-7000": 2250.026,
"aes256-1400": 761.187334946869,
"plain-7000": 3930.962,
"native": 9678.675
},
"latency_ms": {
"aes256-7000": {
"100": 20.000000000000004,
"500": 20.499999999999996,
"1000": 21.5
},
"plain-1400": {
"100": 19.000000000000004,
"500": 19.000000000000004,
"1000": 20.499999999999996
},
"chacha20-1400": {
"100": 22.0,
"500": 23.0,
"1000": 26.500000000000004
},
"chacha20-7000": {
"100": 21.5,
"500": 23.5,
"1000": 26.500000000000004
},
"aes256-1400": {
"100": 19.000000000000004,
"500": 19.000000000000004,
"1000": 21.5
},
"plain-7000": {
"100": 18.500000000000004,
"500": 19.000000000000004,
"1000": 19.999999999999996
"native": 9680.305,
"plain": 4836.527,
"aes256": 3312.712,
"chacha20": 2418.75
},
"latency_us": {
"plain": {
"100": 16.999999999999996,
"500": 16.999999999999996,
"1000": 17.0
},
"aes256": {
"100": 17.499999999999996,
"500": 17.499999999999996,
"1000": 18.000000000000004
},
"chacha20": {
"100": 20.0,
"500": 21.999999999999996,
"1000": 23.5
}
}
},
"plain-1400": {
"ping_500": {
"rtt_min": 0.073,
"rtt_avg": 0.085,
"pkt_loss": 0.0,
"rtt_max": 13.084
},
"iperf": {
"cpu_sender": 2.973476,
"cpu_receiver": 70.948196,
"throughput": 914593510.048459
},
"ping_100": {
"rtt_min": 0.066,
"rtt_avg": 0.083,
"pkt_loss": 0.0,
"rtt_max": 13.291
},
"ping_1000": {
"rtt_min": 0.073,
"rtt_avg": 0.087,
"pkt_loss": 0.0,
"rtt_max": 13.257
}
},
"chacha20-1400": {
"ping_500": {
"rtt_min": 0.08,
"rtt_avg": 0.093,
"pkt_loss": 0.0,
"rtt_max": 13.11
},
"iperf": {
"cpu_sender": 2.598758,
"cpu_receiver": 65.3863,
"throughput": 660051904.292172
},
"ping_100": {
"rtt_min": 0.071,
"rtt_avg": 0.089,
"pkt_loss": 0.0,
"rtt_max": 13.328
},
"ping_1000": {
"rtt_min": 0.084,
"rtt_avg": 0.099,
"pkt_loss": 0.0,
"rtt_max": 13.41
}
},
"meta": {
"ami": "ami-0a02ee601d742e89f",
"instance_type": "m5.large",
"region": "eu-central-1",
"version": "1.0.0",
"duration": 870.1210024356842
},
"chacha20-7000": {
"ping_500": {
"rtt_min": 0.079,
"rtt_avg": 0.094,
"pkt_loss": 0.0,
"rtt_max": 13.602
},
"iperf": {
"cpu_sender": 5.441034,
"cpu_receiver": 58.117002,
"throughput": 2250026000.0
},
"ping_100": {
"rtt_min": 0.07,
"rtt_avg": 0.088,
"pkt_loss": 0.0,
"rtt_max": 0.186
},
"ping_1000": {
"rtt_min": 0.085,
"rtt_avg": 0.099,
"pkt_loss": 0.0,
"rtt_max": 1.131
}
},
"aes256-1400": {
"ping_500": {
"rtt_min": 0.073,
"rtt_avg": 0.085,
"pkt_loss": 0.0,
"rtt_max": 12.865
},
"iperf": {
"cpu_sender": 2.531172,
"cpu_receiver": 64.35578,
"throughput": 761187334.946869
},
"ping_100": {
"rtt_min": 0.069,
"rtt_avg": 0.083,
"pkt_loss": 0.0,
"rtt_max": 13.247
},
"ping_1000": {
"rtt_min": 0.075,
"rtt_avg": 0.089,
"pkt_loss": 0.0,
"rtt_max": 13.338
}
},
"plain-7000": {
"ping_500": {
"rtt_min": 0.073,
"rtt_avg": 0.085,
"pkt_loss": 0.0,
"rtt_max": 13.48
},
"iperf": {
"cpu_sender": 9.545279,
"cpu_receiver": 66.830757,
"throughput": 3930962000.0
},
"ping_100": {
"rtt_min": 0.07,
"rtt_avg": 0.082,
"pkt_loss": 0.0,
"rtt_max": 0.2
},
"ping_1000": {
"rtt_min": 0.075,
"rtt_avg": 0.086,
"pkt_loss": 0.0,
"rtt_max": 0.927
}
},
"native": {
"ping_500": {
"rtt_min": 0.04,
"rtt_avg": 0.047,
"pkt_loss": 0.0,
"rtt_max": 12.794
},
"iperf": {
"cpu_sender": 14.622503,
"cpu_receiver": 74.530595,
"throughput": 9678675000.0
},
"ping_100": {
"rtt_min": 0.038,
"rtt_avg": 0.045,
"pkt_loss": 0.0,
"rtt_max": 13.168
},
"ping_1000": {
"rtt_min": 0.041,
"rtt_avg": 0.046,
"pkt_loss": 0.0,
"rtt_max": 13.177
}
}
}

View File

@ -1,227 +1,134 @@
{
"aes256-7000": {
"ping_500": {
"rtt_min": 0.074,
"rtt_avg": 0.086,
"pkt_loss": 0.0,
"rtt_max": 0.585
},
"meta": {
"region": "eu-central-1",
"instance_type": "m5.large",
"ami": "ami-0a02ee601d742e89f",
"version": "1.1.0",
"duration": 495.3976471424103
},
"native": {
"iperf": {
"cpu_sender": 5.708496,
"cpu_receiver": 58.180282,
"throughput": 3004232000.0
},
"throughput": 9672876000.0,
"cpu_sender": 21.627575,
"cpu_receiver": 68.637173
},
"ping_100": {
"rtt_min": 0.071,
"rtt_avg": 0.084,
"pkt_loss": 0.0,
"rtt_max": 0.691
},
"rtt_min": 0.049,
"rtt_max": 0.869,
"rtt_avg": 0.057,
"pkt_loss": 0.0
},
"ping_500": {
"rtt_min": 0.051,
"rtt_max": 13.136,
"rtt_avg": 0.059,
"pkt_loss": 0.0
},
"ping_1000": {
"rtt_min": 0.073,
"rtt_avg": 0.087,
"pkt_loss": 0.0,
"rtt_max": 0.633
"rtt_min": 0.054,
"rtt_max": 0.179,
"rtt_avg": 0.06,
"pkt_loss": 0.0
}
},
},
"plain": {
"iperf": {
"throughput": 4983797000.0,
"cpu_sender": 11.27702,
"cpu_receiver": 65.580003
},
"ping_100": {
"rtt_min": 0.077,
"rtt_max": 0.24,
"rtt_avg": 0.093,
"pkt_loss": 0.0
},
"ping_500": {
"rtt_min": 0.078,
"rtt_max": 13.188,
"rtt_avg": 0.096,
"pkt_loss": 0.0
},
"ping_1000": {
"rtt_min": 0.083,
"rtt_max": 0.223,
"rtt_avg": 0.097,
"pkt_loss": 0.0
}
},
"aes256": {
"iperf": {
"throughput": 3226869000.0,
"cpu_sender": 5.683309,
"cpu_receiver": 54.09244
},
"ping_100": {
"rtt_min": 0.077,
"rtt_max": 1.533,
"rtt_avg": 0.095,
"pkt_loss": 0.0
},
"ping_500": {
"rtt_min": 0.082,
"rtt_max": 13.21,
"rtt_avg": 0.098,
"pkt_loss": 0.0
},
"ping_1000": {
"rtt_min": 0.084,
"rtt_max": 0.249,
"rtt_avg": 0.099,
"pkt_loss": 0.0
}
},
"chacha20": {
"iperf": {
"throughput": 2740356000.0,
"cpu_sender": 7.041418,
"cpu_receiver": 56.705647
},
"ping_100": {
"rtt_min": 0.081,
"rtt_max": 0.299,
"rtt_avg": 0.096,
"pkt_loss": 0.0
},
"ping_500": {
"rtt_min": 0.087,
"rtt_max": 13.089,
"rtt_avg": 0.104,
"pkt_loss": 0.0
},
"ping_1000": {
"rtt_min": 0.092,
"rtt_max": 0.36,
"rtt_avg": 0.108,
"pkt_loss": 0.0
}
},
"results": {
"throughput_mbits": {
"aes256-7000": 3004.232,
"plain-1400": 937.318890315313,
"chacha20-1400": 616.982586318721,
"chacha20-7000": 2139.102,
"aes256-1400": 804.276052366516,
"plain-7000": 4251.583,
"native": 9677.49
},
"latency_ms": {
"aes256-7000": {
"100": 19.500000000000004,
"500": 19.999999999999996,
"1000": 19.999999999999996
},
"plain-1400": {
"100": 18.500000000000004,
"500": 19.000000000000004,
"1000": 19.000000000000004
},
"chacha20-1400": {
"100": 21.5,
"500": 24.0,
"1000": 26.000000000000004
},
"chacha20-7000": {
"100": 21.5,
"500": 23.5,
"1000": 25.0
},
"aes256-1400": {
"100": 19.500000000000004,
"500": 20.499999999999996,
"1000": 19.999999999999996
},
"plain-7000": {
"100": 18.500000000000004,
"500": 18.500000000000004,
"1000": 19.000000000000004
"native": 9672.876,
"plain": 4983.797,
"aes256": 3226.869,
"chacha20": 2740.356
},
"latency_us": {
"plain": {
"100": 18.0,
"500": 18.500000000000004,
"1000": 18.500000000000004
},
"aes256": {
"100": 19.0,
"500": 19.500000000000004,
"1000": 19.500000000000004
},
"chacha20": {
"100": 19.5,
"500": 22.5,
"1000": 24.0
}
}
},
"plain-1400": {
"ping_500": {
"rtt_min": 0.069,
"rtt_avg": 0.084,
"pkt_loss": 0.0,
"rtt_max": 0.559
},
"iperf": {
"cpu_sender": 2.846318,
"cpu_receiver": 65.526508,
"throughput": 937318890.315313
},
"ping_100": {
"rtt_min": 0.064,
"rtt_avg": 0.082,
"pkt_loss": 0.0,
"rtt_max": 3.378
},
"ping_1000": {
"rtt_min": 0.072,
"rtt_avg": 0.085,
"pkt_loss": 0.0,
"rtt_max": 0.529
}
},
"chacha20-1400": {
"ping_500": {
"rtt_min": 0.081,
"rtt_avg": 0.094,
"pkt_loss": 0.0,
"rtt_max": 0.537
},
"iperf": {
"cpu_sender": 2.220085,
"cpu_receiver": 59.560219,
"throughput": 616982586.318721
},
"ping_100": {
"rtt_min": 0.073,
"rtt_avg": 0.088,
"pkt_loss": 0.0,
"rtt_max": 0.641
},
"ping_1000": {
"rtt_min": 0.085,
"rtt_avg": 0.099,
"pkt_loss": 0.0,
"rtt_max": 0.67
}
},
"meta": {
"ami": "ami-0a02ee601d742e89f",
"instance_type": "m5.large",
"region": "eu-central-1",
"version": "1.1.0",
"duration": 870.0856907367706
},
"chacha20-7000": {
"ping_500": {
"rtt_min": 0.079,
"rtt_avg": 0.093,
"pkt_loss": 0.0,
"rtt_max": 0.397
},
"iperf": {
"cpu_sender": 4.693588,
"cpu_receiver": 51.336932,
"throughput": 2139102000.0
},
"ping_100": {
"rtt_min": 0.074,
"rtt_avg": 0.088,
"pkt_loss": 0.0,
"rtt_max": 0.569
},
"ping_1000": {
"rtt_min": 0.084,
"rtt_avg": 0.097,
"pkt_loss": 0.0,
"rtt_max": 0.572
}
},
"aes256-1400": {
"ping_500": {
"rtt_min": 0.071,
"rtt_avg": 0.087,
"pkt_loss": 0.0,
"rtt_max": 10.58
},
"iperf": {
"cpu_sender": 2.510188,
"cpu_receiver": 64.157275,
"throughput": 804276052.366516
},
"ping_100": {
"rtt_min": 0.067,
"rtt_avg": 0.084,
"pkt_loss": 0.0,
"rtt_max": 1.54
},
"ping_1000": {
"rtt_min": 0.071,
"rtt_avg": 0.087,
"pkt_loss": 0.0,
"rtt_max": 0.237
}
},
"plain-7000": {
"ping_500": {
"rtt_min": 0.068,
"rtt_avg": 0.083,
"pkt_loss": 0.0,
"rtt_max": 0.402
},
"iperf": {
"cpu_sender": 8.801774,
"cpu_receiver": 66.18731,
"throughput": 4251583000.0
},
"ping_100": {
"rtt_min": 0.067,
"rtt_avg": 0.082,
"pkt_loss": 0.0,
"rtt_max": 0.701
},
"ping_1000": {
"rtt_min": 0.07,
"rtt_avg": 0.085,
"pkt_loss": 0.0,
"rtt_max": 0.266
}
},
"native": {
"ping_500": {
"rtt_min": 0.041,
"rtt_avg": 0.046,
"pkt_loss": 0.0,
"rtt_max": 0.52
},
"iperf": {
"cpu_sender": 14.901057,
"cpu_receiver": 61.512449,
"throughput": 9677490000.0
},
"ping_100": {
"rtt_min": 0.038,
"rtt_avg": 0.045,
"pkt_loss": 0.0,
"rtt_max": 0.651
},
"ping_1000": {
"rtt_min": 0.041,
"rtt_avg": 0.047,
"pkt_loss": 0.0,
"rtt_max": 0.663
}
}
}

View File

@ -1,227 +1,134 @@
{
"aes256-7000": {
"ping_500": {
"rtt_min": 0.077,
"rtt_avg": 0.091,
"pkt_loss": 0.0,
"rtt_max": 0.22
},
"meta": {
"region": "eu-central-1",
"instance_type": "m5.large",
"ami": "ami-0a02ee601d742e89f",
"version": "1.2.0",
"duration": 495.3082287311554
},
"native": {
"iperf": {
"cpu_sender": 4.870841,
"cpu_receiver": 58.056654,
"throughput": 2906372000.0
},
"throughput": 9679928000.0,
"cpu_sender": 14.518989,
"cpu_receiver": 75.510689
},
"ping_100": {
"rtt_min": 0.076,
"rtt_avg": 0.09,
"pkt_loss": 0.0,
"rtt_max": 0.597
},
"rtt_min": 0.044,
"rtt_max": 0.212,
"rtt_avg": 0.052,
"pkt_loss": 0.0
},
"ping_500": {
"rtt_min": 0.049,
"rtt_max": 0.368,
"rtt_avg": 0.053,
"pkt_loss": 0.0
},
"ping_1000": {
"rtt_min": 0.078,
"rtt_avg": 0.093,
"pkt_loss": 0.0,
"rtt_max": 0.925
"rtt_min": 0.049,
"rtt_max": 0.422,
"rtt_avg": 0.055,
"pkt_loss": 0.0
}
},
},
"plain": {
"iperf": {
"throughput": 5670752000.0,
"cpu_sender": 15.711913,
"cpu_receiver": 69.661585
},
"ping_100": {
"rtt_min": 0.076,
"rtt_max": 0.298,
"rtt_avg": 0.092,
"pkt_loss": 0.0
},
"ping_500": {
"rtt_min": 0.079,
"rtt_max": 0.269,
"rtt_avg": 0.094,
"pkt_loss": 0.0
},
"ping_1000": {
"rtt_min": 0.079,
"rtt_max": 0.469,
"rtt_avg": 0.095,
"pkt_loss": 0.0
}
},
"aes256": {
"iperf": {
"throughput": 3531058000.0,
"cpu_sender": 5.652232,
"cpu_receiver": 58.238361
},
"ping_100": {
"rtt_min": 0.08,
"rtt_max": 0.849,
"rtt_avg": 0.095,
"pkt_loss": 0.0
},
"ping_500": {
"rtt_min": 0.08,
"rtt_max": 0.205,
"rtt_avg": 0.096,
"pkt_loss": 0.0
},
"ping_1000": {
"rtt_min": 0.083,
"rtt_max": 0.418,
"rtt_avg": 0.099,
"pkt_loss": 0.0
}
},
"chacha20": {
"iperf": {
"throughput": 2384829000.0,
"cpu_sender": 3.995289,
"cpu_receiver": 47.656852
},
"ping_100": {
"rtt_min": 0.08,
"rtt_max": 0.2,
"rtt_avg": 0.096,
"pkt_loss": 0.0
},
"ping_500": {
"rtt_min": 0.087,
"rtt_max": 0.223,
"rtt_avg": 0.102,
"pkt_loss": 0.0
},
"ping_1000": {
"rtt_min": 0.092,
"rtt_max": 0.416,
"rtt_avg": 0.109,
"pkt_loss": 0.0
}
},
"results": {
"throughput_mbits": {
"aes256-7000": 2906.372,
"plain-1400": 845.4989025966671,
"chacha20-1400": 593.980680023114,
"chacha20-7000": 2290.887,
"aes256-1400": 752.968939682118,
"plain-7000": 4438.046,
"native": 9680.156
},
"latency_ms": {
"aes256-7000": {
"100": 22.0,
"500": 21.5,
"1000": 22.0
},
"plain-1400": {
"100": 20.499999999999996,
"500": 20.499999999999996,
"1000": 20.999999999999996
},
"chacha20-1400": {
"100": 23.5,
"500": 25.500000000000004,
"1000": 27.499999999999996
},
"chacha20-7000": {
"100": 23.5,
"500": 25.500000000000004,
"1000": 26.999999999999996
},
"aes256-1400": {
"100": 21.5,
"500": 22.0,
"1000": 22.5
},
"plain-7000": {
"100": 20.499999999999996,
"500": 20.499999999999996,
"1000": 20.499999999999996
"native": 9679.928,
"plain": 5670.752,
"aes256": 3531.058,
"chacha20": 2384.829
},
"latency_us": {
"plain": {
"100": 20.0,
"500": 20.5,
"1000": 20.0
},
"aes256": {
"100": 21.5,
"500": 21.5,
"1000": 22.000000000000004
},
"chacha20": {
"100": 22.000000000000004,
"500": 24.499999999999996,
"1000": 27.0
}
}
},
"plain-1400": {
"ping_500": {
"rtt_min": 0.074,
"rtt_avg": 0.089,
"pkt_loss": 0.0,
"rtt_max": 3.605
},
"iperf": {
"cpu_sender": 1.925076,
"cpu_receiver": 65.76581,
"throughput": 845498902.596667
},
"ping_100": {
"rtt_min": 0.071,
"rtt_avg": 0.087,
"pkt_loss": 0.0,
"rtt_max": 0.381
},
"ping_1000": {
"rtt_min": 0.077,
"rtt_avg": 0.091,
"pkt_loss": 0.0,
"rtt_max": 3.54
}
},
"chacha20-1400": {
"ping_500": {
"rtt_min": 0.085,
"rtt_avg": 0.099,
"pkt_loss": 0.0,
"rtt_max": 1.654
},
"iperf": {
"cpu_sender": 1.538928,
"cpu_receiver": 59.900258,
"throughput": 593980680.023114
},
"ping_100": {
"rtt_min": 0.074,
"rtt_avg": 0.093,
"pkt_loss": 0.0,
"rtt_max": 0.382
},
"ping_1000": {
"rtt_min": 0.088,
"rtt_avg": 0.104,
"pkt_loss": 0.0,
"rtt_max": 3.686
}
},
"meta": {
"ami": "ami-0a02ee601d742e89f",
"instance_type": "m5.large",
"region": "eu-central-1",
"version": "1.2.0",
"duration": 870.1119563579559
},
"chacha20-7000": {
"ping_500": {
"rtt_min": 0.082,
"rtt_avg": 0.099,
"pkt_loss": 0.0,
"rtt_max": 0.702
},
"iperf": {
"cpu_sender": 4.365811,
"cpu_receiver": 57.666402,
"throughput": 2290887000.0
},
"ping_100": {
"rtt_min": 0.075,
"rtt_avg": 0.093,
"pkt_loss": 0.0,
"rtt_max": 0.591
},
"ping_1000": {
"rtt_min": 0.09,
"rtt_avg": 0.103,
"pkt_loss": 0.0,
"rtt_max": 0.352
}
},
"aes256-1400": {
"ping_500": {
"rtt_min": 0.077,
"rtt_avg": 0.092,
"pkt_loss": 0.0,
"rtt_max": 0.239
},
"iperf": {
"cpu_sender": 1.643239,
"cpu_receiver": 64.53098,
"throughput": 752968939.682118
},
"ping_100": {
"rtt_min": 0.075,
"rtt_avg": 0.089,
"pkt_loss": 0.0,
"rtt_max": 1.615
},
"ping_1000": {
"rtt_min": 0.08,
"rtt_avg": 0.094,
"pkt_loss": 0.0,
"rtt_max": 0.676
}
},
"plain-7000": {
"ping_500": {
"rtt_min": 0.074,
"rtt_avg": 0.089,
"pkt_loss": 0.0,
"rtt_max": 0.586
},
"iperf": {
"cpu_sender": 13.25846,
"cpu_receiver": 68.481618,
"throughput": 4438046000.0
},
"ping_100": {
"rtt_min": 0.071,
"rtt_avg": 0.087,
"pkt_loss": 0.0,
"rtt_max": 0.503
},
"ping_1000": {
"rtt_min": 0.076,
"rtt_avg": 0.09,
"pkt_loss": 0.0,
"rtt_max": 0.234
}
},
"native": {
"ping_500": {
"rtt_min": 0.042,
"rtt_avg": 0.048,
"pkt_loss": 0.0,
"rtt_max": 0.305
},
"iperf": {
"cpu_sender": 19.960378,
"cpu_receiver": 65.885621,
"throughput": 9680156000.0
},
"ping_100": {
"rtt_min": 0.041,
"rtt_avg": 0.046,
"pkt_loss": 0.0,
"rtt_max": 0.312
},
"ping_1000": {
"rtt_min": 0.043,
"rtt_avg": 0.049,
"pkt_loss": 0.0,
"rtt_max": 0.509
}
}
}

View File

@ -4,223 +4,130 @@
"instance_type": "m5.large",
"ami": "ami-0a02ee601d742e89f",
"version": "1.3.0",
"duration": 869.9226264953613
"duration": 495.4212408065796
},
"native": {
"iperf": {
"throughput": 9678121000.0,
"cpu_sender": 18.541256,
"cpu_receiver": 65.911053
"throughput": 9673825000.0,
"cpu_sender": 14.002781,
"cpu_receiver": 74.93156
},
"ping_100": {
"rtt_min": 0.047,
"rtt_max": 0.113,
"rtt_avg": 0.054,
"rtt_min": 0.04,
"rtt_max": 0.235,
"rtt_avg": 0.047,
"pkt_loss": 0.0
},
"ping_500": {
"rtt_min": 0.05,
"rtt_max": 0.14,
"rtt_avg": 0.055,
"rtt_min": 0.042,
"rtt_max": 0.161,
"rtt_avg": 0.048,
"pkt_loss": 0.0
},
"ping_1000": {
"rtt_min": 0.049,
"rtt_max": 0.173,
"rtt_avg": 0.056,
"rtt_min": 0.043,
"rtt_max": 0.36,
"rtt_avg": 0.049,
"pkt_loss": 0.0
}
},
"plain-1400": {
"plain": {
"iperf": {
"throughput": 937787147.728354,
"cpu_sender": 3.517415,
"cpu_receiver": 66.394897
"throughput": 5335762000.0,
"cpu_sender": 14.483975,
"cpu_receiver": 66.013613
},
"ping_100": {
"rtt_min": 0.069,
"rtt_max": 0.183,
"rtt_avg": 0.084,
"pkt_loss": 0.0
},
"ping_500": {
"rtt_min": 0.074,
"rtt_max": 0.242,
"rtt_avg": 0.09,
"pkt_loss": 0.0
},
"ping_500": {
"rtt_min": 0.076,
"rtt_max": 0.256,
"rtt_avg": 0.091,
"rtt_max": 0.185,
"rtt_avg": 0.088,
"pkt_loss": 0.0
},
"ping_1000": {
"rtt_min": 0.076,
"rtt_max": 0.333,
"rtt_avg": 0.092,
"pkt_loss": 0.0
}
},
"aes256-1400": {
"iperf": {
"throughput": 840253358.805319,
"cpu_sender": 3.11095,
"cpu_receiver": 63.676868
},
"ping_100": {
"rtt_min": 0.077,
"rtt_max": 1.619,
"rtt_avg": 0.094,
"rtt_max": 0.203,
"rtt_avg": 0.089,
"pkt_loss": 0.0
}
},
"aes256": {
"iperf": {
"throughput": 3488220000.0,
"cpu_sender": 5.49698,
"cpu_receiver": 57.458403
},
"ping_100": {
"rtt_min": 0.073,
"rtt_max": 1.55,
"rtt_avg": 0.087,
"pkt_loss": 0.0
},
"ping_500": {
"rtt_min": 0.078,
"rtt_max": 0.437,
"rtt_avg": 0.096,
"pkt_loss": 0.0
},
"ping_1000": {
"rtt_min": 0.083,
"rtt_max": 3.592,
"rtt_avg": 0.098,
"pkt_loss": 0.0
}
},
"chacha20-1400": {
"iperf": {
"throughput": 675882455.008626,
"cpu_sender": 2.813117,
"cpu_receiver": 60.831832
},
"ping_100": {
"rtt_min": 0.079,
"rtt_max": 0.249,
"rtt_avg": 0.096,
"pkt_loss": 0.0
},
"ping_500": {
"rtt_min": 0.085,
"rtt_max": 0.29,
"rtt_avg": 0.101,
"pkt_loss": 0.0
},
"ping_1000": {
"rtt_min": 0.089,
"rtt_max": 0.222,
"rtt_avg": 0.108,
"pkt_loss": 0.0
}
},
"plain-7000": {
"iperf": {
"throughput": 4207272000.0,
"cpu_sender": 11.512448,
"cpu_receiver": 64.622926
},
"ping_100": {
"rtt_min": 0.074,
"rtt_max": 0.214,
"rtt_avg": 0.092,
"pkt_loss": 0.0
},
"ping_500": {
"rtt_min": 0.076,
"rtt_max": 0.341,
"rtt_max": 3.637,
"rtt_avg": 0.091,
"pkt_loss": 0.0
},
"ping_1000": {
"rtt_min": 0.079,
"rtt_max": 0.271,
"rtt_avg": 0.095,
"rtt_max": 0.233,
"rtt_avg": 0.092,
"pkt_loss": 0.0
}
},
"aes256-7000": {
"chacha20": {
"iperf": {
"throughput": 2896202000.0,
"cpu_sender": 8.098468,
"cpu_receiver": 57.364265
"throughput": 2784941000.0,
"cpu_sender": 4.273576,
"cpu_receiver": 59.274818
},
"ping_100": {
"rtt_min": 0.078,
"rtt_max": 0.173,
"rtt_avg": 0.094,
"pkt_loss": 0.0
},
"ping_500": {
"rtt_min": 0.079,
"rtt_max": 0.424,
"rtt_avg": 0.095,
"pkt_loss": 0.0
},
"ping_1000": {
"rtt_min": 0.083,
"rtt_max": 0.224,
"rtt_avg": 0.098,
"pkt_loss": 0.0
}
},
"chacha20-7000": {
"iperf": {
"throughput": 2262884000.0,
"cpu_sender": 5.687549,
"cpu_receiver": 54.00455
},
"ping_100": {
"rtt_min": 0.078,
"rtt_max": 1.712,
"rtt_avg": 0.097,
"rtt_min": 0.073,
"rtt_max": 9.541,
"rtt_avg": 0.092,
"pkt_loss": 0.0
},
"ping_500": {
"rtt_min": 0.084,
"rtt_max": 0.353,
"rtt_avg": 0.101,
"rtt_max": 0.196,
"rtt_avg": 0.098,
"pkt_loss": 0.0
},
"ping_1000": {
"rtt_min": 0.091,
"rtt_max": 0.227,
"rtt_avg": 0.107,
"rtt_min": 0.089,
"rtt_max": 0.614,
"rtt_avg": 0.104,
"pkt_loss": 0.0
}
},
"results": {
"throughput_mbits": {
"native": 9678.121,
"plain-1400": 937.787147728354,
"aes256-1400": 840.253358805319,
"chacha20-1400": 675.882455008626,
"plain-7000": 4207.272,
"aes256-7000": 2896.202,
"chacha20-7000": 2262.884
"native": 9673.825,
"plain": 5335.762,
"aes256": 3488.22,
"chacha20": 2784.941
},
"latency_ms": {
"plain-1400": {
"100": 18.0,
"500": 18.0,
"1000": 18.0
"latency_us": {
"plain": {
"100": 18.500000000000004,
"500": 19.999999999999996,
"1000": 19.999999999999996
},
"aes256-1400": {
"100": 20.0,
"500": 20.5,
"1000": 21.0
"aes256": {
"100": 19.999999999999996,
"500": 21.5,
"1000": 21.5
},
"chacha20-1400": {
"100": 21.0,
"500": 23.000000000000004,
"1000": 26.0
},
"plain-7000": {
"100": 19.0,
"500": 18.0,
"1000": 19.5
},
"aes256-7000": {
"100": 20.0,
"500": 20.0,
"1000": 21.0
},
"chacha20-7000": {
"100": 21.5,
"500": 23.000000000000004,
"1000": 25.5
"chacha20": {
"100": 22.5,
"500": 25.0,
"1000": 27.499999999999996
}
}
}

View File

@ -4,223 +4,130 @@
"instance_type": "m5.large",
"ami": "ami-0a02ee601d742e89f",
"version": "1.4.0",
"duration": 869.958389043808
"duration": 495.3894383907318
},
"native": {
"iperf": {
"throughput": 9680326000.0,
"cpu_sender": 16.947174,
"cpu_receiver": 62.788147
"throughput": 9679070000.0,
"cpu_sender": 12.871267,
"cpu_receiver": 71.50818
},
"ping_100": {
"rtt_min": 0.031,
"rtt_max": 0.404,
"rtt_avg": 0.035,
"rtt_min": 0.039,
"rtt_max": 0.219,
"rtt_avg": 0.047,
"pkt_loss": 0.0
},
"ping_500": {
"rtt_min": 0.033,
"rtt_max": 0.34,
"rtt_avg": 0.037,
"rtt_min": 0.041,
"rtt_max": 0.184,
"rtt_avg": 0.048,
"pkt_loss": 0.0
},
"ping_1000": {
"rtt_min": 0.034,
"rtt_max": 0.216,
"rtt_avg": 0.038,
"rtt_min": 0.042,
"rtt_max": 0.303,
"rtt_avg": 0.049,
"pkt_loss": 0.0
}
},
"plain-1400": {
"plain": {
"iperf": {
"throughput": 940748265.414369,
"cpu_sender": 2.128748,
"cpu_receiver": 67.266424
"throughput": 4991320000.0,
"cpu_sender": 8.543496,
"cpu_receiver": 65.730322
},
"ping_100": {
"rtt_min": 0.061,
"rtt_max": 0.214,
"rtt_avg": 0.073,
"pkt_loss": 0.0
},
"ping_500": {
"rtt_min": 0.061,
"rtt_max": 0.209,
"rtt_avg": 0.074,
"pkt_loss": 0.0
},
"ping_1000": {
"rtt_min": 0.063,
"rtt_max": 0.212,
"rtt_avg": 0.076,
"pkt_loss": 0.0
}
},
"aes256-1400": {
"iperf": {
"throughput": 848072373.681968,
"cpu_sender": 3.673014,
"cpu_receiver": 67.785447
},
"ping_100": {
"rtt_min": 0.062,
"rtt_max": 1.592,
"rtt_avg": 0.076,
"pkt_loss": 0.0
},
"ping_500": {
"rtt_min": 0.065,
"rtt_max": 0.276,
"rtt_avg": 0.078,
"pkt_loss": 0.0
},
"ping_1000": {
"rtt_min": 0.066,
"rtt_max": 3.276,
"rtt_avg": 0.08,
"pkt_loss": 0.0
}
},
"chacha20-1400": {
"iperf": {
"throughput": 651477352.697557,
"cpu_sender": 3.299836,
"cpu_receiver": 62.990183
},
"ping_100": {
"rtt_min": 0.066,
"rtt_max": 2.066,
"rtt_avg": 0.079,
"pkt_loss": 0.0
},
"ping_500": {
"rtt_min": 0.071,
"rtt_max": 0.185,
"rtt_avg": 0.084,
"pkt_loss": 0.0
},
"ping_1000": {
"rtt_min": 0.075,
"rtt_max": 0.624,
"rtt_avg": 0.089,
"pkt_loss": 0.0
}
},
"plain-7000": {
"iperf": {
"throughput": 4369926000.0,
"cpu_sender": 13.042179,
"cpu_receiver": 68.669349
},
"ping_100": {
"rtt_min": 0.06,
"rtt_max": 0.227,
"rtt_avg": 0.075,
"pkt_loss": 0.0
},
"ping_500": {
"rtt_min": 0.064,
"rtt_max": 0.22,
"rtt_avg": 0.078,
"pkt_loss": 0.0
},
"ping_1000": {
"rtt_min": 0.063,
"rtt_max": 0.168,
"rtt_avg": 0.076,
"pkt_loss": 0.0
}
},
"aes256-7000": {
"iperf": {
"throughput": 3108569000.0,
"cpu_sender": 5.808026,
"cpu_receiver": 62.726234
},
"ping_100": {
"rtt_min": 0.064,
"rtt_max": 0.267,
"rtt_avg": 0.078,
"pkt_loss": 0.0
},
"ping_500": {
"rtt_min": 0.066,
"rtt_max": 0.297,
"rtt_avg": 0.08,
"pkt_loss": 0.0
},
"ping_1000": {
"rtt_min": 0.069,
"rtt_max": 0.208,
"rtt_avg": 0.082,
"pkt_loss": 0.0
}
},
"chacha20-7000": {
"iperf": {
"throughput": 2136825000.0,
"cpu_sender": 4.381177,
"cpu_receiver": 50.957336
},
"ping_100": {
"rtt_min": 0.065,
"rtt_max": 0.235,
"rtt_avg": 0.08,
"pkt_loss": 0.0
},
"ping_500": {
"rtt_min": 0.072,
"rtt_max": 0.26,
"rtt_max": 3.557,
"rtt_avg": 0.087,
"pkt_loss": 0.0
},
"ping_500": {
"rtt_min": 0.075,
"rtt_max": 0.726,
"rtt_avg": 0.088,
"pkt_loss": 0.0
},
"ping_1000": {
"rtt_min": 0.078,
"rtt_max": 0.308,
"rtt_min": 0.076,
"rtt_max": 3.38,
"rtt_avg": 0.091,
"pkt_loss": 0.0
}
},
"aes256": {
"iperf": {
"throughput": 3824049000.0,
"cpu_sender": 8.673973,
"cpu_receiver": 62.240793
},
"ping_100": {
"rtt_min": 0.072,
"rtt_max": 1.365,
"rtt_avg": 0.09,
"pkt_loss": 0.0
},
"ping_500": {
"rtt_min": 0.078,
"rtt_max": 0.236,
"rtt_avg": 0.092,
"pkt_loss": 0.0
},
"ping_1000": {
"rtt_min": 0.079,
"rtt_max": 0.439,
"rtt_avg": 0.094,
"pkt_loss": 0.0
}
},
"chacha20": {
"iperf": {
"throughput": 2838553000.0,
"cpu_sender": 6.9273,
"cpu_receiver": 60.482437
},
"ping_100": {
"rtt_min": 0.075,
"rtt_max": 0.783,
"rtt_avg": 0.093,
"pkt_loss": 0.0
},
"ping_500": {
"rtt_min": 0.086,
"rtt_max": 0.208,
"rtt_avg": 0.098,
"pkt_loss": 0.0
},
"ping_1000": {
"rtt_min": 0.088,
"rtt_max": 0.214,
"rtt_avg": 0.103,
"pkt_loss": 0.0
}
},
"results": {
"throughput_mbits": {
"native": 9680.326,
"plain-1400": 940.748265414369,
"aes256-1400": 848.072373681968,
"chacha20-1400": 651.477352697557,
"plain-7000": 4369.926,
"aes256-7000": 3108.569,
"chacha20-7000": 2136.825
"native": 9679.07,
"plain": 4991.32,
"aes256": 3824.049,
"chacha20": 2838.553
},
"latency_ms": {
"plain-1400": {
"100": 18.999999999999996,
"500": 18.5,
"1000": 19.0
},
"aes256-1400": {
"100": 20.499999999999996,
"500": 20.5,
"1000": 21.0
},
"chacha20-1400": {
"100": 22.0,
"500": 23.500000000000004,
"1000": 25.5
},
"plain-7000": {
"latency_us": {
"plain": {
"100": 19.999999999999996,
"500": 20.5,
"1000": 19.0
"500": 19.999999999999996,
"1000": 20.999999999999996
},
"aes256-7000": {
"aes256": {
"100": 21.5,
"500": 21.5,
"1000": 22.000000000000004
"500": 22.0,
"1000": 22.5
},
"chacha20-7000": {
"100": 22.5,
"500": 24.999999999999996,
"1000": 26.5
"chacha20": {
"100": 23.0,
"500": 25.0,
"1000": 26.999999999999996
}
}
}

View File

@ -13,7 +13,7 @@ import sys
from datetime import date
# Note: this script will run for 15 minutes and incur costs of about $ 0.03
# Note: this script will run for ~8 minutes and incur costs of about $ 0.02
REGION = "eu-central-1"
AMI = "ami-0a02ee601d742e89f"
@ -65,6 +65,7 @@ class EC2Environment:
self.sender_ssh = None
self.receiver_ssh = None
try:
eprint("Setting up resources...")
self.setup()
self.wait_until_ready()
eprint("Setup done")
@ -78,36 +79,36 @@ class EC2Environment:
ec2client = boto3.client('ec2', region_name=REGION)
self.vpc = ec2.create_vpc(CidrBlock='172.16.0.0/16')
eprint("Created VPC {}".format(self.vpc.id))
eprint("\tCreated VPC {}".format(self.vpc.id))
self.vpc.create_tags(Tags=[{"Key": "Name", "Value": "vpncloud-perf-test"}])
self.vpc.wait_until_available()
ec2client.modify_vpc_attribute(VpcId=self.vpc.id, EnableDnsSupport={'Value': True})
ec2client.modify_vpc_attribute(VpcId=self.vpc.id, EnableDnsHostnames={'Value': True})
self.igw = ec2.create_internet_gateway()
eprint("Created Internet Gateway {}".format(self.igw.id))
eprint("\tCreated Internet Gateway {}".format(self.igw.id))
self.igw.attach_to_vpc(VpcId=self.vpc.id)
self.rtb = self.vpc.create_route_table()
eprint("Created Routing table {}".format(self.rtb.id))
eprint("\tCreated Routing table {}".format(self.rtb.id))
self.rtb.create_route(DestinationCidrBlock='0.0.0.0/0', GatewayId=self.igw.id)
self.subnet = ec2.create_subnet(CidrBlock='172.16.1.0/24', VpcId=self.vpc.id)
eprint("Created Subnet {}".format(self.subnet.id))
eprint("\tCreated Subnet {}".format(self.subnet.id))
self.rtb.associate_with_subnet(SubnetId=self.subnet.id)
self.sg = ec2.create_security_group(GroupName='SSH-ONLY', Description='only allow SSH traffic', VpcId=self.vpc.id)
eprint("Created security group {}".format(self.sg.id))
eprint("\tCreated security group {}".format(self.sg.id))
self.sg.authorize_ingress(CidrIp='0.0.0.0/0', IpProtocol='tcp', FromPort=22, ToPort=22)
self.sg.authorize_ingress(CidrIp='172.16.1.0/24', IpProtocol='icmp', FromPort=-1, ToPort=-1)
self.sg.authorize_ingress(CidrIp='172.16.1.0/24', IpProtocol='tcp', FromPort=0, ToPort=65535)
self.sg.authorize_ingress(CidrIp='172.16.1.0/24', IpProtocol='udp', FromPort=0, ToPort=65535)
self.key_pair = ec2.create_key_pair(KeyName='vpncloud-perf-test-keypair')
eprint("Created key pair {}".format(self.key_pair.name))
eprint("\tCreated key pair {}".format(self.key_pair.name))
self.rsa_key = paramiko.RSAKey.from_private_key(io.StringIO(self.key_pair.key_material))
self.placement_group = ec2.create_placement_group(GroupName="vpncloud-test-placement", Strategy="cluster")
eprint("Created placement group {}".format(self.placement_group.name))
eprint("\tCreated placement group {}".format(self.placement_group.name))
if SPOT:
response = ec2client.request_spot_instances(
SpotPrice = MAX_PRICE,
@ -144,8 +145,8 @@ class EC2Environment:
sender, receiver = response['SpotInstanceRequests']
self.sender_request = sender['SpotInstanceRequestId']
self.receiver_request = receiver['SpotInstanceRequestId']
eprint("Created spot instance requests {} and {}".format(self.sender_request, self.receiver_request))
eprint("Waiting for spot instance requests")
eprint("\tCreated spot instance requests {} and {}".format(self.sender_request, self.receiver_request))
eprint("\tWaiting for spot instance requests")
waited = 0
while waited < MAX_WAIT:
time.sleep(1.0)
@ -181,8 +182,8 @@ class EC2Environment:
UserData=USERDATA,
KeyName='vpncloud-perf-test-keypair'
)
eprint("Created EC2 instances {} and {}".format(self.sender.id, self.receiver.id))
eprint("Waiting for instances to start...")
eprint("\tCreated EC2 instances {} and {}".format(self.sender.id, self.receiver.id))
eprint("\tWaiting for instances to start...")
self.sender.wait_until_running()
self.receiver.wait_until_running()
self.sender.reload()
@ -190,7 +191,7 @@ class EC2Environment:
def wait_until_ready(self):
waited = 0
eprint("Waiting for SSH to be ready...")
eprint("\tWaiting for SSH to be ready...")
while waited < MAX_WAIT:
try:
if not self.sender_ssh:
@ -202,7 +203,7 @@ class EC2Environment:
pass
time.sleep(1.0)
waited += 1
eprint("Waiting for instances to finish setup...")
eprint("\tWaiting for instances to finish setup...")
while waited < MAX_WAIT:
try:
run_cmd(self.sender_ssh, 'test -f /var/lib/cloud/instance/boot-finished')
@ -288,7 +289,7 @@ class PerfTest:
return run_cmd(self.receiver_ssh, cmd)
def run_ping(self, dst, size):
eprint("Running ping {} with size {} ...".format(dst, size))
eprint("\tRunning ping {} with size {} ...".format(dst, size))
(out, _) = self.run_sender('sudo ping {dst} -c 30000 -i 0.001 -s {size} -U -q'.format(dst=dst, size=size))
match = re.search(r'([\d]*\.[\d]*)/([\d]*\.[\d]*)/([\d]*\.[\d]*)/([\d]*\.[\d]*)', out)
ping_min = float(match.group(1))
@ -304,7 +305,7 @@ class PerfTest:
}
def run_iperf(self, dst):
eprint("Running iperf on {} ...".format(dst))
eprint("\tRunning iperf on {} ...".format(dst))
self.run_receiver('iperf3 -s -D')
time.sleep(0.1)
(out, _) = self.run_sender('iperf3 -c {dst} -t 30 --json'.format(dst=dst))
@ -324,12 +325,12 @@ class PerfTest:
"ping_1000": self.run_ping(dst, 1000),
}
def start_vpncloud(self, mtu=1400, crypto=None):
eprint("Setting up vpncloud on receiver")
def start_vpncloud(self, mtu=8800, crypto=None):
eprint("\tSetting up vpncloud on receiver")
crypto_str = " --shared-key test --crypto {}".format(crypto) if crypto else ""
args = "-t tap --daemon -l 3210 --no-port-forwarding" + crypto_str
self.run_receiver("sudo vpncloud {args} --ifup 'ifconfig $IFNAME {ip}/24 mtu {mtu} up'".format(args=args, mtu=mtu, ip=self.receiver_ip_vpncloud))
eprint("Setting up vpncloud on sender")
eprint("\tSetting up vpncloud on sender")
self.run_sender("sudo vpncloud {args} -c {peer}:3210 --ifup 'ifconfig $IFNAME {ip}/24 mtu {mtu} up'".format(args=args, mtu=mtu, ip=self.sender_ip_vpncloud, peer=self.receiver_ip))
time.sleep(1.0)
@ -339,6 +340,7 @@ class PerfTest:
time.sleep(3.0)
def run(self):
eprint("Testing native network")
results = {
"meta": {
"region": REGION,
@ -348,21 +350,20 @@ class PerfTest:
},
"native": self.run_suite(self.receiver_ip)
}
for mtu in [1400, 7000]:
for crypto in [None, "aes256", "chacha20"]:
eprint("Running with mtu {} and crypto {}".format(mtu, crypto or "plain"))
self.start_vpncloud(mtu=mtu, crypto=crypto)
res = self.run_suite(self.receiver_ip_vpncloud)
self.stop_vpncloud()
results["{}-{}".format(crypto or "plain", mtu)] = res
for crypto in [None, "aes256", "chacha20"]:
eprint("Running with crypto {}".format(crypto or "plain"))
self.start_vpncloud(mtu=8800, crypto=crypto)
res = self.run_suite(self.receiver_ip_vpncloud)
self.stop_vpncloud()
results[str(crypto or "plain")] = res
results['results'] = {
"throughput_mbits": dict([
(k, results[k]["iperf"]["throughput"] / 1000000.0) for k in ["native", "plain-1400", "aes256-1400", "chacha20-1400", "plain-7000", "aes256-7000", "chacha20-7000"]
(k, results[k]["iperf"]["throughput"] / 1000000.0) for k in ["native", "plain", "aes256", "chacha20"]
]),
"latency_ms": dict([
"latency_us": dict([
(k, dict([
(str(s), (results[k]["ping_%s" % s]["rtt_avg"] - results["native"]["ping_%s" % s]["rtt_avg"])*1000.0/2.0) for s in [100, 500, 1000]
])) for k in ["plain-1400", "aes256-1400", "chacha20-1400", "plain-7000", "aes256-7000", "chacha20-7000"]
])) for k in ["plain", "aes256", "chacha20"]
])
}
return results