diff --git a/benchmark/README.md b/benchmark/README.md index 6f58fe1..f0b98ab 100644 --- a/benchmark/README.md +++ b/benchmark/README.md @@ -382,11 +382,47 @@ Proxy service/monolake system performance: ![performance-metrices-monolake](images/README/performance-metrices-monolake.png) -Client/wrk2 http through proxy services latency: +Client/wrk2 http proxy services latency: + +Client/wrk2 tiny payload http proxy services latency: + +![all-http-tiny-latency](images/README/all-http-tiny-latency.png) + +Client/wrk2 small payload http proxy services latency: + +![all-http-small-latency](images/README/all-http-small-latency.png) + +Client/wrk2 medium payload http proxy services latency: + +![all-http-medium-latency](images/README/all-http-medium-latency.png) + +Client/wrk2 large payload http proxy services latency: + +![all-http-large-latency](images/README/all-http-large-latency.png) + +Client/wrk2 overall http proxy services latency: ![all-http-latency](images/README/all-http-latency.png) -Client/wrk2 https through proxy services latency: +Client/wrk2 https proxy services latency: + +Client/wrk2 tiny payload https proxy services latency: + +![all-latency-https-tiny](images/README/all-latency-https-tiny.png) + +Client/wrk2 small payload https proxy services latency: + +![all-latency-https-small](images/README/all-latency-https-small.png) + +Client/wrk2 medium payload https proxy services latency: + +![all-latency-https-medium](images/README/all-latency-https-medium.png) + +Client/wrk2 large payload https proxy services latency: + +![all-latency-https-large](images/README/all-latency-https-large.png) + +Client/wrk2 overall https proxy services latency: ![all-latency-https](images/README/all-latency-https.png) @@ -443,5 +479,40 @@ Throughput and requests per second compare by payload size: | https-result-4c-nginx | 127167.08 | 114350.27 | 62450.58 | 7881.00 | 46420459.52 | 401143234.56 | 718746419.20 | 1309965025.28 | | https-result-4c-traefik | 9943.28 | 11888.59 | 13914.15 | 7698.61 | 3386900.48 | 41418752.00 | 159802982.40 | 1277752770.56 | | https-result-4c-envoy | 34158.00 | 33054.16 | 26968.24 | 8349.09 | 12582912.00 | 116066877.44 | 310472867.84 | 1385126952.96 | +<<<<<<< HEAD + +Tiny payload QPS(requests per second): + +![QPS of tiny payload](images/README/tiny-qps.png) + +Small payload QPS(requests per second): + +![QPS of small payload](images/README/small-qps.png) + +Medium payload QPS(requests per second): + +![QPS of medium payload](images/README/medium-qps.png) + +Large payload QPS(requests per second): + +![QPS of large payload](images/README/large-qps.png) + +Tiny payload throughput: + +![Throughput of tiny payload](images/README/tiny-throughput.png) + +Small payload throughput: + +![Throughput of small payload](images/README/small-throughput.png) + +Medium payload throughput: + +![Throughput of medium payload](images/README/medium-throughput.png) + +Large payload throughput: + +![Throughput of large payload](images/README/large-throughput.png) + +Overall throughput and requests per second: ![proxies-performance-rotated](images/README/proxies-performance-rotated.png) diff --git a/benchmark/images/README/all-http-large-latency.png b/benchmark/images/README/all-http-large-latency.png new file mode 100644 index 0000000..1795647 Binary files /dev/null and b/benchmark/images/README/all-http-large-latency.png differ diff --git a/benchmark/images/README/all-http-latency.png b/benchmark/images/README/all-http-latency.png index 75286a8..aadfffa 100644 Binary files a/benchmark/images/README/all-http-latency.png and b/benchmark/images/README/all-http-latency.png differ diff --git a/benchmark/images/README/all-http-medium-latency.png b/benchmark/images/README/all-http-medium-latency.png new file mode 100644 index 0000000..ef93b39 Binary files /dev/null and b/benchmark/images/README/all-http-medium-latency.png differ diff --git a/benchmark/images/README/all-http-small-latency.png b/benchmark/images/README/all-http-small-latency.png new file mode 100644 index 0000000..6fb7b47 Binary files /dev/null and b/benchmark/images/README/all-http-small-latency.png differ diff --git a/benchmark/images/README/all-http-tiny-latency.png b/benchmark/images/README/all-http-tiny-latency.png new file mode 100644 index 0000000..b0a3087 Binary files /dev/null and b/benchmark/images/README/all-http-tiny-latency.png differ diff --git a/benchmark/images/README/all-latency-https-large.png b/benchmark/images/README/all-latency-https-large.png new file mode 100644 index 0000000..e80cab5 Binary files /dev/null and b/benchmark/images/README/all-latency-https-large.png differ diff --git a/benchmark/images/README/all-latency-https-medium.png b/benchmark/images/README/all-latency-https-medium.png new file mode 100644 index 0000000..efad729 Binary files /dev/null and b/benchmark/images/README/all-latency-https-medium.png differ diff --git a/benchmark/images/README/all-latency-https-small.png b/benchmark/images/README/all-latency-https-small.png new file mode 100644 index 0000000..696be6b Binary files /dev/null and b/benchmark/images/README/all-latency-https-small.png differ diff --git a/benchmark/images/README/all-latency-https-tiny.png b/benchmark/images/README/all-latency-https-tiny.png new file mode 100644 index 0000000..7f02e12 Binary files /dev/null and b/benchmark/images/README/all-latency-https-tiny.png differ diff --git a/benchmark/images/README/all-latency-https.png b/benchmark/images/README/all-latency-https.png index 99b4a06..4670faf 100644 Binary files a/benchmark/images/README/all-latency-https.png and b/benchmark/images/README/all-latency-https.png differ diff --git a/benchmark/images/README/large-qps.png b/benchmark/images/README/large-qps.png new file mode 100644 index 0000000..216b7af Binary files /dev/null and b/benchmark/images/README/large-qps.png differ diff --git a/benchmark/images/README/large-throughput.png b/benchmark/images/README/large-throughput.png new file mode 100644 index 0000000..b003eb4 Binary files /dev/null and b/benchmark/images/README/large-throughput.png differ diff --git a/benchmark/images/README/medium-qps.png b/benchmark/images/README/medium-qps.png new file mode 100644 index 0000000..6b09409 Binary files /dev/null and b/benchmark/images/README/medium-qps.png differ diff --git a/benchmark/images/README/medium-throughput.png b/benchmark/images/README/medium-throughput.png new file mode 100644 index 0000000..de45fa2 Binary files /dev/null and b/benchmark/images/README/medium-throughput.png differ diff --git a/benchmark/images/README/nginx-http-latency.png b/benchmark/images/README/nginx-http-latency.png index 0c2fffa..2f2b9b5 100644 Binary files a/benchmark/images/README/nginx-http-latency.png and b/benchmark/images/README/nginx-http-latency.png differ diff --git a/benchmark/images/README/performance-metrices-monolake.png b/benchmark/images/README/performance-metrices-monolake.png index 0e86d99..03f59be 100644 Binary files a/benchmark/images/README/performance-metrices-monolake.png and b/benchmark/images/README/performance-metrices-monolake.png differ diff --git a/benchmark/images/README/proxies-performance-rotated.png b/benchmark/images/README/proxies-performance-rotated.png index 15c7d46..ecfa40e 100644 Binary files a/benchmark/images/README/proxies-performance-rotated.png and b/benchmark/images/README/proxies-performance-rotated.png differ diff --git a/benchmark/images/README/proxies-performance.png b/benchmark/images/README/proxies-performance.png index eb4fbe6..1938c62 100644 Binary files a/benchmark/images/README/proxies-performance.png and b/benchmark/images/README/proxies-performance.png differ diff --git a/benchmark/images/README/small-qps.png b/benchmark/images/README/small-qps.png new file mode 100644 index 0000000..7fb235d Binary files /dev/null and b/benchmark/images/README/small-qps.png differ diff --git a/benchmark/images/README/small-throughput.png b/benchmark/images/README/small-throughput.png new file mode 100644 index 0000000..e32be3d Binary files /dev/null and b/benchmark/images/README/small-throughput.png differ diff --git a/benchmark/images/README/tiny-qps.png b/benchmark/images/README/tiny-qps.png new file mode 100644 index 0000000..bbf8ab0 Binary files /dev/null and b/benchmark/images/README/tiny-qps.png differ diff --git a/benchmark/images/README/tiny-throughput.png b/benchmark/images/README/tiny-throughput.png new file mode 100644 index 0000000..dfd9283 Binary files /dev/null and b/benchmark/images/README/tiny-throughput.png differ diff --git a/benchmark/visualization/all-http-latency-plot.sh b/benchmark/visualization/all-http-latency-plot.sh index 0372049..4ce6b69 100755 --- a/benchmark/visualization/all-http-latency-plot.sh +++ b/benchmark/visualization/all-http-latency-plot.sh @@ -1 +1,5 @@ -./latency-plot.sh -m 40000 -o all-http-latency.png http-result-4c-monolake-tiny.txt http-result-4c-monolake-small.txt http-result-4c-monolake-medium.txt http-result-4c-monolake-large.txt http-result-4c-nginx-tiny.txt http-result-4c-nginx-small.txt http-result-4c-nginx-medium.txt http-result-4c-nginx-large.txt http-result-4c-traefik-tiny.txt http-result-4c-traefik-small.txt http-result-4c-traefik-medium.txt http-result-4c-traefik-large.txt http-result-4c-envoy-tiny.txt http-result-4c-envoy-small.txt http-result-4c-envoy-medium.txt http-result-4c-envoy-large.txt +./latency-plot.sh -m 40000 -o all-http-latency.png http-result-4c-monolake-tiny.txt http-result-4c-monolake-small.txt http-result-4c-monolake-medium.txt http-result-4c-monolake-large.txt http-result-4c-nginx-tiny.txt http-result-4c-nginx-small.txt http-result-4c-nginx-medium.txt http-result-4c-nginx-large.txt http-result-4c-traefik-tiny.txt http-result-4c-traefik-small.txt http-result-4c-traefik-medium.txt http-result-4c-traefik-large.txt http-result-4c-envoy-tiny.txt http-result-4c-envoy-small.txt http-result-4c-envoy-medium.txt http-result-4c-envoy-large.txt +./latency-plot.sh -m 40000 -o all-http-tiny-latency.png http-result-4c-monolake-tiny.txt http-result-4c-nginx-tiny.txt http-result-4c-traefik-tiny.txt http-result-4c-envoy-tiny.txt +./latency-plot.sh -m 40000 -o all-http-small-latency.png http-result-4c-monolake-small.txt http-result-4c-nginx-small.txt http-result-4c-traefik-small.txt http-result-4c-envoy-small.txt +./latency-plot.sh -m 40000 -o all-http-medium-latency.png http-result-4c-monolake-medium.txt http-result-4c-nginx-medium.txt http-result-4c-traefik-medium.txt http-result-4c-envoy-medium.txt +./latency-plot.sh -m 40000 -o all-http-large-latency.png http-result-4c-monolake-large.txt http-result-4c-nginx-large.txt http-result-4c-traefik-large.txt http-result-4c-envoy-large.txt diff --git a/benchmark/visualization/all-https-latency-plot.sh b/benchmark/visualization/all-https-latency-plot.sh index a58d45c..d1a4e51 100755 --- a/benchmark/visualization/all-https-latency-plot.sh +++ b/benchmark/visualization/all-https-latency-plot.sh @@ -1 +1,5 @@ -./latency-plot.sh -m 40000 -o all-latency-https.png https-result-4c-monolake-tiny.txt https-result-4c-monolake-small.txt https-result-4c-monolake-medium.txt https-result-4c-monolake-large.txt https-result-4c-nginx-tiny.txt https-result-4c-nginx-small.txt https-result-4c-nginx-medium.txt https-result-4c-nginx-large.txt https-result-4c-traefik-tiny.txt https-result-4c-traefik-small.txt https-result-4c-traefik-medium.txt https-result-4c-traefik-large.txt https-result-4c-envoy-tiny.txt https-result-4c-envoy-small.txt https-result-4c-envoy-medium.txt https-result-4c-envoy-large.txt +./latency-plot.sh -m 40000 -o all-latency-https-tiny.png https-result-4c-monolake-tiny.txt https-result-4c-nginx-tiny.txt https-result-4c-traefik-tiny.txt https-result-4c-envoy-tiny.txt +./latency-plot.sh -m 40000 -o all-latency-https-small.png https-result-4c-monolake-small.txt https-result-4c-nginx-small.txt https-result-4c-traefik-small.txt https-result-4c-envoy-small.txt +./latency-plot.sh -m 40000 -o all-latency-https-medium.png https-result-4c-monolake-medium.txt https-result-4c-nginx-medium.txt https-result-4c-traefik-medium.txt https-result-4c-envoy-medium.txt +./latency-plot.sh -m 40000 -o all-latency-https-large.png https-result-4c-monolake-large.txt https-result-4c-nginx-large.txt https-result-4c-traefik-large.txt https-result-4c-envoy-large.txt +./latency-plot.sh -m 40000 -o all-latency-https.png https-result-4c-monolake-tiny.txt https-result-4c-monolake-small.txt https-result-4c-monolake-medium.txt https-result-4c-monolake-large.txt https-result-4c-nginx-tiny.txt https-result-4c-nginx-small.txt https-result-4c-nginx-medium.txt https-result-4c-nginx-large.txt https-result-4c-traefik-tiny.txt https-result-4c-traefik-small.txt https-result-4c-traefik-medium.txt https-result-4c-traefik-large.txt https-result-4c-envoy-tiny.txt https-result-4c-envoy-small.txt https-result-4c-envoy-medium.txt https-result-4c-envoy-large.txt diff --git a/benchmark/visualization/performance-csv-convert.py b/benchmark/visualization/performance-csv-convert.py index 08bad1a..3b4e0fe 100644 --- a/benchmark/visualization/performance-csv-convert.py +++ b/benchmark/visualization/performance-csv-convert.py @@ -23,94 +23,94 @@ "Tiny Transfer/sec", "Small Transfer/sec", "Medium Transfer/sec", "Large Transfer/sec", ] o_csv = dict() -o_csv["http-result-4c-monolake"] = list() -o_csv["http-result-4c-nginx"] = list() -o_csv["http-result-4c-traefik"] = list() -o_csv["http-result-4c-envoy"] = list() -o_csv["https-result-4c-monolake"] = list() -o_csv["https-result-4c-nginx"] = list() -o_csv["https-result-4c-traefik"] = list() -o_csv["https-result-4c-envoy"] = list() - -o_csv["http-result-4c-monolake"].append("http-result-4c-monolake") -o_csv["http-result-4c-monolake"].append(d_csv[0][0]) -o_csv["http-result-4c-monolake"].append(d_csv[1][0]) -o_csv["http-result-4c-monolake"].append(d_csv[2][0]) -o_csv["http-result-4c-monolake"].append(d_csv[3][0]) -o_csv["http-result-4c-monolake"].append(d_csv[0][1]) -o_csv["http-result-4c-monolake"].append(d_csv[1][1]) -o_csv["http-result-4c-monolake"].append(d_csv[2][1]) -o_csv["http-result-4c-monolake"].append(d_csv[3][1]) - -o_csv["http-result-4c-nginx"].append("http-result-4c-nginx") -o_csv["http-result-4c-nginx"].append(d_csv[4][0]) -o_csv["http-result-4c-nginx"].append(d_csv[5][0]) -o_csv["http-result-4c-nginx"].append(d_csv[6][0]) -o_csv["http-result-4c-nginx"].append(d_csv[7][0]) -o_csv["http-result-4c-nginx"].append(d_csv[4][1]) -o_csv["http-result-4c-nginx"].append(d_csv[5][1]) -o_csv["http-result-4c-nginx"].append(d_csv[6][1]) -o_csv["http-result-4c-nginx"].append(d_csv[7][1]) - -o_csv["http-result-4c-traefik"].append("http-result-4c-traefik") -o_csv["http-result-4c-traefik"].append(d_csv[8][0]) -o_csv["http-result-4c-traefik"].append(d_csv[9][0]) -o_csv["http-result-4c-traefik"].append(d_csv[10][0]) -o_csv["http-result-4c-traefik"].append(d_csv[11][0]) -o_csv["http-result-4c-traefik"].append(d_csv[8][1]) -o_csv["http-result-4c-traefik"].append(d_csv[9][1]) -o_csv["http-result-4c-traefik"].append(d_csv[10][1]) -o_csv["http-result-4c-traefik"].append(d_csv[11][1]) - -o_csv["http-result-4c-envoy"].append("http-result-4c-envoy") -o_csv["http-result-4c-envoy"].append(d_csv[12][0]) -o_csv["http-result-4c-envoy"].append(d_csv[13][0]) -o_csv["http-result-4c-envoy"].append(d_csv[14][0]) -o_csv["http-result-4c-envoy"].append(d_csv[15][0]) -o_csv["http-result-4c-envoy"].append(d_csv[12][1]) -o_csv["http-result-4c-envoy"].append(d_csv[13][1]) -o_csv["http-result-4c-envoy"].append(d_csv[14][1]) -o_csv["http-result-4c-envoy"].append(d_csv[15][1]) - -o_csv["https-result-4c-monolake"].append("https-result-4c-monolake") -o_csv["https-result-4c-monolake"].append(d_csv[16][0]) -o_csv["https-result-4c-monolake"].append(d_csv[17][0]) -o_csv["https-result-4c-monolake"].append(d_csv[18][0]) -o_csv["https-result-4c-monolake"].append(d_csv[19][0]) -o_csv["https-result-4c-monolake"].append(d_csv[16][1]) -o_csv["https-result-4c-monolake"].append(d_csv[17][1]) -o_csv["https-result-4c-monolake"].append(d_csv[18][1]) -o_csv["https-result-4c-monolake"].append(d_csv[19][1]) - -o_csv["https-result-4c-nginx"].append("https-result-4c-nginx") -o_csv["https-result-4c-nginx"].append(d_csv[20][0]) -o_csv["https-result-4c-nginx"].append(d_csv[21][0]) -o_csv["https-result-4c-nginx"].append(d_csv[22][0]) -o_csv["https-result-4c-nginx"].append(d_csv[23][0]) -o_csv["https-result-4c-nginx"].append(d_csv[20][1]) -o_csv["https-result-4c-nginx"].append(d_csv[21][1]) -o_csv["https-result-4c-nginx"].append(d_csv[22][1]) -o_csv["https-result-4c-nginx"].append(d_csv[23][1]) - -o_csv["https-result-4c-traefik"].append("https-result-4c-traefik") -o_csv["https-result-4c-traefik"].append(d_csv[24][0]) -o_csv["https-result-4c-traefik"].append(d_csv[25][0]) -o_csv["https-result-4c-traefik"].append(d_csv[26][0]) -o_csv["https-result-4c-traefik"].append(d_csv[27][0]) -o_csv["https-result-4c-traefik"].append(d_csv[24][1]) -o_csv["https-result-4c-traefik"].append(d_csv[25][1]) -o_csv["https-result-4c-traefik"].append(d_csv[26][1]) -o_csv["https-result-4c-traefik"].append(d_csv[27][1]) - -o_csv["https-result-4c-envoy"].append("https-result-4c-envoy") -o_csv["https-result-4c-envoy"].append(d_csv[28][0]) -o_csv["https-result-4c-envoy"].append(d_csv[29][0]) -o_csv["https-result-4c-envoy"].append(d_csv[30][0]) -o_csv["https-result-4c-envoy"].append(d_csv[31][0]) -o_csv["https-result-4c-envoy"].append(d_csv[28][1]) -o_csv["https-result-4c-envoy"].append(d_csv[29][1]) -o_csv["https-result-4c-envoy"].append(d_csv[30][1]) -o_csv["https-result-4c-envoy"].append(d_csv[31][1]) +o_csv["http-monolake"] = list() +o_csv["http-nginx"] = list() +o_csv["http-traefik"] = list() +o_csv["http-envoy"] = list() +o_csv["https-monolake"] = list() +o_csv["https-nginx"] = list() +o_csv["https-traefik"] = list() +o_csv["https-envoy"] = list() + +o_csv["http-monolake"].append("http-monolake") +o_csv["http-monolake"].append(d_csv[0][0]) +o_csv["http-monolake"].append(d_csv[1][0]) +o_csv["http-monolake"].append(d_csv[2][0]) +o_csv["http-monolake"].append(d_csv[3][0]) +o_csv["http-monolake"].append(d_csv[0][1]) +o_csv["http-monolake"].append(d_csv[1][1]) +o_csv["http-monolake"].append(d_csv[2][1]) +o_csv["http-monolake"].append(d_csv[3][1]) + +o_csv["http-nginx"].append("http-nginx") +o_csv["http-nginx"].append(d_csv[4][0]) +o_csv["http-nginx"].append(d_csv[5][0]) +o_csv["http-nginx"].append(d_csv[6][0]) +o_csv["http-nginx"].append(d_csv[7][0]) +o_csv["http-nginx"].append(d_csv[4][1]) +o_csv["http-nginx"].append(d_csv[5][1]) +o_csv["http-nginx"].append(d_csv[6][1]) +o_csv["http-nginx"].append(d_csv[7][1]) + +o_csv["http-traefik"].append("http-traefik") +o_csv["http-traefik"].append(d_csv[8][0]) +o_csv["http-traefik"].append(d_csv[9][0]) +o_csv["http-traefik"].append(d_csv[10][0]) +o_csv["http-traefik"].append(d_csv[11][0]) +o_csv["http-traefik"].append(d_csv[8][1]) +o_csv["http-traefik"].append(d_csv[9][1]) +o_csv["http-traefik"].append(d_csv[10][1]) +o_csv["http-traefik"].append(d_csv[11][1]) + +o_csv["http-envoy"].append("http-envoy") +o_csv["http-envoy"].append(d_csv[12][0]) +o_csv["http-envoy"].append(d_csv[13][0]) +o_csv["http-envoy"].append(d_csv[14][0]) +o_csv["http-envoy"].append(d_csv[15][0]) +o_csv["http-envoy"].append(d_csv[12][1]) +o_csv["http-envoy"].append(d_csv[13][1]) +o_csv["http-envoy"].append(d_csv[14][1]) +o_csv["http-envoy"].append(d_csv[15][1]) + +o_csv["https-monolake"].append("https-monolake") +o_csv["https-monolake"].append(d_csv[16][0]) +o_csv["https-monolake"].append(d_csv[17][0]) +o_csv["https-monolake"].append(d_csv[18][0]) +o_csv["https-monolake"].append(d_csv[19][0]) +o_csv["https-monolake"].append(d_csv[16][1]) +o_csv["https-monolake"].append(d_csv[17][1]) +o_csv["https-monolake"].append(d_csv[18][1]) +o_csv["https-monolake"].append(d_csv[19][1]) + +o_csv["https-nginx"].append("https-nginx") +o_csv["https-nginx"].append(d_csv[20][0]) +o_csv["https-nginx"].append(d_csv[21][0]) +o_csv["https-nginx"].append(d_csv[22][0]) +o_csv["https-nginx"].append(d_csv[23][0]) +o_csv["https-nginx"].append(d_csv[20][1]) +o_csv["https-nginx"].append(d_csv[21][1]) +o_csv["https-nginx"].append(d_csv[22][1]) +o_csv["https-nginx"].append(d_csv[23][1]) + +o_csv["https-traefik"].append("https-traefik") +o_csv["https-traefik"].append(d_csv[24][0]) +o_csv["https-traefik"].append(d_csv[25][0]) +o_csv["https-traefik"].append(d_csv[26][0]) +o_csv["https-traefik"].append(d_csv[27][0]) +o_csv["https-traefik"].append(d_csv[24][1]) +o_csv["https-traefik"].append(d_csv[25][1]) +o_csv["https-traefik"].append(d_csv[26][1]) +o_csv["https-traefik"].append(d_csv[27][1]) + +o_csv["https-envoy"].append("https-envoy") +o_csv["https-envoy"].append(d_csv[28][0]) +o_csv["https-envoy"].append(d_csv[29][0]) +o_csv["https-envoy"].append(d_csv[30][0]) +o_csv["https-envoy"].append(d_csv[31][0]) +o_csv["https-envoy"].append(d_csv[28][1]) +o_csv["https-envoy"].append(d_csv[29][1]) +o_csv["https-envoy"].append(d_csv[30][1]) +o_csv["https-envoy"].append(d_csv[31][1]) # print("o_csv:") # print(o_csv) @@ -120,11 +120,11 @@ with open(output_filename1, 'w') as csvfile_output: writer = csv.writer(csvfile_output, delimiter=',') writer.writerow(fieldnames) - writer.writerow(o_csv["http-result-4c-monolake"]) - writer.writerow(o_csv["http-result-4c-nginx"]) - writer.writerow(o_csv["http-result-4c-traefik"]) - writer.writerow(o_csv["http-result-4c-envoy"]) - writer.writerow(o_csv["https-result-4c-monolake"]) - writer.writerow(o_csv["https-result-4c-nginx"]) - writer.writerow(o_csv["https-result-4c-traefik"]) - writer.writerow(o_csv["https-result-4c-envoy"]) + writer.writerow(o_csv["http-monolake"]) + writer.writerow(o_csv["http-nginx"]) + writer.writerow(o_csv["http-traefik"]) + writer.writerow(o_csv["http-envoy"]) + writer.writerow(o_csv["https-monolake"]) + writer.writerow(o_csv["https-nginx"]) + writer.writerow(o_csv["https-traefik"]) + writer.writerow(o_csv["https-envoy"]) diff --git a/benchmark/visualization/proxies-performance-plot.sh b/benchmark/visualization/proxies-performance-plot.sh index f6a2f31..5ad52ea 100755 --- a/benchmark/visualization/proxies-performance-plot.sh +++ b/benchmark/visualization/proxies-performance-plot.sh @@ -4,6 +4,14 @@ csv_filename="proxies-performance.csv" output_filename1="proxies-performance.png" csv_filename2="proxies-performance-rotated.csv" output_filename2="proxies-performance-rotated.png" +output_filename_tiny_throughput="tiny-throughput.png" +output_filename_small_throughput="small-throughput.png" +output_filename_medium_throughput="medium-throughput.png" +output_filename_large_throughput="large-throughput.png" +output_filename_tiny_qps="tiny-qps.png" +output_filename_small_qps="small-qps.png" +output_filename_medium_qps="medium-qps.png" +output_filename_large_qps="large-qps.png" # output_filename3="proxies-performance-rotated-boxes.png" echo "Case,Requests/sec,Transfer/sec,Server Error,Timeout" > $csv_filename @@ -96,7 +104,7 @@ gnuplot <<- EOF set output "$output_filename1" set yrange [1000:*] set logscale y - set ytics format "%.0s%c" + set ytics format "%.1s%c" set style data histogram set style histogram cluster gap 1 @@ -128,7 +136,7 @@ gnuplot <<- EOF set grid ytics lt 1 lc rgb "#d8d8d8" lw 2 # Rotate x axis lables - set xtics rotate + # set xtics rotate # Set graph size relative to the canvas set size 1,0.85 @@ -169,7 +177,7 @@ gnuplot <<- EOF set yrange [1000:*] set logscale y - set ytics format "%.0s%c" + set ytics format "%.1s%c" set style data histogram set style histogram cluster gap 1 @@ -185,3 +193,406 @@ gnuplot <<- EOF '' u 4 ti col,\ '' u 5 ti col, EOF + +echo "Plotting itemized graphs rotated..." +gnuplot <<- EOF + # Output to png with a font size of 10, using pngcairo for anti-aliasing + set term pngcairo size 1024,800 noenhanced font "Helvetica,10" + + # Set border color around the graph + set border ls 50 lt rgb "#939393" + + # Hide left and right vertical borders + set border 16 lw 0 + set border 64 lw 0 + + # Set tic color + set tics nomirror textcolor rgb "#939393" + + # Set horizontal lines on the ytics + set grid ytics lt 1 lc rgb "#d8d8d8" lw 2 + + # Rotate x axis lables + # set xtics rotate + + # Set graph size relative to the canvas + set size 1,0.85 + + set boxwidth 0.5 + set style fill solid + + # Set separator to comma + set datafile separator "," + + # Move legend to the bottom + set key bmargin center box lt rgb "#d8d8d8" horizontal + + set output "$output_filename_tiny_throughput" + set title "Proxy Throughput of HTTP/S Tiny Payload" + + # set yrange [1000:*] + set ytics format "%.1s%c" + + set style data histogram + set style histogram cluster gap 1 + set style fill solid border -1 + set boxwidth 0.9 + + plot "$csv_filename2" using 6:xtic(1) ti '' with boxes fc rgb "#4848d6" +EOF + +gnuplot <<- EOF + # Output to png with a font size of 10, using pngcairo for anti-aliasing + set term pngcairo size 1024,800 noenhanced font "Helvetica,10" + + # Set border color around the graph + set border ls 50 lt rgb "#939393" + + # Hide left and right vertical borders + set border 16 lw 0 + set border 64 lw 0 + + # Set tic color + set tics nomirror textcolor rgb "#939393" + + # Set horizontal lines on the ytics + set grid ytics lt 1 lc rgb "#d8d8d8" lw 2 + + # Rotate x axis lables + # set xtics rotate + + # Set graph size relative to the canvas + set size 1,0.85 + + set boxwidth 0.5 + set style fill solid + + # Set separator to comma + set datafile separator "," + + # Move legend to the bottom + set key bmargin center box lt rgb "#d8d8d8" horizontal + + set output "$output_filename_small_throughput" + set title "Proxy Throughput of HTTP/S Small Payload" + + # set yrange [1000:*] + set ytics format "%.1s%c" + + set style data histogram + set style histogram cluster gap 1 + set style fill solid border -1 + set boxwidth 0.9 + + plot "$csv_filename2" using 7:xtic(1) ti '' with boxes fc rgb "#b40000" +EOF + +gnuplot <<- EOF + # Output to png with a font size of 10, using pngcairo for anti-aliasing + set term pngcairo size 1024,800 noenhanced font "Helvetica,10" + + # Set border color around the graph + set border ls 50 lt rgb "#939393" + + # Hide left and right vertical borders + set border 16 lw 0 + set border 64 lw 0 + + # Set tic color + set tics nomirror textcolor rgb "#939393" + + # Set horizontal lines on the ytics + set grid ytics lt 1 lc rgb "#d8d8d8" lw 2 + + # Rotate x axis lables + # set xtics rotate + + # Set graph size relative to the canvas + set size 1,0.85 + + set boxwidth 0.5 + set style fill solid + + # Set separator to comma + set datafile separator "," + + # Move legend to the bottom + set key bmargin center box lt rgb "#d8d8d8" horizontal + + set output "$output_filename_medium_throughput" + set title "Proxy Throughput of HTTP/S Medium Payload" + + # set yrange [1000:*] + set ytics format "%.1s%c" + + set style data histogram + set style histogram cluster gap 1 + set style fill solid border -1 + set boxwidth 0.9 + + plot "$csv_filename2" using 8:xtic(1) ti '' with boxes fc rgb "#ed8004" +EOF + +gnuplot <<- EOF + # Output to png with a font size of 10, using pngcairo for anti-aliasing + set term pngcairo size 1024,800 noenhanced font "Helvetica,10" + + # Set border color around the graph + set border ls 50 lt rgb "#939393" + + # Hide left and right vertical borders + set border 16 lw 0 + set border 64 lw 0 + + # Set tic color + set tics nomirror textcolor rgb "#939393" + + # Set horizontal lines on the ytics + set grid ytics lt 1 lc rgb "#d8d8d8" lw 2 + + # Rotate x axis lables + # set xtics rotate + + # Set graph size relative to the canvas + set size 1,0.85 + + set boxwidth 0.5 + set style fill solid + + # Set separator to comma + set datafile separator "," + + # Move legend to the bottom + set key bmargin center box lt rgb "#d8d8d8" horizontal + + set output "$output_filename_large_throughput" + set title "Proxy Throughput of HTTP/S Large Payload" + + # set yrange [1000:*] + set ytics format "%.1s%c" + + set style data histogram + set style histogram cluster gap 1 + set style fill solid border -1 + set boxwidth 0.9 + + plot "$csv_filename2" using 9:xtic(1) ti '' with boxes fc rgb "#48d65b" +EOF + +gnuplot <<- EOF + # Output to png with a font size of 10, using pngcairo for anti-aliasing + set term pngcairo size 1024,800 noenhanced font "Helvetica,10" + + # Set border color around the graph + set border ls 50 lt rgb "#939393" + + # Hide left and right vertical borders + set border 16 lw 0 + set border 64 lw 0 + + # Set tic color + set tics nomirror textcolor rgb "#939393" + + # Set horizontal lines on the ytics + set grid ytics lt 1 lc rgb "#d8d8d8" lw 2 + + # Rotate x axis lables + # set xtics rotate + + # Set graph size relative to the canvas + set size 1,0.85 + + set boxwidth 0.5 + set style fill solid + + # Set separator to comma + set datafile separator "," + + # Move legend to the bottom + set key bmargin center box lt rgb "#d8d8d8" horizontal + + set output "$output_filename_tiny_qps" + set title "Proxy QPS of HTTP/S Tiny Payload" + + # set yrange [1000:*] + set ytics format "%.1s%c" + + set style data histogram + set style histogram cluster gap 1 + set style fill solid border -1 + set boxwidth 0.9 + + plot "$csv_filename2" using 2:xtic(1) ti '' with boxes fc rgb "#4848d6" +EOF + +gnuplot <<- EOF + # Output to png with a font size of 10, using pngcairo for anti-aliasing + set term pngcairo size 1024,800 noenhanced font "Helvetica,10" + + # Set border color around the graph + set border ls 50 lt rgb "#939393" + + # Hide left and right vertical borders + set border 16 lw 0 + set border 64 lw 0 + + # Set tic color + set tics nomirror textcolor rgb "#939393" + + # Set horizontal lines on the ytics + set grid ytics lt 1 lc rgb "#d8d8d8" lw 2 + + # Rotate x axis lables + # set xtics rotate + + # Set graph size relative to the canvas + set size 1,0.85 + + set boxwidth 0.5 + set style fill solid + + # Set separator to comma + set datafile separator "," + + # Move legend to the bottom + set key bmargin center box lt rgb "#d8d8d8" horizontal + + set output "$output_filename_small_qps" + set title "Proxy QPS of HTTP/S Small Payload" + + # set yrange [1000:*] + set ytics format "%.1s%c" + + set style data histogram + set style histogram cluster gap 1 + set style fill solid border -1 + set boxwidth 0.9 + + plot "$csv_filename2" using 3:xtic(1) ti '' with boxes fc rgb "#b40000" +EOF + +gnuplot <<- EOF + # Output to png with a font size of 10, using pngcairo for anti-aliasing + set term pngcairo size 1024,800 noenhanced font "Helvetica,10" + + # Set border color around the graph + set border ls 50 lt rgb "#939393" + + # Hide left and right vertical borders + set border 16 lw 0 + set border 64 lw 0 + + # Set tic color + set tics nomirror textcolor rgb "#939393" + + # Set horizontal lines on the ytics + set grid ytics lt 1 lc rgb "#d8d8d8" lw 2 + + # Rotate x axis lables + # set xtics rotate + + # Set graph size relative to the canvas + set size 1,0.85 + + set boxwidth 0.5 + set style fill solid + + # Set separator to comma + set datafile separator "," + + # Move legend to the bottom + set key bmargin center box lt rgb "#d8d8d8" horizontal + + set output "$output_filename_medium_qps" + set title "Proxy QPS of HTTP/S Medium Payload" + + # set yrange [1000:*] + set ytics format "%.1s%c" + + set style data histogram + set style histogram cluster gap 1 + set style fill solid border -1 + set boxwidth 0.9 + + plot "$csv_filename2" using 4:xtic(1) ti '' with boxes fc rgb "#ed8004" +EOF + +gnuplot <<- EOF + # Output to png with a font size of 10, using pngcairo for anti-aliasing + set term pngcairo size 1024,800 noenhanced font "Helvetica,10" + + # Set border color around the graph + set border ls 50 lt rgb "#939393" + + # Hide left and right vertical borders + set border 16 lw 0 + set border 64 lw 0 + + # Set tic color + set tics nomirror textcolor rgb "#939393" + + # Set horizontal lines on the ytics + set grid ytics lt 1 lc rgb "#d8d8d8" lw 2 + + # Rotate x axis lables + # set xtics rotate + + # Set graph size relative to the canvas + set size 1,0.85 + + set boxwidth 0.5 + set style fill solid + + # Set separator to comma + set datafile separator "," + + # Move legend to the bottom + set key bmargin center box lt rgb "#d8d8d8" horizontal + + set output "$output_filename_large_qps" + set title "Proxy QPS of HTTP/S Large Payload" + + # set yrange [1000:*] + set ytics format "%.1s%c" + + set style data histogram + set style histogram cluster gap 1 + set style fill solid border -1 + set boxwidth 0.9 + + plot "$csv_filename2" using 5:xtic(1) ti '' with boxes fc rgb "#48d65b" +EOF + +echo "copy generated images to ../images/README" +cp performance-metrices-monolake.png ../images/README/ +# cp proxies-performance-rotated.png ../images/README/ +# cp proxies-performance.png ../images/README/ +cp nginx-http-latency.png ../images/README/ +cp all-http-latency.png ../images/README/ +cp all-latency-https.png ../images/README/ +# cp large-qps.png ../images/README/ +# cp medium-qps.png ../images/README/ +# cp small-qps.png ../images/README/ +# cp tiny-qps.png ../images/README/ +# cp large-throughput.png ../images/README/ +# cp medium-throughput.png ../images/README/ +# cp small-throughput.png ../images/README/ +# cp tiny-throughput.png ../images/README/ +cp all-latency-https-large.png ../images/README/ +cp all-latency-https-medium.png ../images/README/ +cp all-latency-https-small.png ../images/README/ +cp all-latency-https-tiny.png ../images/README/ +cp all-http-large-latency.png ../images/README/ +cp all-http-medium-latency.png ../images/README/ +cp all-http-small-latency.png ../images/README/ +cp all-http-tiny-latency.png ../images/README/ +cp $output_filename1 ../images/README/ +cp $output_filename2 ../images/README/ +cp $output_filename_tiny_throughput ../images/README/ +cp $output_filename_small_throughput ../images/README/ +cp $output_filename_medium_throughput ../images/README/ +cp $output_filename_large_throughput ../images/README/ +cp $output_filename_tiny_qps ../images/README/ +cp $output_filename_small_qps ../images/README/ +cp $output_filename_medium_qps ../images/README/ +cp $output_filename_large_qps ../images/README/