Skip to content

Commit e37c068

Browse files
sudosalimLagher0
authored andcommitted
Add nvme storage support
Tests and cluster configurations Change-Id: Ib18036d014e149498587cfd6c4d055fb8aa9333f Reviewed-on: https://review.couchbase.org/c/perfrunner/+/189423 Tested-by: Build Bot <[email protected]> Reviewed-by: Daniel Nagy <[email protected]>
1 parent 0d92599 commit e37c068

12 files changed

+601
-0
lines changed
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
[infrastructure]
2+
provider = aws
3+
type = ec2
4+
5+
[clusters]
6+
couchbase1 =
7+
ec2.ec2_cluster_1.ec2_node_group_1.1:kv,n1ql,index
8+
ec2.ec2_cluster_1.ec2_node_group_1.2:kv,n1ql,index
9+
ec2.ec2_cluster_1.ec2_node_group_1.3:kv,n1ql,index
10+
11+
[clients]
12+
workers1 =
13+
ec2.ec2_cluster_1.ec2_node_group_2.1
14+
15+
[utilities]
16+
brokers1 = ec2.ec2_cluster_1.ec2_node_group_3.1
17+
18+
[ec2]
19+
clusters = ec2_cluster_1
20+
21+
[ec2_cluster_1]
22+
node_groups = ec2_node_group_1,ec2_node_group_2,ec2_node_group_3
23+
storage_class = gp3
24+
25+
[ec2_node_group_1]
26+
instance_type = i4i.xlarge
27+
instance_capacity = 3
28+
volume_size = 300
29+
iops = 3000
30+
31+
[ec2_node_group_2]
32+
instance_type = c5.24xlarge
33+
instance_capacity = 1
34+
volume_size = 100
35+
36+
[ec2_node_group_3]
37+
instance_type = c5.9xlarge
38+
instance_capacity = 1
39+
volume_size = 100
40+
41+
[storage]
42+
data = /data
43+
44+
[credentials]
45+
rest = Administrator:password
46+
ssh = root:couchbase
47+
aws_key_name = korry
48+
49+
[parameters]
50+
OS = Amazon Linux 2
51+
CPU = i4i.xlarge (4 vCPU)
52+
Memory = 32 GB
53+
Disk = NVMe, 937GB, 3000 IOPS
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
[infrastructure]
2+
provider = aws
3+
type = ec2
4+
5+
[clusters]
6+
couchbase1 =
7+
ec2.ec2_cluster_1.ec2_node_group_1.1:kv,n1ql,index
8+
ec2.ec2_cluster_1.ec2_node_group_1.2:kv,n1ql,index
9+
ec2.ec2_cluster_1.ec2_node_group_1.3:kv,n1ql,index
10+
ec2.ec2_cluster_1.ec2_node_group_1.4:kv,n1ql,index
11+
[clients]
12+
workers1 =
13+
ec2.ec2_cluster_1.ec2_node_group_2.1
14+
15+
[utilities]
16+
brokers1 = ec2.ec2_cluster_1.ec2_node_group_3.1
17+
18+
[ec2]
19+
clusters = ec2_cluster_1
20+
21+
[ec2_cluster_1]
22+
node_groups = ec2_node_group_1,ec2_node_group_2,ec2_node_group_3
23+
storage_class = gp3
24+
25+
[ec2_node_group_1]
26+
instance_type = i4i.xlarge
27+
instance_capacity = 4
28+
volume_size = 300
29+
iops = 3000
30+
31+
[ec2_node_group_2]
32+
instance_type = c5.24xlarge
33+
instance_capacity = 1
34+
volume_size = 100
35+
36+
[ec2_node_group_3]
37+
instance_type = c5.9xlarge
38+
instance_capacity = 1
39+
volume_size = 100
40+
41+
[storage]
42+
data = /data
43+
44+
[credentials]
45+
rest = Administrator:password
46+
ssh = root:couchbase
47+
aws_key_name = korry
48+
49+
[parameters]
50+
OS = Amazon Linux 2
51+
CPU = i4i.xlarge (4 vCPU)
52+
Memory = 32 GB
53+
Disk = NVMe, 937GB, 3000 IOPS

