mirror of https://github.com/etcd-io/dbtester.git
*: add same key option
This commit is contained in:
parent
487c32888e
commit
3150f6ccb5
|
|
@ -25,48 +25,48 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "github.com/coreos/etcd/auth/authpb",
|
"ImportPath": "github.com/coreos/etcd/auth/authpb",
|
||||||
"Comment": "v2.3.0-664-gb776153",
|
"Comment": "v2.3.0-672-g61add11",
|
||||||
"Rev": "b7761530e1d5b9f404811d63786df60023a88db9"
|
"Rev": "61add11b05ed7e510ec62bca8d6216ddeb6ee979"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "github.com/coreos/etcd/client",
|
"ImportPath": "github.com/coreos/etcd/client",
|
||||||
"Comment": "v2.3.0-664-gb776153",
|
"Comment": "v2.3.0-672-g61add11",
|
||||||
"Rev": "b7761530e1d5b9f404811d63786df60023a88db9"
|
"Rev": "61add11b05ed7e510ec62bca8d6216ddeb6ee979"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "github.com/coreos/etcd/clientv3",
|
"ImportPath": "github.com/coreos/etcd/clientv3",
|
||||||
"Comment": "v2.3.0-664-gb776153",
|
"Comment": "v2.3.0-672-g61add11",
|
||||||
"Rev": "b7761530e1d5b9f404811d63786df60023a88db9"
|
"Rev": "61add11b05ed7e510ec62bca8d6216ddeb6ee979"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "github.com/coreos/etcd/etcdserver/api/v3rpc/rpctypes",
|
"ImportPath": "github.com/coreos/etcd/etcdserver/api/v3rpc/rpctypes",
|
||||||
"Comment": "v2.3.0-664-gb776153",
|
"Comment": "v2.3.0-672-g61add11",
|
||||||
"Rev": "b7761530e1d5b9f404811d63786df60023a88db9"
|
"Rev": "61add11b05ed7e510ec62bca8d6216ddeb6ee979"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "github.com/coreos/etcd/etcdserver/etcdserverpb",
|
"ImportPath": "github.com/coreos/etcd/etcdserver/etcdserverpb",
|
||||||
"Comment": "v2.3.0-664-gb776153",
|
"Comment": "v2.3.0-672-g61add11",
|
||||||
"Rev": "b7761530e1d5b9f404811d63786df60023a88db9"
|
"Rev": "61add11b05ed7e510ec62bca8d6216ddeb6ee979"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "github.com/coreos/etcd/mvcc/mvccpb",
|
"ImportPath": "github.com/coreos/etcd/mvcc/mvccpb",
|
||||||
"Comment": "v2.3.0-664-gb776153",
|
"Comment": "v2.3.0-672-g61add11",
|
||||||
"Rev": "b7761530e1d5b9f404811d63786df60023a88db9"
|
"Rev": "61add11b05ed7e510ec62bca8d6216ddeb6ee979"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "github.com/coreos/etcd/pkg/pathutil",
|
"ImportPath": "github.com/coreos/etcd/pkg/pathutil",
|
||||||
"Comment": "v2.3.0-664-gb776153",
|
"Comment": "v2.3.0-672-g61add11",
|
||||||
"Rev": "b7761530e1d5b9f404811d63786df60023a88db9"
|
"Rev": "61add11b05ed7e510ec62bca8d6216ddeb6ee979"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "github.com/coreos/etcd/pkg/tlsutil",
|
"ImportPath": "github.com/coreos/etcd/pkg/tlsutil",
|
||||||
"Comment": "v2.3.0-664-gb776153",
|
"Comment": "v2.3.0-672-g61add11",
|
||||||
"Rev": "b7761530e1d5b9f404811d63786df60023a88db9"
|
"Rev": "61add11b05ed7e510ec62bca8d6216ddeb6ee979"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "github.com/coreos/etcd/pkg/types",
|
"ImportPath": "github.com/coreos/etcd/pkg/types",
|
||||||
"Comment": "v2.3.0-664-gb776153",
|
"Comment": "v2.3.0-672-g61add11",
|
||||||
"Rev": "b7761530e1d5b9f404811d63786df60023a88db9"
|
"Rev": "61add11b05ed7e510ec62bca8d6216ddeb6ee979"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "github.com/cpuguy83/go-md2man/md2man",
|
"ImportPath": "github.com/cpuguy83/go-md2man/md2man",
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@ We keep full logs here and cloud storage(when it's over 1MB):
|
||||||
|
|
||||||
Test results:
|
Test results:
|
||||||
|
|
||||||
|
- https://github.com/coreos/dbtester/tree/master/bench-results/2016050501/README.md
|
||||||
- https://github.com/coreos/dbtester/tree/master/bench-results/2016050301/README.md
|
- https://github.com/coreos/dbtester/tree/master/bench-results/2016050301/README.md
|
||||||
- https://github.com/coreos/dbtester/tree/master/bench-results/2016050101/README.md
|
- https://github.com/coreos/dbtester/tree/master/bench-results/2016050101/README.md
|
||||||
- https://github.com/coreos/dbtester/tree/master/bench-results/2016043002/README.md
|
- https://github.com/coreos/dbtester/tree/master/bench-results/2016043002/README.md
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,83 @@
|
||||||
|
|
||||||
|
titles:
|
||||||
|
- Write 600K keys, 1000-client, 1000-conn, 8-byte key, 256-byte value (etcd v2)
|
||||||
|
|
||||||
|
step1:
|
||||||
|
- data_path_list:
|
||||||
|
- 2016050501/01-etcdv2-1-monitor.csv
|
||||||
|
- 2016050501/01-etcdv2-2-monitor.csv
|
||||||
|
- 2016050501/01-etcdv2-3-monitor.csv
|
||||||
|
data_benchmark_path: 2016050501/01-etcdv2-timeseries.csv
|
||||||
|
output_path: 2016050501/01-etcdv2-aggregated.csv
|
||||||
|
|
||||||
|
step2:
|
||||||
|
- data_list:
|
||||||
|
- path: 2016050501/01-etcdv2-aggregated.csv
|
||||||
|
name: etcd_v2
|
||||||
|
output_path: 2016050501/01-all-aggregated.csv
|
||||||
|
|
||||||
|
step3:
|
||||||
|
- data_path: 2016050501/01-all-aggregated.csv
|
||||||
|
|
||||||
|
plot_list:
|
||||||
|
- lines:
|
||||||
|
- column: avg_latency_ms_etcd_v2
|
||||||
|
legend: etcd v2
|
||||||
|
x_axis: Second
|
||||||
|
y_axis: Latency(millisecond)
|
||||||
|
output_path_list:
|
||||||
|
- 2016050501/01-avg-latency-ms.svg
|
||||||
|
- 2016050501/01-avg-latency-ms.png
|
||||||
|
|
||||||
|
- lines:
|
||||||
|
- column: throughput_etcd_v2
|
||||||
|
legend: etcd v2
|
||||||
|
x_axis: Second
|
||||||
|
y_axis: Throughput
|
||||||
|
output_path_list:
|
||||||
|
- 2016050501/01-throughput.svg
|
||||||
|
- 2016050501/01-throughput.png
|
||||||
|
|
||||||
|
- lines:
|
||||||
|
- column: avg_cpu_etcd_v2
|
||||||
|
legend: etcd v2
|
||||||
|
x_axis: Second
|
||||||
|
y_axis: CPU
|
||||||
|
output_path_list:
|
||||||
|
- 2016050501/01-avg-cpu.svg
|
||||||
|
- 2016050501/01-avg-cpu.png
|
||||||
|
|
||||||
|
- lines:
|
||||||
|
- column: avg_memory_mb_etcd_v2
|
||||||
|
legend: etcd v2
|
||||||
|
x_axis: Second
|
||||||
|
y_axis: Memory(MB)
|
||||||
|
output_path_list:
|
||||||
|
- 2016050501/01-avg-memory.svg
|
||||||
|
- 2016050501/01-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
|
||||||
|
- Go master branch on 2016-05-03
|
||||||
|
- etcd v2
|
||||||
|
|
||||||
|
results:
|
||||||
|
- images:
|
||||||
|
- image_title: 2016050501/01-avg-latency-ms
|
||||||
|
image_path: https://storage.googleapis.com/dbtester-results/2016050501/01-avg-latency-ms.svg
|
||||||
|
image_type: remote
|
||||||
|
- image_title: 2016050501/01-throughput
|
||||||
|
image_path: https://storage.googleapis.com/dbtester-results/2016050501/01-throughput.svg
|
||||||
|
image_type: remote
|
||||||
|
- image_title: 2016050501/01-avg-cpu
|
||||||
|
image_path: https://storage.googleapis.com/dbtester-results/2016050501/01-avg-cpu.svg
|
||||||
|
image_type: remote
|
||||||
|
- image_title: 2016050501/01-avg-memory
|
||||||
|
image_path: https://storage.googleapis.com/dbtester-results/2016050501/01-avg-memory.svg
|
||||||
|
image_type: remote
|
||||||
|
|
||||||
|
output_path: 2016050501/README.md
|
||||||
|
|
@ -0,0 +1,44 @@
|
||||||
|
database: etcdv2
|
||||||
|
test_name: 01-etcdv2
|
||||||
|
|
||||||
|
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: 2016050501
|
||||||
|
|
||||||
|
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: 1000
|
||||||
|
clients: 1000
|
||||||
|
key_size: 8
|
||||||
|
same_key: true
|
||||||
|
value_size: 256
|
||||||
|
# value_testdata_path: /home/gyuho/testdata
|
||||||
|
total_requests: 600000
|
||||||
|
request_interval_ms: 0
|
||||||
|
etcdv3_compaction_cycle: 0
|
||||||
|
|
||||||
|
# after benchmark
|
||||||
|
step3:
|
||||||
|
skip: false
|
||||||
|
result_path: result.log
|
||||||
|
|
@ -55,6 +55,7 @@ type Config struct {
|
||||||
Connections int `yaml:"connections"`
|
Connections int `yaml:"connections"`
|
||||||
Clients int `yaml:"clients"`
|
Clients int `yaml:"clients"`
|
||||||
KeySize int `yaml:"key_size"`
|
KeySize int `yaml:"key_size"`
|
||||||
|
SameKey bool `yaml:"same_key"`
|
||||||
ValueSize int `yaml:"value_size"`
|
ValueSize int `yaml:"value_size"`
|
||||||
ValueTestDataPath string `yaml:"value_testdata_path"`
|
ValueTestDataPath string `yaml:"value_testdata_path"`
|
||||||
TotalRequests int `yaml:"total_requests"`
|
TotalRequests int `yaml:"total_requests"`
|
||||||
|
|
|
||||||
|
|
@ -72,6 +72,12 @@ func TestReadConfig(t *testing.T) {
|
||||||
if c.Step2.ResultPath != "timeseries.csv" {
|
if c.Step2.ResultPath != "timeseries.csv" {
|
||||||
t.Fatalf("unexpected %s", c.Step2.ResultPath)
|
t.Fatalf("unexpected %s", c.Step2.ResultPath)
|
||||||
}
|
}
|
||||||
|
if c.Step2.KeySize != 8 {
|
||||||
|
t.Fatalf("unexpected %d", c.Step2.KeySize)
|
||||||
|
}
|
||||||
|
if !c.Step2.SameKey {
|
||||||
|
t.Fatalf("unexpected %v", c.Step2.SameKey)
|
||||||
|
}
|
||||||
if c.Step2.ValueTestDataPath != "/home/gyuho/testdata" {
|
if c.Step2.ValueTestDataPath != "/home/gyuho/testdata" {
|
||||||
t.Fatalf("unexpected %s", c.Step2.ValueTestDataPath)
|
t.Fatalf("unexpected %s", c.Step2.ValueTestDataPath)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -291,6 +291,9 @@ func step2(cfg Config) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
k := sequentialKey(cfg.Step2.KeySize, i)
|
k := sequentialKey(cfg.Step2.KeySize, i)
|
||||||
|
if cfg.Step2.SameKey {
|
||||||
|
k = sameKey(cfg.Step2.KeySize)
|
||||||
|
}
|
||||||
if cfg.Step2.ValueTestDataPath != "" {
|
if cfg.Step2.ValueTestDataPath != "" {
|
||||||
v = valuesBytes[i%valueSampleSize]
|
v = valuesBytes[i%valueSampleSize]
|
||||||
vs = valuesString[i%valueSampleSize]
|
vs = valuesString[i%valueSampleSize]
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,8 @@ step2:
|
||||||
result_path: timeseries.csv
|
result_path: timeseries.csv
|
||||||
connections: 100
|
connections: 100
|
||||||
clients: 100
|
clients: 100
|
||||||
key_size: 64
|
key_size: 8
|
||||||
|
same_key: true
|
||||||
value_size: 256
|
value_size: 256
|
||||||
value_testdata_path: /home/gyuho/testdata # overwrites value_size
|
value_testdata_path: /home/gyuho/testdata # overwrites value_size
|
||||||
total_requests: 3000000
|
total_requests: 3000000
|
||||||
|
|
|
||||||
|
|
@ -496,6 +496,10 @@ func sequentialKey(size, num int) string {
|
||||||
return strings.Repeat("0", delta) + txt
|
return strings.Repeat("0", delta) + txt
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func sameKey(size int) string {
|
||||||
|
return strings.Repeat("a", size)
|
||||||
|
}
|
||||||
|
|
||||||
func walk(targetDir string) (map[string]os.FileInfo, error) {
|
func walk(targetDir string) (map[string]os.FileInfo, error) {
|
||||||
rm := make(map[string]os.FileInfo)
|
rm := make(map[string]os.FileInfo)
|
||||||
visit := func(path string, f os.FileInfo, err error) error {
|
visit := func(path string, f os.FileInfo, err error) error {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue