Fix performance measurements

This commit is contained in:
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": { "meta": {
"ping_500": { "region": "eu-central-1",
"rtt_min": 0.074, "instance_type": "m5.large",
"rtt_avg": 0.088, "ami": "ami-0a02ee601d742e89f",
"pkt_loss": 0.0, "version": "1.0.0",
"rtt_max": 13.643 "duration": 495.34057664871216
}, },
"native": {
"iperf": { "iperf": {
"cpu_sender": 6.394363, "throughput": 9680305000.0,
"cpu_receiver": 54.566188, "cpu_sender": 20.862659,
"throughput": 2736147000.0 "cpu_receiver": 65.856166
}, },
"ping_100": { "ping_100": {
"rtt_min": 0.073, "rtt_min": 0.035,
"rtt_avg": 0.085, "rtt_max": 0.121,
"pkt_loss": 0.0, "rtt_avg": 0.04,
"rtt_max": 0.698 "pkt_loss": 0.0
},
"ping_500": {
"rtt_min": 0.036,
"rtt_max": 0.151,
"rtt_avg": 0.042,
"pkt_loss": 0.0
}, },
"ping_1000": { "ping_1000": {
"rtt_min": 0.077, "rtt_min": 0.039,
"rtt_avg": 0.089, "rtt_max": 0.145,
"pkt_loss": 0.0, "rtt_avg": 0.043,
"rtt_max": 0.152 "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": { "results": {
"throughput_mbits": { "throughput_mbits": {
"aes256-7000": 2736.147, "native": 9680.305,
"plain-1400": 914.593510048459, "plain": 4836.527,
"chacha20-1400": 660.0519042921719, "aes256": 3312.712,
"chacha20-7000": 2250.026, "chacha20": 2418.75
"aes256-1400": 761.187334946869,
"plain-7000": 3930.962,
"native": 9678.675
}, },
"latency_ms": { "latency_us": {
"aes256-7000": { "plain": {
"100": 20.000000000000004, "100": 16.999999999999996,
"500": 20.499999999999996, "500": 16.999999999999996,
"1000": 21.5 "1000": 17.0
}, },
"plain-1400": { "aes256": {
"100": 19.000000000000004, "100": 17.499999999999996,
"500": 19.000000000000004, "500": 17.499999999999996,
"1000": 20.499999999999996 "1000": 18.000000000000004
}, },
"chacha20-1400": { "chacha20": {
"100": 22.0, "100": 20.0,
"500": 23.0, "500": 21.999999999999996,
"1000": 26.500000000000004 "1000": 23.5
},
"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
} }
} }
},
"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": { "meta": {
"ping_500": { "region": "eu-central-1",
"rtt_min": 0.074, "instance_type": "m5.large",
"rtt_avg": 0.086, "ami": "ami-0a02ee601d742e89f",
"pkt_loss": 0.0, "version": "1.1.0",
"rtt_max": 0.585 "duration": 495.3976471424103
}, },
"native": {
"iperf": { "iperf": {
"cpu_sender": 5.708496, "throughput": 9672876000.0,
"cpu_receiver": 58.180282, "cpu_sender": 21.627575,
"throughput": 3004232000.0 "cpu_receiver": 68.637173
}, },
"ping_100": { "ping_100": {
"rtt_min": 0.071, "rtt_min": 0.049,
"rtt_avg": 0.084, "rtt_max": 0.869,
"pkt_loss": 0.0, "rtt_avg": 0.057,
"rtt_max": 0.691 "pkt_loss": 0.0
},
"ping_500": {
"rtt_min": 0.051,
"rtt_max": 13.136,
"rtt_avg": 0.059,
"pkt_loss": 0.0
}, },
"ping_1000": { "ping_1000": {
"rtt_min": 0.073, "rtt_min": 0.054,
"rtt_avg": 0.087, "rtt_max": 0.179,
"pkt_loss": 0.0, "rtt_avg": 0.06,
"rtt_max": 0.633 "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": { "results": {
"throughput_mbits": { "throughput_mbits": {
"aes256-7000": 3004.232, "native": 9672.876,
"plain-1400": 937.318890315313, "plain": 4983.797,
"chacha20-1400": 616.982586318721, "aes256": 3226.869,
"chacha20-7000": 2139.102, "chacha20": 2740.356
"aes256-1400": 804.276052366516,
"plain-7000": 4251.583,
"native": 9677.49
}, },
"latency_ms": { "latency_us": {
"aes256-7000": { "plain": {
"100": 19.500000000000004, "100": 18.0,
"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, "500": 18.500000000000004,
"1000": 19.000000000000004 "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": { "meta": {
"ping_500": { "region": "eu-central-1",
"rtt_min": 0.077, "instance_type": "m5.large",
"rtt_avg": 0.091, "ami": "ami-0a02ee601d742e89f",
"pkt_loss": 0.0, "version": "1.2.0",
"rtt_max": 0.22 "duration": 495.3082287311554
}, },
"native": {
"iperf": { "iperf": {
"cpu_sender": 4.870841, "throughput": 9679928000.0,
"cpu_receiver": 58.056654, "cpu_sender": 14.518989,
"throughput": 2906372000.0 "cpu_receiver": 75.510689
},
"ping_100": {
"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.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": { "ping_100": {
"rtt_min": 0.076, "rtt_min": 0.076,
"rtt_avg": 0.09, "rtt_max": 0.298,
"pkt_loss": 0.0, "rtt_avg": 0.092,
"rtt_max": 0.597 "pkt_loss": 0.0
},
"ping_500": {
"rtt_min": 0.079,
"rtt_max": 0.269,
"rtt_avg": 0.094,
"pkt_loss": 0.0
}, },
"ping_1000": { "ping_1000": {
"rtt_min": 0.078, "rtt_min": 0.079,
"rtt_avg": 0.093, "rtt_max": 0.469,
"pkt_loss": 0.0, "rtt_avg": 0.095,
"rtt_max": 0.925 "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": { "results": {
"throughput_mbits": { "throughput_mbits": {
"aes256-7000": 2906.372, "native": 9679.928,
"plain-1400": 845.4989025966671, "plain": 5670.752,
"chacha20-1400": 593.980680023114, "aes256": 3531.058,
"chacha20-7000": 2290.887, "chacha20": 2384.829
"aes256-1400": 752.968939682118,
"plain-7000": 4438.046,
"native": 9680.156
}, },
"latency_ms": { "latency_us": {
"aes256-7000": { "plain": {
"100": 22.0, "100": 20.0,
"500": 21.5, "500": 20.5,
"1000": 22.0 "1000": 20.0
}, },
"plain-1400": { "aes256": {
"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, "100": 21.5,
"500": 22.0, "500": 21.5,
"1000": 22.5 "1000": 22.000000000000004
}, },
"plain-7000": { "chacha20": {
"100": 20.499999999999996, "100": 22.000000000000004,
"500": 20.499999999999996, "500": 24.499999999999996,
"1000": 20.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", "instance_type": "m5.large",
"ami": "ami-0a02ee601d742e89f", "ami": "ami-0a02ee601d742e89f",
"version": "1.3.0", "version": "1.3.0",
"duration": 869.9226264953613 "duration": 495.4212408065796
}, },
"native": { "native": {
"iperf": { "iperf": {
"throughput": 9678121000.0, "throughput": 9673825000.0,
"cpu_sender": 18.541256, "cpu_sender": 14.002781,
"cpu_receiver": 65.911053 "cpu_receiver": 74.93156
}, },
"ping_100": { "ping_100": {
"rtt_min": 0.047, "rtt_min": 0.04,
"rtt_max": 0.113, "rtt_max": 0.235,
"rtt_avg": 0.054, "rtt_avg": 0.047,
"pkt_loss": 0.0 "pkt_loss": 0.0
}, },
"ping_500": { "ping_500": {
"rtt_min": 0.05, "rtt_min": 0.042,
"rtt_max": 0.14, "rtt_max": 0.161,
"rtt_avg": 0.055, "rtt_avg": 0.048,
"pkt_loss": 0.0 "pkt_loss": 0.0
}, },
"ping_1000": { "ping_1000": {
"rtt_min": 0.049, "rtt_min": 0.043,
"rtt_max": 0.173, "rtt_max": 0.36,
"rtt_avg": 0.056, "rtt_avg": 0.049,
"pkt_loss": 0.0 "pkt_loss": 0.0
} }
}, },
"plain-1400": { "plain": {
"iperf": { "iperf": {
"throughput": 937787147.728354, "throughput": 5335762000.0,
"cpu_sender": 3.517415, "cpu_sender": 14.483975,
"cpu_receiver": 66.394897 "cpu_receiver": 66.013613
}, },
"ping_100": { "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_min": 0.074,
"rtt_max": 0.242, "rtt_max": 0.185,
"rtt_avg": 0.09, "rtt_avg": 0.088,
"pkt_loss": 0.0
},
"ping_500": {
"rtt_min": 0.076,
"rtt_max": 0.256,
"rtt_avg": 0.091,
"pkt_loss": 0.0 "pkt_loss": 0.0
}, },
"ping_1000": { "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_min": 0.077,
"rtt_max": 1.619, "rtt_max": 0.203,
"rtt_avg": 0.094, "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 "pkt_loss": 0.0
}, },
"ping_500": { "ping_500": {
"rtt_min": 0.078, "rtt_min": 0.078,
"rtt_max": 0.437, "rtt_max": 3.637,
"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_avg": 0.091, "rtt_avg": 0.091,
"pkt_loss": 0.0 "pkt_loss": 0.0
}, },
"ping_1000": { "ping_1000": {
"rtt_min": 0.079, "rtt_min": 0.079,
"rtt_max": 0.271, "rtt_max": 0.233,
"rtt_avg": 0.095, "rtt_avg": 0.092,
"pkt_loss": 0.0 "pkt_loss": 0.0
} }
}, },
"aes256-7000": { "chacha20": {
"iperf": { "iperf": {
"throughput": 2896202000.0, "throughput": 2784941000.0,
"cpu_sender": 8.098468, "cpu_sender": 4.273576,
"cpu_receiver": 57.364265 "cpu_receiver": 59.274818
}, },
"ping_100": { "ping_100": {
"rtt_min": 0.078, "rtt_min": 0.073,
"rtt_max": 0.173, "rtt_max": 9.541,
"rtt_avg": 0.094, "rtt_avg": 0.092,
"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,
"pkt_loss": 0.0 "pkt_loss": 0.0
}, },
"ping_500": { "ping_500": {
"rtt_min": 0.084, "rtt_min": 0.084,
"rtt_max": 0.353, "rtt_max": 0.196,
"rtt_avg": 0.101, "rtt_avg": 0.098,
"pkt_loss": 0.0 "pkt_loss": 0.0
}, },
"ping_1000": { "ping_1000": {
"rtt_min": 0.091, "rtt_min": 0.089,
"rtt_max": 0.227, "rtt_max": 0.614,
"rtt_avg": 0.107, "rtt_avg": 0.104,
"pkt_loss": 0.0 "pkt_loss": 0.0
} }
}, },
"results": { "results": {
"throughput_mbits": { "throughput_mbits": {
"native": 9678.121, "native": 9673.825,
"plain-1400": 937.787147728354, "plain": 5335.762,
"aes256-1400": 840.253358805319, "aes256": 3488.22,
"chacha20-1400": 675.882455008626, "chacha20": 2784.941
"plain-7000": 4207.272,
"aes256-7000": 2896.202,
"chacha20-7000": 2262.884
}, },
"latency_ms": { "latency_us": {
"plain-1400": { "plain": {
"100": 18.0, "100": 18.500000000000004,
"500": 18.0, "500": 19.999999999999996,
"1000": 18.0 "1000": 19.999999999999996
}, },
"aes256-1400": { "aes256": {
"100": 20.0, "100": 19.999999999999996,
"500": 20.5, "500": 21.5,
"1000": 21.0 "1000": 21.5
}, },
"chacha20-1400": { "chacha20": {
"100": 21.0, "100": 22.5,
"500": 23.000000000000004, "500": 25.0,
"1000": 26.0 "1000": 27.499999999999996
},
"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
} }
} }
} }

View File

@ -4,223 +4,130 @@
"instance_type": "m5.large", "instance_type": "m5.large",
"ami": "ami-0a02ee601d742e89f", "ami": "ami-0a02ee601d742e89f",
"version": "1.4.0", "version": "1.4.0",
"duration": 869.958389043808 "duration": 495.3894383907318
}, },
"native": { "native": {
"iperf": { "iperf": {
"throughput": 9680326000.0, "throughput": 9679070000.0,
"cpu_sender": 16.947174, "cpu_sender": 12.871267,
"cpu_receiver": 62.788147 "cpu_receiver": 71.50818
}, },
"ping_100": { "ping_100": {
"rtt_min": 0.031, "rtt_min": 0.039,
"rtt_max": 0.404, "rtt_max": 0.219,
"rtt_avg": 0.035, "rtt_avg": 0.047,
"pkt_loss": 0.0 "pkt_loss": 0.0
}, },
"ping_500": { "ping_500": {
"rtt_min": 0.033, "rtt_min": 0.041,
"rtt_max": 0.34, "rtt_max": 0.184,
"rtt_avg": 0.037, "rtt_avg": 0.048,
"pkt_loss": 0.0 "pkt_loss": 0.0
}, },
"ping_1000": { "ping_1000": {
"rtt_min": 0.034, "rtt_min": 0.042,
"rtt_max": 0.216, "rtt_max": 0.303,
"rtt_avg": 0.038, "rtt_avg": 0.049,
"pkt_loss": 0.0 "pkt_loss": 0.0
} }
}, },
"plain-1400": { "plain": {
"iperf": { "iperf": {
"throughput": 940748265.414369, "throughput": 4991320000.0,
"cpu_sender": 2.128748, "cpu_sender": 8.543496,
"cpu_receiver": 67.266424 "cpu_receiver": 65.730322
}, },
"ping_100": { "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_min": 0.071,
"rtt_max": 0.185, "rtt_max": 3.557,
"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_avg": 0.087, "rtt_avg": 0.087,
"pkt_loss": 0.0 "pkt_loss": 0.0
}, },
"ping_500": {
"rtt_min": 0.075,
"rtt_max": 0.726,
"rtt_avg": 0.088,
"pkt_loss": 0.0
},
"ping_1000": { "ping_1000": {
"rtt_min": 0.078, "rtt_min": 0.076,
"rtt_max": 0.308, "rtt_max": 3.38,
"rtt_avg": 0.091, "rtt_avg": 0.091,
"pkt_loss": 0.0 "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": { "results": {
"throughput_mbits": { "throughput_mbits": {
"native": 9680.326, "native": 9679.07,
"plain-1400": 940.748265414369, "plain": 4991.32,
"aes256-1400": 848.072373681968, "aes256": 3824.049,
"chacha20-1400": 651.477352697557, "chacha20": 2838.553
"plain-7000": 4369.926,
"aes256-7000": 3108.569,
"chacha20-7000": 2136.825
}, },
"latency_ms": { "latency_us": {
"plain-1400": { "plain": {
"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": {
"100": 19.999999999999996, "100": 19.999999999999996,
"500": 20.5, "500": 19.999999999999996,
"1000": 19.0 "1000": 20.999999999999996
}, },
"aes256-7000": { "aes256": {
"100": 21.5, "100": 21.5,
"500": 21.5, "500": 22.0,
"1000": 22.000000000000004 "1000": 22.5
}, },
"chacha20-7000": { "chacha20": {
"100": 22.5, "100": 23.0,
"500": 24.999999999999996, "500": 25.0,
"1000": 26.5 "1000": 26.999999999999996
} }
} }
} }

View File

@ -13,7 +13,7 @@ import sys
from datetime import date 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" REGION = "eu-central-1"
AMI = "ami-0a02ee601d742e89f" AMI = "ami-0a02ee601d742e89f"
@ -65,6 +65,7 @@ class EC2Environment:
self.sender_ssh = None self.sender_ssh = None
self.receiver_ssh = None self.receiver_ssh = None
try: try:
eprint("Setting up resources...")
self.setup() self.setup()
self.wait_until_ready() self.wait_until_ready()
eprint("Setup done") eprint("Setup done")
@ -78,36 +79,36 @@ class EC2Environment:
ec2client = boto3.client('ec2', region_name=REGION) ec2client = boto3.client('ec2', region_name=REGION)
self.vpc = ec2.create_vpc(CidrBlock='172.16.0.0/16') 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.create_tags(Tags=[{"Key": "Name", "Value": "vpncloud-perf-test"}])
self.vpc.wait_until_available() self.vpc.wait_until_available()
ec2client.modify_vpc_attribute(VpcId=self.vpc.id, EnableDnsSupport={'Value': True}) ec2client.modify_vpc_attribute(VpcId=self.vpc.id, EnableDnsSupport={'Value': True})
ec2client.modify_vpc_attribute(VpcId=self.vpc.id, EnableDnsHostnames={'Value': True}) ec2client.modify_vpc_attribute(VpcId=self.vpc.id, EnableDnsHostnames={'Value': True})
self.igw = ec2.create_internet_gateway() 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.igw.attach_to_vpc(VpcId=self.vpc.id)
self.rtb = self.vpc.create_route_table() 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.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) 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.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) 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='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='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='tcp', FromPort=0, ToPort=65535)
self.sg.authorize_ingress(CidrIp='172.16.1.0/24', IpProtocol='udp', 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') 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.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") 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: if SPOT:
response = ec2client.request_spot_instances( response = ec2client.request_spot_instances(
SpotPrice = MAX_PRICE, SpotPrice = MAX_PRICE,
@ -144,8 +145,8 @@ class EC2Environment:
sender, receiver = response['SpotInstanceRequests'] sender, receiver = response['SpotInstanceRequests']
self.sender_request = sender['SpotInstanceRequestId'] self.sender_request = sender['SpotInstanceRequestId']
self.receiver_request = receiver['SpotInstanceRequestId'] self.receiver_request = receiver['SpotInstanceRequestId']
eprint("Created spot instance requests {} and {}".format(self.sender_request, self.receiver_request)) eprint("\tCreated spot instance requests {} and {}".format(self.sender_request, self.receiver_request))
eprint("Waiting for spot instance requests") eprint("\tWaiting for spot instance requests")
waited = 0 waited = 0
while waited < MAX_WAIT: while waited < MAX_WAIT:
time.sleep(1.0) time.sleep(1.0)
@ -181,8 +182,8 @@ class EC2Environment:
UserData=USERDATA, UserData=USERDATA,
KeyName='vpncloud-perf-test-keypair' KeyName='vpncloud-perf-test-keypair'
) )
eprint("Created EC2 instances {} and {}".format(self.sender.id, self.receiver.id)) eprint("\tCreated EC2 instances {} and {}".format(self.sender.id, self.receiver.id))
eprint("Waiting for instances to start...") eprint("\tWaiting for instances to start...")
self.sender.wait_until_running() self.sender.wait_until_running()
self.receiver.wait_until_running() self.receiver.wait_until_running()
self.sender.reload() self.sender.reload()
@ -190,7 +191,7 @@ class EC2Environment:
def wait_until_ready(self): def wait_until_ready(self):
waited = 0 waited = 0
eprint("Waiting for SSH to be ready...") eprint("\tWaiting for SSH to be ready...")
while waited < MAX_WAIT: while waited < MAX_WAIT:
try: try:
if not self.sender_ssh: if not self.sender_ssh:
@ -202,7 +203,7 @@ class EC2Environment:
pass pass
time.sleep(1.0) time.sleep(1.0)
waited += 1 waited += 1
eprint("Waiting for instances to finish setup...") eprint("\tWaiting for instances to finish setup...")
while waited < MAX_WAIT: while waited < MAX_WAIT:
try: try:
run_cmd(self.sender_ssh, 'test -f /var/lib/cloud/instance/boot-finished') 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) return run_cmd(self.receiver_ssh, cmd)
def run_ping(self, dst, size): 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)) (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) match = re.search(r'([\d]*\.[\d]*)/([\d]*\.[\d]*)/([\d]*\.[\d]*)/([\d]*\.[\d]*)', out)
ping_min = float(match.group(1)) ping_min = float(match.group(1))
@ -304,7 +305,7 @@ class PerfTest:
} }
def run_iperf(self, dst): def run_iperf(self, dst):
eprint("Running iperf on {} ...".format(dst)) eprint("\tRunning iperf on {} ...".format(dst))
self.run_receiver('iperf3 -s -D') self.run_receiver('iperf3 -s -D')
time.sleep(0.1) time.sleep(0.1)
(out, _) = self.run_sender('iperf3 -c {dst} -t 30 --json'.format(dst=dst)) (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), "ping_1000": self.run_ping(dst, 1000),
} }
def start_vpncloud(self, mtu=1400, crypto=None): def start_vpncloud(self, mtu=8800, crypto=None):
eprint("Setting up vpncloud on receiver") eprint("\tSetting up vpncloud on receiver")
crypto_str = " --shared-key test --crypto {}".format(crypto) if crypto else "" crypto_str = " --shared-key test --crypto {}".format(crypto) if crypto else ""
args = "-t tap --daemon -l 3210 --no-port-forwarding" + crypto_str 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)) 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)) 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) time.sleep(1.0)
@ -339,6 +340,7 @@ class PerfTest:
time.sleep(3.0) time.sleep(3.0)
def run(self): def run(self):
eprint("Testing native network")
results = { results = {
"meta": { "meta": {
"region": REGION, "region": REGION,
@ -348,21 +350,20 @@ class PerfTest:
}, },
"native": self.run_suite(self.receiver_ip) "native": self.run_suite(self.receiver_ip)
} }
for mtu in [1400, 7000]: for crypto in [None, "aes256", "chacha20"]:
for crypto in [None, "aes256", "chacha20"]: eprint("Running with crypto {}".format(crypto or "plain"))
eprint("Running with mtu {} and crypto {}".format(mtu, crypto or "plain")) self.start_vpncloud(mtu=8800, crypto=crypto)
self.start_vpncloud(mtu=mtu, crypto=crypto) res = self.run_suite(self.receiver_ip_vpncloud)
res = self.run_suite(self.receiver_ip_vpncloud) self.stop_vpncloud()
self.stop_vpncloud() results[str(crypto or "plain")] = res
results["{}-{}".format(crypto or "plain", mtu)] = res
results['results'] = { results['results'] = {
"throughput_mbits": dict([ "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([ (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] (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 return results