playbooks/ec2_basic_nvme.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
---
2+
- hosts: couchbase_servers
3+
vars:
4+
data_dir: /data
5+
disk: /dev/nvme2n1
6+
tasks:
7+
- name: re-creating filesystem
8+
filesystem:
9+
fstype: "xfs"
10+
dev: "{{ disk }}"
11+
force: yes
12+
13+
- name: mounting data parition
14+
mount:
15+
name: "{{ data_dir }}"
16+
state: mounted
17+
src: "{{ disk }}"
18+
fstype: "xfs"
19+
20+
- name: creating new "couchbase" group
21+
group: name=couchbase
22+
23+
- name: creating new "couchbase" user
24+
user: name=couchbase group=couchbase
25+
26+
- name: ensuring ownership of "{{ data_dir }}" directory
27+
file: path={{ data_dir }} owner=couchbase group=couchbase
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
[test_case]
2+
test = perfrunner.tests.ycsb.YCSBThroughputTest
3+
4+
[showfast]
5+
title = Avg Throughput (ops/sec), Workload A, 3 nodes, 1 bucket x 150M x 1KB, NVMe, i4i.xlarge
6+
component = kvcloud
7+
category = kv
8+
orderby = nvme
9+
sub_category = AWS
10+
11+
[cluster]
12+
mem_quota = 8738
13+
index_mem_quota = 8738
14+
initial_nodes = 3
15+
num_buckets = 1
16+
enable_cpu_cores = false
17+
enable_n2n_encryption = all
18+
19+
[bucket]
20+
replica_number = 1
21+
eviction_policy = fullEviction
22+
backend_storage = magma
23+
24+
[load]
25+
workload_path = workloads/workloada
26+
ycsb_client = couchbase3
27+
items = 150000000
28+
workers = 100
29+
30+
[access]
31+
workload_path = workloads/workloada
32+
ycsb_client = couchbase3
33+
items = 150000000
34+
ops = 1000000000
35+
time = 1800
36+
boost = 12
37+
workers = 400
38+
workload_instances = 2
39+
kv_endpoints = 16
40+
41+
[ycsb]
42+
branch = couchbase3
43+
44+
[stats]
45+
client_processes = java
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
[test_case]
2+
test = perfrunner.tests.ycsb.YCSBLatencyTest
3+
4+
[showfast]
5+
title = Latency (ms), Workload A, 3 nodes, 1 bucket x 150M x 1KB, NVMe, 4K ops/sec, i4i.xlarge
6+
component = kvcloud
7+
category = latency
8+
orderby = nvme
9+
sub_category = AWS
10+
11+
[cluster]
12+
mem_quota = 8738
13+
index_mem_quota = 8738
14+
initial_nodes = 3
15+
num_buckets = 1
16+
enable_cpu_cores = false
17+
enable_n2n_encryption = all
18+
19+
[bucket]
20+
replica_number = 1
21+
eviction_policy = fullEviction
22+
backend_storage = magma
23+
24+
[load]
25+
workload_path = workloads/workloada
26+
ycsb_client = couchbase3
27+
items = 150000000
28+
workers = 100
29+
ssl_mode = data
30+
31+
[access]
32+
workload_path = workloads/workloada
33+
ycsb_client = couchbase3
34+
items = 150000000
35+
target = 2000
36+
ops = 0
37+
time = 1800
38+
boost = 12
39+
workers = 50
40+
workload_instances = 2
41+
timeseries = 1
42+
kv_endpoints = 16
43+
ssl_mode = data
44+
45+
[ycsb]
46+
branch = couchbase3
47+
latency_percentiles = 99
48+
average_latency = 1
49+
50+
[stats]
51+
client_processes = java
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
[test_case]
2+
test = perfrunner.tests.ycsb.YCSBN1QLThroughputTest
3+
4+
[showfast]
5+
title = Avg Throughput (queries/sec), Workload E, 3 nodes, 1 bucket x 150M x 1KB, NVMe, i4i.xlarge
6+
component = n1qlcloud
7+
category = thr
8+
sub_category = AWS
9+
orderby = nvme
10+
11+
[cluster]
12+
mem_quota = 8738
13+
index_mem_quota = 8738
14+
initial_nodes = 3
15+
num_buckets = 1
16+
enable_cpu_cores = false
17+
enable_n2n_encryption = all
18+
19+
[bucket]
20+
replica_number = 1
21+
eviction_policy = fullEviction
22+
backend_storage = magma
23+
24+
[secondary]
25+
indexer.settings.storage_mode = plasma
26+
27+
[index]
28+
statements =
29+
CREATE PRIMARY INDEX primary_idx ON `bucket-1` WITH {"num_replica": 1};
30+
31+
[load]
32+
workload_path = workloads/workloade
33+
ycsb_client = couchbase3
34+
items = 150000000
35+
workers = 100
36+
ssl_mode = data
37+
38+
[access]
39+
workload_path = workloads/workloade
40+
ycsb_client = couchbase3
41+
items = 150000000
42+
ops = 1000000000
43+
time = 1200
44+
workers = 400
45+
workload_instances = 2
46+
kv_endpoints = 16
47+
ssl_mode = capella
48+
49+
[ycsb]
50+
branch = couchbase3
51+
52+
[stats]
53+
client_processes = java
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
[test_case]
2+
test = perfrunner.tests.ycsb.YCSBN1QLLatencyTest
3+
4+
[showfast]
5+
title = Latency (sec), Workload E, 3 nodes, 1 bucket x 150M x 1KB, NVMe, 100 queries/sec, i4i.xlarge
6+
component = n1qlcloud
7+
category = ycsb
8+
sub_category = AWS
9+
orderby = nvme
10+
11+
[cluster]
12+
mem_quota = 8738
13+
index_mem_quota = 8738
14+
initial_nodes = 3
15+
num_buckets = 1
16+
enable_cpu_cores = false
17+
enable_n2n_encryption = all
18+
19+
[bucket]
20+
replica_number = 1
21+
eviction_policy = fullEviction
22+
backend_storage = magma
23+
24+
[secondary]
25+
indexer.settings.storage_mode = plasma
26+
27+
[index]
28+
statements =
29+
CREATE PRIMARY INDEX primary_idx ON `bucket-1` WITH {"num_replica": 1};
30+
31+
[load]
32+
workload_path = workloads/workloade
33+
ycsb_client = couchbase3
34+
items = 150000000
35+
workers = 50
36+
ssl_mode = data
37+
38+
[access]
39+
workload_path = workloads/workloade
40+
ycsb_client = couchbase3
41+
items = 150000000
42+
target = 100
43+
ops = 0
44+
time = 1200
45+
workers = 200
46+
workload_instances = 1
47+
timeseries = 1
48+
kv_endpoints = 16
49+
ssl_mode = data
50+
51+
[ycsb]
52+
branch = couchbase3
53+
latency_percentiles = 99
54+
average_latency = 1
55+
56+
[stats]
57+
client_processes = java

0 commit comments

Comments
 (0)