|
| 1 | +--- |
| 2 | +title: "Stateless Spring msgpush: GCI On x Off" |
| 3 | +author: "Daniel Fireman" |
| 4 | +date: "Sept, 2018" |
| 5 | +output: pdf_document |
| 6 | +--- |
| 7 | + |
| 8 | +```{r setup, include=FALSE} |
| 9 | +knitr::opts_chunk$set(echo=F) |
| 10 | +knitr::opts_chunk$set(warning=F) |
| 11 | +knitr::opts_chunk$set(cache=F) |
| 12 | +
|
| 13 | +require(dplyr) |
| 14 | +require(ggplot2) |
| 15 | +``` |
| 16 | + |
| 17 | +# Setup |
| 18 | + |
| 19 | +* num_vms = 4 |
| 20 | +* vcpus = 2 |
| 21 | +* ram_gb = 4 |
| 22 | +* java_version = "10.0.1" |
| 23 | +* gcc="5.4.0" # compiled the libgc.so |
| 24 | +* maven="3.3.9" # build all java project. |
| 25 | +* go_version = "go1.11 linux/amd64" # compiled the gci proxy binary. |
| 26 | +* nginx_version = "nginx/1.14.0 (Ubuntu)" |
| 27 | +* so_version = "Ubuntu 18.04 LTS" |
| 28 | +* kernel_version = "4.15.0-29-generic" |
| 29 | + |
| 30 | +# Tail Latency Comparison |
| 31 | + |
| 32 | +```{r} |
| 33 | +read.al <- function(f) { |
| 34 | + df <- read.csv(f, sep = ";", col.names = c("ts", "status", "latency", "ups"), colClasses = c("ups"="character")) |
| 35 | + df$latency <- df$latency*1000 |
| 36 | + return(df) |
| 37 | +} |
| 38 | +
|
| 39 | +al.gci <- rbind ( |
| 40 | + read.al("stateless/al_gci_java_1.csv") |
| 41 | +) |
| 42 | +
|
| 43 | +al.nogci <- rbind ( |
| 44 | + read.al("stateless/al_nogci_java_1.csv") |
| 45 | +) |
| 46 | +
|
| 47 | +al.cmp <- rbind( |
| 48 | + data.frame("latency"=al.nogci$latency, Type="GCI OFF"), |
| 49 | + data.frame("latency"=al.gci$latency, Type="GCI ON") |
| 50 | +) |
| 51 | +``` |
| 52 | + |
| 53 | +```{r, fig.align="center"} |
| 54 | +gci.p99 <- quantile(al.gci$latency, 0.99) |
| 55 | +nogci.p99 <- quantile(al.nogci$latency, 0.99) |
| 56 | +gci.p999 <- quantile(al.gci$latency, 0.999) |
| 57 | +nogci.p999 <- quantile(al.nogci$latency, 0.999) |
| 58 | +
|
| 59 | +ggplot(al.cmp, aes(latency, color=Type)) + |
| 60 | + stat_ecdf(size=0.8) + |
| 61 | + # P999 |
| 62 | + annotate(geom="text", x=nogci.p999-0.5, y=0.9906, label="99.999th", angle=90, color="red") + |
| 63 | + geom_vline(xintercept=nogci.p999, linetype="dotted", size=0.8, alpha=0.5, color="red") + |
| 64 | + annotate(geom="text", x=gci.p999+0.5, y=0.9906, label="99.999th", angle=90, color="blue") + |
| 65 | + geom_vline(xintercept=gci.p999, linetype="dotted", size=0.8, alpha=0.5, color="blue") + |
| 66 | + |
| 67 | + |
| 68 | + # P99 |
| 69 | + annotate(geom="text", x=nogci.p99-0.5, y=0.9902, label="99th", angle=90, col="red") + |
| 70 | + geom_vline(xintercept=nogci.p99, linetype="dotted", size=0.8, alpha=0.5, col="red") + |
| 71 | + annotate(geom="text", x=gci.p99+0.5, y=0.9902, label="99th", angle=90, color="blue") + |
| 72 | + geom_vline(xintercept=gci.p99, linetype="dotted", size=0.8, alpha=0.5, color="blue") + |
| 73 | +
|
| 74 | + scale_x_continuous(breaks=seq(0, max(al.cmp$latency), 2)) + |
| 75 | + coord_cartesian(ylim = c(0.99, 1)) + |
| 76 | + theme(legend.position="top") + |
| 77 | + scale_color_manual(breaks = c("GCI OFF", "GCI ON"), values=c("red", "blue")) + |
| 78 | + theme_bw() + |
| 79 | + xlab("Latency(ms)") + |
| 80 | + ylab("ECDF at Tail") |
| 81 | +#ggsave("stateless/ecdf_tail.png") |
| 82 | +``` |
| 83 | + |
| 84 | +<!-- # Unavailability --> |
| 85 | + |
| 86 | +<!-- ```{r} --> |
| 87 | +<!-- read.pauses <- function(f) { --> |
| 88 | +<!-- return(read.csv(f,col.names = c("ts", "gen", "pause"))) --> |
| 89 | +<!-- } --> |
| 90 | + |
| 91 | +<!-- pause.gci <- rbind ( --> |
| 92 | +<!-- read.pauses("stateless/proxy_gci_go_1_10.11.4.231.out"), --> |
| 93 | +<!-- read.pauses("stateless/proxy_gci_go_1_10.11.4.251.out"), --> |
| 94 | +<!-- read.pauses("stateless/proxy_gci_go_1_10.11.5.1.out"), --> |
| 95 | +<!-- read.pauses("stateless/proxy_gci_go_1_10.11.5.24.out") --> |
| 96 | +<!-- ) --> |
| 97 | + |
| 98 | +<!-- pause.cmp <- rbind( --> |
| 99 | +<!-- data.frame(pause=pause.gci$pause, Type="GCI On") --> |
| 100 | +<!-- ) --> |
| 101 | +<!-- ``` --> |
| 102 | +<!-- ```{r, fig.align="center"} --> |
| 103 | +<!-- ggplot(pause.cmp, aes(Type, pause)) + --> |
| 104 | +<!-- geom_boxplot() + --> |
| 105 | +<!-- scale_y_continuous(breaks=seq(0,max(pause.cmp$pause), 10)) + --> |
| 106 | +<!-- ylab("Unavailability (ms)") + --> |
| 107 | +<!-- theme_bw() + --> |
| 108 | +<!-- theme(axis.title.x=element_blank()) --> |
| 109 | +<!-- ``` --> |
| 110 | + |
| 111 | +<!-- # Failures --> |
| 112 | + |
| 113 | +<!-- ```{r, echo=T} --> |
| 114 | +<!-- NROW(filter(al.gci, status == 503)) --> |
| 115 | +<!-- ``` --> |
0 commit comments