forked from db-benchmarks/db-benchmarks
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose.yml
120 lines (120 loc) · 3.77 KB
/
docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
version: '2.4'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.15.2
container_name: "elasticsearch_engine"
mem_limit: ${mem}m # used for testing with limiated capabilities, e.g. RAM capped at 256MB
cpuset: "${cpuset}" # used for testing with limited capabilities, e.g. single physical core
privileged: true # we give containers all privileges since otherwise (as previous tests showed) in-docker and on-host performances can differe significantly
mem_swappiness: 0 # we disable swappiness since it can lower test results quality
ulimits:
memlock: # as recommended on https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#_disable_swapping
soft: -1
hard: -1
nproc: 65535 # as recommended on https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#_increase_ulimits_for_nofile_and_nproc
nofile:
soft: 262144
hard: 262144
ports:
- "127.0.0.1:9200:9200"
environment:
- discovery.type=single-node
- bootstrap.memory_lock=true # as said on https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#_disable_swapping it needs to be done for performance
volumes:
- ./tests/${test}/es/idx${suffix}:/usr/share/elasticsearch/data
- ./tests/${test}/es/elasticsearch${suffix}.yml:/usr/share/elasticsearch/config/elasticsearch.yml
clickhouse:
image: yandex/clickhouse-server:21.8.11.4
container_name: "clickhouse_engine"
mem_limit: ${mem}m
cpuset: "${cpuset}"
privileged: true
mem_swappiness: 0
ulimits:
memlock:
soft: -1
hard: -1
nproc: 65535
nofile:
soft: 262144
hard: 262144
ports:
- "127.0.0.1:8123:8123"
- "127.0.0.1:9000:9000"
volumes:
- ./tests/${test}/ch/data${suffix}:/var/lib/clickhouse
mysql:
image: mysql:8.0.28
container_name: "mysql_engine"
mem_limit: ${mem}m
cpuset: "${cpuset}"
privileged: true
mem_swappiness: 0
ulimits:
memlock:
soft: -1
hard: -1
nproc: 65535
nofile:
soft: 262144
hard: 262144
ports:
- "127.0.0.1:3306:3306"
volumes:
- ./tests/${test}/mysql/data${suffix}:/var/lib/mysql
- ./tests/${test}/data:/input
command: --secure-file-priv="/input/" --innodb-ft-min-token-size=1
environment:
- MYSQL_DATABASE=default
- MYSQL_ALLOW_EMPTY_PASSWORD=yes
- MYSQL_ROOT_PASSWORD=
mysql_percona:
image: percona:8.0.28-19
container_name: "mysql_percona_engine"
mem_limit: ${mem}m
cpuset: "${cpuset}"
privileged: true
mem_swappiness: 0
ulimits:
memlock:
soft: -1
hard: -1
nproc: 65535
nofile:
soft: 262144
hard: 262144
ports:
- "127.0.0.1:3306:3306"
volumes:
- ./tests/${test}/mysql_percona/data${suffix}:/var/lib/mysql
- ./tests/${test}/data:/input
command: --secure-file-priv="/input/" --innodb-ft-min-token-size=1
environment:
- MYSQL_DATABASE=default
- MYSQL_ALLOW_EMPTY_PASSWORD=yes
- MYSQL_ROOT_PASSWORD=
manticoresearch:
container_name: "manticoresearch_engine"
mem_limit: ${mem}m
cpuset: "${cpuset}"
build:
context: ./dockers/
dockerfile: manticore
image: manticoresearch:test
privileged: true
mem_swappiness: 0
ulimits:
memlock:
soft: -1
hard: -1
nproc: 65535
nofile:
soft: 262144
hard: 262144
ports:
- "127.0.0.1:9306:9306"
- "127.0.0.1:9308:9308"
volumes:
- ./tests/${test}/manticore/idx${suffix}:/var/lib/manticore
- ./tests/${test}/data:/input
- ./tests/${test}/manticore/manticore${suffix}.conf:/etc/manticoresearch/manticore.conf