*: print latencies

This commit is contained in:
Gyu-Ho Lee 2016-05-14 14:34:42 -07:00
parent da642dc2f3
commit 8f92c0b041
9 changed files with 594 additions and 0 deletions

View File

@ -19,6 +19,7 @@ We keep full logs here and cloud storage(when it's over 1MB):
Test results:
- Write 2M keys, 1000-client (100-conn), 8-byte key, 256-byte value (Zookeeper v3.4.8, etcd v2, v3, Consul v0.6.4): [2016051401](https://github.com/coreos/dbtester/tree/master/bench-results/2016051401/README.md)
- Snappy compression experiment (etcd v3, 1.3MB text value READ): [2016051001](https://github.com/coreos/dbtester/tree/master/bench-results/2016051001/README.md)
- Snappy compression experiment (etcd v3, 0.3MB text value READ): [2016050901](https://github.com/coreos/dbtester/tree/master/bench-results/2016050901/README.md)
- Write 2M keys, 1000-client, 1000-conn, 8-byte same key, 256-byte value (Zookeeper v3.4.8): [2016050504](https://github.com/coreos/dbtester/tree/master/bench-results/2016050504/README.md)

View File

@ -0,0 +1,43 @@
database: consul
test_name: 01-consul
google_cloud_project_name: etcd-development
google_cloud_storage_key_path: /home/gyuho/gcloud-key.json
google_cloud_storage_bucket_name: dbtester-results
google_cloud_storage_sub_directory: 2016051401
peer_ips:
- 10.240.0.17
- 10.240.0.18
- 10.240.0.19
agent_port: 3500
database_port: 8500
etcd_compression: ""
# start database by sending RPC calls to agents
step1:
skip: false
zookeeper_max_client_connections: 5000
zookeeper_snap_count: 100000
# start benchmark
step2:
skip: false
bench_type: write
local_read: true
result_path: timeseries.csv
connections: 1000
clients: 1000
key_size: 8
value_size: 256
value_testdata_path: ""
total_requests: 2000000
request_interval_ms: 0
etcdv3_compaction_cycle: 0
# after benchmark
step3:
skip: false
result_path: result.log

View File

@ -0,0 +1,43 @@
database: etcdv2
test_name: 01-etcdv2-go1.4
google_cloud_project_name: etcd-development
google_cloud_storage_key_path: /home/gyuho/gcloud-key.json
google_cloud_storage_bucket_name: dbtester-results
google_cloud_storage_sub_directory: 2016051401
peer_ips:
- 10.240.0.21
- 10.240.0.22
- 10.240.0.23
agent_port: 3500
database_port: 2379
etcd_compression: ""
# start database by sending RPC calls to agents
step1:
skip: false
zookeeper_max_client_connections: 5000
zookeeper_snap_count: 100000
# start benchmark
step2:
skip: false
bench_type: write
local_read: true
result_path: timeseries.csv
connections: 1000
clients: 1000
key_size: 8
value_size: 256
value_testdata_path: ""
total_requests: 2000000
request_interval_ms: 0
etcdv3_compaction_cycle: 0
# after benchmark
step3:
skip: false
result_path: result.log

View File

@ -0,0 +1,43 @@
database: etcdv3
test_name: 01-etcdv3-go1.5
google_cloud_project_name: etcd-development
google_cloud_storage_key_path: /home/gyuho/gcloud-key.json
google_cloud_storage_bucket_name: dbtester-results
google_cloud_storage_sub_directory: 2016051401
peer_ips:
- 10.240.0.17
- 10.240.0.18
- 10.240.0.19
agent_port: 3500
database_port: 2379
etcd_compression: ""
# start database by sending RPC calls to agents
step1:
skip: false
zookeeper_max_client_connections: 5000
zookeeper_snap_count: 100000
# start benchmark
step2:
skip: false
bench_type: write
local_read: true
result_path: timeseries.csv
connections: 100
clients: 1000
key_size: 8
value_size: 256
value_testdata_path: ""
total_requests: 2000000
request_interval_ms: 0
etcdv3_compaction_cycle: 0
# after benchmark
step3:
skip: false
result_path: result.log

View File

@ -0,0 +1,43 @@
database: etcdv3
test_name: 01-etcdv3-go1.6
google_cloud_project_name: etcd-development
google_cloud_storage_key_path: /home/gyuho/gcloud-key.json
google_cloud_storage_bucket_name: dbtester-results
google_cloud_storage_sub_directory: 2016051401
peer_ips:
- 10.240.0.17
- 10.240.0.18
- 10.240.0.19
agent_port: 3500
database_port: 2379
etcd_compression: ""
# start database by sending RPC calls to agents
step1:
skip: false
zookeeper_max_client_connections: 5000
zookeeper_snap_count: 100000
# start benchmark
step2:
skip: false
bench_type: write
local_read: true
result_path: timeseries.csv
connections: 100
clients: 1000
key_size: 8
value_size: 256
value_testdata_path: ""
total_requests: 2000000
request_interval_ms: 0
etcdv3_compaction_cycle: 0
# after benchmark
step3:
skip: false
result_path: result.log

View File

@ -0,0 +1,43 @@
database: etcdv3
test_name: 01-etcdv3-gotip
google_cloud_project_name: etcd-development
google_cloud_storage_key_path: /home/gyuho/gcloud-key.json
google_cloud_storage_bucket_name: dbtester-results
google_cloud_storage_sub_directory: 2016051401
peer_ips:
- 10.240.0.17
- 10.240.0.18
- 10.240.0.19
agent_port: 3500
database_port: 2379
etcd_compression: ""
# start database by sending RPC calls to agents
step1:
skip: false
zookeeper_max_client_connections: 5000
zookeeper_snap_count: 100000
# start benchmark
step2:
skip: false
bench_type: read
local_read: true
result_path: timeseries.csv
connections: 100
clients: 1000
key_size: 8
value_size: 256
value_testdata_path: ""
total_requests: 2000000
request_interval_ms: 0
etcdv3_compaction_cycle: 0
# after benchmark
step3:
skip: false
result_path: result.log

View File

@ -0,0 +1,43 @@
database: zk
test_name: 01-zk
google_cloud_project_name: etcd-development
google_cloud_storage_key_path: /home/gyuho/gcloud-key.json
google_cloud_storage_bucket_name: dbtester-results
google_cloud_storage_sub_directory: 2016051401
peer_ips:
- 10.240.0.17
- 10.240.0.18
- 10.240.0.19
agent_port: 3500
database_port: 2181
etcd_compression: ""
# start database by sending RPC calls to agents
step1:
skip: false
zookeeper_max_client_connections: 5000
zookeeper_snap_count: 100000
# start benchmark
step2:
skip: false
bench_type: read
local_read: true
result_path: timeseries.csv
connections: 1000
clients: 1000
key_size: 8
value_size: 256
value_testdata_path: ""
total_requests: 2000000
request_interval_ms: 0
etcdv3_compaction_cycle: 0
# after benchmark
step3:
skip: false
result_path: result.log

View File

@ -0,0 +1,331 @@
titles:
- Write 2M keys, 1000-client (etcd v3 100-conn), 8-byte key, 256-byte value
- Write 2M keys, 1000-client (etcd v3 100-conn), 8-byte key, 256-byte value
- Write 2M keys, 1000-client (etcd v3 100-conn), 8-byte key, 256-byte value
step1:
- data_path_list:
- 2016051401/01-zk-1-monitor.csv
- 2016051401/01-zk-2-monitor.csv
- 2016051401/01-zk-3-monitor.csv
data_benchmark_path: 2016051401/01-zk-timeseries.csv
output_path: 2016051401/01-zk-aggregated.csv
- data_path_list:
- 2016051401/01-etcdv3-gotip-1-monitor.csv
- 2016051401/01-etcdv3-gotip-2-monitor.csv
- 2016051401/01-etcdv3-gotip-3-monitor.csv
data_benchmark_path: 2016051401/01-etcdv3-gotip-timeseries.csv
output_path: 2016051401/01-etcdv3-gotip-aggregated.csv
- data_path_list:
- 2016051401/01-etcdv3-go1.6-1-monitor.csv
- 2016051401/01-etcdv3-go1.6-2-monitor.csv
- 2016051401/01-etcdv3-go1.6-3-monitor.csv
data_benchmark_path: 2016051401/01-etcdv3-go1.6-timeseries.csv
output_path: 2016051401/01-etcdv3-go1.6-aggregated.csv
- data_path_list:
- 2016051401/01-etcdv3-go1.5-1-monitor.csv
- 2016051401/01-etcdv3-go1.5-2-monitor.csv
- 2016051401/01-etcdv3-go1.5-3-monitor.csv
data_benchmark_path: 2016051401/01-etcdv3-go1.5-timeseries.csv
output_path: 2016051401/01-etcdv3-go1.5-aggregated.csv
- data_path_list:
- 2016051401/01-etcdv2_go1.4-1-monitor.csv
- 2016051401/01-etcdv2_go1.4-2-monitor.csv
- 2016051401/01-etcdv2_go1.4-3-monitor.csv
data_benchmark_path: 2016051401/01-etcdv2_go1.4-timeseries.csv
output_path: 2016051401/01-etcdv2_go1.4-aggregated.csv
- data_path_list:
- 2016051401/01-consul-1-monitor.csv
- 2016051401/01-consul-2-monitor.csv
- 2016051401/01-consul-3-monitor.csv
data_benchmark_path: 2016051401/01-consul-timeseries.csv
output_path: 2016051401/01-consul-aggregated.csv
step2:
- data_list:
- path: 2016051401/01-zk-aggregated.csv
name: zookeeper_v3.4.8
- path: 2016051401/01-etcdv3-gotip-aggregated.csv
name: etcdv3_gotip
- path: 2016051401/01-etcdv3-go1.6-aggregated.csv
name: etcdv3_go1.6
- path: 2016051401/01-etcdv3-go1.5-aggregated.csv
name: etcdv3_go1.5
- path: 2016051401/01-etcdv2-go1.4-aggregated.csv
name: etcdv2_go1.4
- path: 2016051401/01-consul-aggregated.csv
name: consul_v0.6.4
output_path: 2016051401/01-all-aggregated.csv
- data_list:
- path: 2016051401/01-zk-aggregated.csv
name: zookeeper_v3.4.8
- path: 2016051401/01-etcdv3-gotip-aggregated.csv
name: etcdv3_gotip
- path: 2016051401/01-etcdv2-go1.4-aggregated.csv
name: etcdv2_go1.4
output_path: 2016051401/02-zk-vs-etcd-aggregated.csv
- data_list:
- path: 2016051401/01-etcdv3-gotip-aggregated.csv
name: etcdv3_gotip
- path: 2016051401/01-etcdv3-go1.6-aggregated.csv
name: etcdv3_go1.6
- path: 2016051401/01-etcdv3-go1.5-aggregated.csv
name: etcdv3_go1.5
output_path: 2016051401/03-etcd-go-aggregated.csv
step3:
- data_path: 2016051401/01-all-aggregated.csv
plot_list:
- lines:
- column: avg_latency_ms_zookeeper_v3.4.8
legend: Zookeeper v3.4.8
- column: avg_latency_ms_etcdv3_gotip
legend: etcd v3 (Go Tip)
- column: avg_latency_ms_etcdv3_go1.6
legend: etcd v3 (Go 1.6)
- column: avg_latency_ms_etcdv3_go1.5
legend: etcd v3 (Go 1.5)
- column: avg_latency_ms_etcdv2_go1.4
legend: etcd v2 (Go 1.4)
- column: avg_latency_ms_consul_v0.6.4
legend: Consul v0.6.4
x_axis: Second
y_axis: Latency(millisecond)
output_path_list:
- 2016051401/01-avg-latency-ms.svg
- 2016051401/01-avg-latency-ms.png
- lines:
- column: throughput_zookeeper_v3.4.8
legend: Zookeeper v3.4.8
- column: throughput_etcdv3_gotip
legend: etcd v3 (Go Tip)
- column: throughput_etcdv3_go1.6
legend: etcd v3 (Go 1.6)
- column: throughput_etcdv3_go1.5
legend: etcd v3 (Go 1.5)
- column: throughput_etcdv2_go1.4
legend: etcd v2 (Go 1.4)
- column: throughput_consul_v0.6.4
legend: Consul v0.6.4
x_axis: Second
y_axis: Throughput
output_path_list:
- 2016051401/01-throughput.svg
- 2016051401/01-throughput.png
- lines:
- column: avg_cpu_zookeeper_v3.4.8
legend: Zookeeper v3.4.8
- column: avg_cpu_etcdv3_gotip
legend: etcd v3 (Go Tip)
- column: avg_cpu_etcdv3_go1.6
legend: etcd v3 (Go 1.6)
- column: avg_cpu_etcdv3_go1.5
legend: etcd v3 (Go 1.5)
- column: avg_cpu_etcdv2_go1.4
legend: etcd v2 (Go 1.4)
- column: avg_cpu_consul_v0.6.4
legend: Consul v0.6.4
x_axis: Second
y_axis: CPU
output_path_list:
- 2016051401/01-avg-cpu.svg
- 2016051401/01-avg-cpu.png
- lines:
- column: avg_memory_mb_zookeeper_v3.4.8
legend: Zookeeper v3.4.8
- column: avg_memory_mb_etcdv3_gotip
legend: etcd v3 (Go Tip)
- column: avg_memory_mb_etcdv3_go1.6
legend: etcd v3 (Go 1.6)
- column: avg_memory_mb_etcdv3_go1.5
legend: etcd v3 (Go 1.5)
- column: avg_memory_mb_etcdv2_go1.4
legend: etcd v2 (Go 1.4)
- column: avg_memory_mb_consul_v0.6.4
legend: Consul v0.6.4
x_axis: Second
y_axis: Memory(MB)
output_path_list:
- 2016051401/01-avg-memory.svg
- 2016051401/01-avg-memory.png
- data_path: 2016051401/02-zk-vs-etcd-aggregated.csv
plot_list:
- lines:
- column: avg_latency_ms_zookeeper_v3.4.8
legend: Zookeeper v3.4.8
- column: avg_latency_ms_etcdv3_gotip
legend: etcd v3 (Go Tip)
- column: avg_latency_ms_etcdv2_go1.4
legend: etcd v2 (Go 1.4)
x_axis: Second
y_axis: Latency(millisecond)
output_path_list:
- 2016051401/02-avg-latency-ms.svg
- 2016051401/02-avg-latency-ms.png
- lines:
- column: throughput_zookeeper_v3.4.8
legend: Zookeeper v3.4.8
- column: throughput_etcdv3_gotip
legend: etcd v3 (Go Tip)
- column: throughput_etcdv2_go1.4
legend: etcd v2 (Go 1.4)
x_axis: Second
y_axis: Throughput
output_path_list:
- 2016051401/02-throughput.svg
- 2016051401/02-throughput.png
- lines:
- column: avg_cpu_zookeeper_v3.4.8
legend: Zookeeper v3.4.8
- column: avg_cpu_etcdv3_gotip
legend: etcd v3 (Go Tip)
- column: avg_cpu_etcdv2_go1.4
legend: etcd v2 (Go 1.4)
x_axis: Second
y_axis: CPU
output_path_list:
- 2016051401/02-avg-cpu.svg
- 2016051401/02-avg-cpu.png
- lines:
- column: avg_memory_mb_zookeeper_v3.4.8
legend: Zookeeper v3.4.8
- column: avg_memory_mb_etcdv3_gotip
legend: etcd v3 (Go Tip)
- column: avg_memory_mb_etcdv2_go1.4
legend: etcd v2 (Go 1.4)
x_axis: Second
y_axis: Memory(MB)
output_path_list:
- 2016051401/02-avg-memory.svg
- 2016051401/02-avg-memory.png
- data_path: 2016051401/03-etcd-go-aggregated.csv
plot_list:
- lines:
- column: avg_latency_ms_etcdv3_gotip
legend: etcd v3 (Go Tip)
- column: avg_latency_ms_etcdv3_go1.6
legend: etcd v3 (Go 1.6)
- column: avg_latency_ms_etcdv3_go1.5
legend: etcd v3 (Go 1.5)
x_axis: Second
y_axis: Latency(millisecond)
output_path_list:
- 2016051401/03-avg-latency-ms.svg
- 2016051401/03-avg-latency-ms.png
- lines:
- column: throughput_etcdv3_gotip
legend: etcd v3 (Go Tip)
- column: throughput_etcdv3_go1.6
legend: etcd v3 (Go 1.6)
- column: throughput_etcdv3_go1.5
legend: etcd v3 (Go 1.5)
x_axis: Second
y_axis: Throughput
output_path_list:
- 2016051401/03-throughput.svg
- 2016051401/03-throughput.png
- lines:
- column: avg_cpu_etcdv3_gotip
legend: etcd v3 (Go Tip)
- column: avg_cpu_etcdv3_go1.6
legend: etcd v3 (Go 1.6)
- column: avg_cpu_etcdv3_go1.5
legend: etcd v3 (Go 1.5)
x_axis: Second
y_axis: CPU
output_path_list:
- 2016051401/03-avg-cpu.svg
- 2016051401/03-avg-cpu.png
- lines:
- column: avg_memory_mb_etcdv3_gotip
legend: etcd v3 (Go Tip)
- column: avg_memory_mb_etcdv3_go1.6
legend: etcd v3 (Go 1.6)
- column: avg_memory_mb_etcdv3_go1.5
legend: etcd v3 (Go 1.5)
x_axis: Second
y_axis: Memory(MB)
output_path_list:
- 2016051401/03-avg-memory.svg
- 2016051401/03-avg-memory.png
step4:
preface: |
- Google Cloud Compute Engine
- 8 vCPUs + 16GB Memory + 50GB SSD
- 1 machine(client) of 16 vCPUs + 30GB Memory + 50GB SSD
- Ubuntu 15.10
- Zookeepr v3.4.8
- Java 8
- Java(TM) SE Runtime Environment (build 1.8.0_74-b02)
- Java HotSpot(TM) 64-Bit Server VM (build 25.74-b02, mixed mode)
- etcd v3 (Go Tip, 1.6, 1.5)
- etcd v2.0.0 (Go 1.4)
- Consul v0.6.4
results:
- images:
- image_title: 2016051401/01-avg-latency-ms
image_path: https://storage.googleapis.com/dbtester-results/2016051401/01-avg-latency-ms.svg
image_type: remote
- image_title: 2016051401/01-throughput
image_path: https://storage.googleapis.com/dbtester-results/2016051401/01-throughput.svg
image_type: remote
- image_title: 2016051401/01-avg-cpu
image_path: https://storage.googleapis.com/dbtester-results/2016051401/01-avg-cpu.svg
image_type: remote
- image_title: 2016051401/01-avg-memory
image_path: https://storage.googleapis.com/dbtester-results/2016051401/01-avg-memory.svg
image_type: remote
- images:
- image_title: 2016051401/02-avg-latency-ms
image_path: https://storage.googleapis.com/dbtester-results/2016051401/02-avg-latency-ms.svg
image_type: remote
- image_title: 2016051401/02-throughput
image_path: https://storage.googleapis.com/dbtester-results/2016051401/02-throughput.svg
image_type: remote
- image_title: 2016051401/02-avg-cpu
image_path: https://storage.googleapis.com/dbtester-results/2016051401/02-avg-cpu.svg
image_type: remote
- image_title: 2016051401/02-avg-memory
image_path: https://storage.googleapis.com/dbtester-results/2016051401/02-avg-memory.svg
image_type: remote
- images:
- image_title: 2016051401/03-avg-latency-ms
image_path: https://storage.googleapis.com/dbtester-results/2016051401/03-avg-latency-ms.svg
image_type: remote
- image_title: 2016051401/03-throughput
image_path: https://storage.googleapis.com/dbtester-results/2016051401/03-throughput.svg
image_type: remote
- image_title: 2016051401/03-avg-cpu
image_path: https://storage.googleapis.com/dbtester-results/2016051401/03-avg-cpu.svg
image_type: remote
- image_title: 2016051401/03-avg-memory
image_path: https://storage.googleapis.com/dbtester-results/2016051401/03-avg-memory.svg
image_type: remote
output_path: 2016051401/README.md

View File

@ -125,6 +125,10 @@ func (r *report) print() {
// Prints percentile latencies.
func (r *report) printLatencies() {
fmt.Printf("\n\nAll latencies (in Seconds):\n")
fmt.Println(strings.Join(r.lats, "\n"))
fmt.Printf("\nDone\n")
pctls := []int{10, 25, 50, 75, 90, 95, 99}
data := make([]float64, len(pctls))
j := 0