Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

99
Elasticsearch i Docker Rafał Kuć – Sematext Group, Inc. @ kucrafal @ sematext sematext.com Skalowalność Wysoka Dostępność Zarządzanie Zasobami

Transcript of Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Page 1: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Elasticsearch i Docker

Rafał Kuć – Sematext Group, Inc.@kucrafal @sematext sematext.com

SkalowalnośćWysoka Dostępność

Zarządzanie Zasobami

Page 2: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Kilka słów o mnie…

Sematext – konsultant i inżynierSolr.pl współzałożycielOjciec i mąż:)

Page 3: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Następne 45 minut

Page 4: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Na pewno znamy to wszyscy

Development

Page 5: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Na pewno znamy to wszyscy

Development Test

Page 6: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Na pewno znamy to wszyscy

Development Test QA

Page 7: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Na pewno znamy to wszyscy

Development Test QA

Produkcja

Page 8: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

I problemy z tym związane

Nie wykorzystywane zasoby

Page 9: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

I problemy z tym związane

Nie wykorzystywane zasoby

Maszyn więcejniż potrzeba

Page 10: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

I problemy z tym związane

Nie wykorzystywane zasoby

Maszyn więcejniż potrzeba

≠ ≠

Page 11: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Rozwiązanie

Development Test QA Produkcja

Page 12: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Technologie kontenerów

Page 13: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Docker – czyli co?

Lekki

Oparty o otwarte standardy

Bezpieczny

Page 14: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Kontenery vs maszyny wirtualne

Hardware

Tradycyjna Maszyna Wirtualna

Page 15: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Kontenery vs maszyny wirtualne

Hardware

Host Operating System

Tradycyjna Maszyna Wirtualna

Page 16: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Kontenery vs maszyny wirtualne

Hardware

Host Operating System

Hypervisor

Tradycyjna Maszyna Wirtualna

Page 17: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Kontenery vs maszyny wirtualne

Hardware

Host Operating System

Hypervisor

Guest OS Guest OS

Tradycyjna Maszyna Wirtualna

Page 18: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Kontenery vs maszyny wirtualne

Hardware

Host Operating System

Hypervisor

Guest OS Guest OS

Libraries Libraries

Tradycyjna Maszyna Wirtualna

Page 19: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Kontenery vs maszyny wirtualne

Hardware

Host Operating System

Hypervisor

Guest OS Guest OS

Libraries Libraries

Application 1 Application 2

Tradycyjna Maszyna Wirtualna

Page 20: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Kontenery vs maszyny wirtualne

Hardware

Host Operating System

Hypervisor

Guest OS Guest OS

Libraries Libraries

Application 1 Application 2

Hardware

Host Operating System

Tradycyjna Maszyna WirtualnaKontener

Page 21: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Kontenery vs maszyny wirtualne

Hardware

Host Operating System

Hypervisor

Guest OS Guest OS

Libraries Libraries

Application 1 Application 2

Hardware

Host Operating System

Docker Engine

Tradycyjna Maszyna WirtualnaKontener

Page 22: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Kontenery vs maszyny wirtualne

Hardware

Host Operating System

Hypervisor

Guest OS Guest OS

Libraries Libraries

Application 1 Application 2

Hardware

Host Operating System

Docker Engine

Libraries Libraries

Application 1 Application 2

Tradycyjna Maszyna WirtualnaKontener

Page 23: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Czym jest Elasticsearch?

Rozsądne wartości

domyślne { JSON }

Distributed by design

http://www.dailypets.co.uk/2007/06/17/kittens-rest-at-half-time/

Page 24: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Uruchamianie oficjalnego kontenera

$ docker run -d elasticsearch

Page 25: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Uruchamianie oficjalnego kontenera

$ docker run -d elasticsearch == docker run -d elasticsearch:latest

Page 26: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Uruchamianie oficjalnego kontenera

$ docker run -d elasticsearch:1.7

$ docker run -d elasticsearch == docker run -d elasticsearch:latest

Page 27: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Uruchamianie oficjalnego kontenera

$ docker run -d elasticsearch == docker run -d elasticsearch:latest

$ docker run --name es_1 -h es_master_1 elasticsearch

$ docker run -d elasticsearch:1.7

Page 28: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Uruchamianie oficjalnego kontenera

$ docker run -d elasticsearch == docker run -d elasticsearch:latest

$ docker run --name es_1 -h es_master_1 elasticsearch

$ docker run -d elasticsearch:1.7

Page 31: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Ograniczanie kontenerów

$ docker run -d -m 2G elasticsearch

$ docker run -d -m 2G --memory-swappiness=0 elasticsearch

$ docker run -d --cpuset-cpus="1,3" elasticsearch

http://docs.docker.com/engine/reference/run/

Page 32: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Ograniczanie kontenerów

$ docker run -d -m 2G elasticsearch

$ docker run -d -m 2G --memory-swappiness=0 elasticsearch

$ docker run -d --cpuset-cpus="1,3" elasticsearch

http://docs.docker.com/engine/reference/run/

$ docker run -d --cpu-period=50000 --cpu-quota=25000 elasticsearch

Page 33: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Tworzenie zoptymalizowanego obrazu

Dockerfile:FROM elasticsearchADD ./elasticsearch.yml /usr/share/elasticsearch/config/

Page 34: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Tworzenie zoptymalizowanego obrazu

Dockerfile:FROM elasticsearchADD ./elasticsearch.yml /usr/share/elasticsearch/config/

$ docker build -t devops/example .

Page 35: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Tworzenie zoptymalizowanego obrazu

Dockerfile:FROM elasticsearchADD ./elasticsearch.yml /usr/share/elasticsearch/config/

$ docker build -t devops/example .

Sending build context to Docker daemon 3.072 kBStep 1 : FROM elasticsearch ---> 8112755253f1Step 2 : ADD ./elasticsearch.yml /usr/share/elasticsearch/config/ ---> Using cache ---> c9ca48a22e58Successfully built c9ca48a22e58

Page 36: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Radzimy sobie z siecią

$ docker run -d -p 9200:9200 -p 9300:9300 elasticsearch

Page 37: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Radzimy sobie z siecią

$ docker run -d -p 9200:9200 -p 9300:9300 elasticsearch

$ docker run -d elasticsearch -Dnetwork.publish_host=192.168.1.1

Page 38: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Radzimy sobie z siecią

$ docker run -d -p 9200:9200 -p 9300:9300 elasticsearch

$ docker run -d elasticsearch -Dnetwork.publish_host=192.168.1.1

$ docker run -d -p 9200:9200 -p 9300:9300 elasticsearch -Dnetwork.publish_host=192.168.1.1

Page 39: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Radzimy sobie z siecią

$ docker run -d -p 9200:9200 -p 9300:9300 elasticsearch

$ docker run -d elasticsearch -Dnetwork.publish_host=192.168.1.1

$ docker run -d -p 9200:9200 -p 9300:9300 elasticsearch -Dnetwork.publish_host=192.168.1.1

$ docker run -d -p 9200:9200 -p 9300:9300 elasticsearch -Dnetwork.publish_host=0.0.0.0

Page 40: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Sieć – Dobre praktyki

Oddzielna, izolowana sieć dla klastra Elasticsearch

Page 41: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Sieć – Dobre praktyki

Oddzielna, izolowana sieć dla klastra Elasticsearch

Wspólne nazewnictwo instancji$ docker run -d -h es_node_1 elasticsearch

Page 42: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Sieć – Dobre praktyki

Oddzielna, izolowana sieć dla klastra Elasticsearch

Wspólne nazewnictwo instancji$ docker run -d -h es_node_1 elasticsearch

Otwieranie portów 9200 i 9300 tylko dla instancji klientów

Page 43: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Sieć – Dobre praktyki

Oddzielna, izolowana sieć dla klastra Elasticsearch

Wspólne nazewnictwo instancji$ docker run -d -h es_node_1 elasticsearch

Otwieranie portów 9200 i 9300 tylko dla instancji klientów

Instancje data i client wskazują tylko na instance masters

Page 44: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Dane i Docker

Domyślnie w /usr/share/elasticsearch/data w kontenerze

Page 45: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Dane i Docker

Domyślnie w /usr/share/elasticsearch/data w kontenerze

Usuwane podczas restartu kontenera

Page 46: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Dane i Docker

$ docker run -d -v /opt/elasticsearch/data:/usr/share/elasticsearch/data elasticsearch

Domyślnie w /usr/share/elasticsearch/data w kontenerze

Usuwane podczas restartu kontenera

Uprawnienia

Page 47: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Kontenery data only

Omijają Union File System

Page 48: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Kontenery data only

Omijają Union File System

Mogą być współdzielone przez wiele kontenerów

Page 49: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Kontenery data only

Omijają Union File System

Mogą być współdzielone przez wiele kontenerów

Dane są przechowywane nawet po usunięciu kontenera

Page 50: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Kontenery data only

Omijają Union File System

Mogą być współdzielone przez wiele kontenerów

Dane są przechowywane nawet po usunięciu kontenera

$ docker create -v /mnt/es/data:/usr/share/elasticsearch/data --name esdata elasticsearch

Uprawnienia

Page 51: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Kontenery data only

Omijają Union File System

Mogą być współdzielone przez wiele kontenerów

Dane są przechowywane nawet po usunięciu kontenera

$ docker create -v /mnt/es/data:/usr/share/elasticsearch/data --name esdata elasticsearch

$ docker run --volumes-from esdata elasticsearch

Uprawnienia

Page 52: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Wysoka dostępność

Master

Master

Master

Data

Data

Data

Data

Data

Data

Client

Client

Page 53: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Wysoka dostępność

Master

Master

Master

Data

Data

Data

Data

Data

Data

Client

Client

minimum_master_nodes = N/2 + 1

Page 54: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Wysoka dostępność

Master

Master

Master

Data

Data

Data

Data

Data

Data

Client

Client

minimum_master_nodes = N/2 + 1recovery.after.nodes

recovery.expected.nodes cluster.routing.allocation.node_concurrent_recoveries

index.unassigned.node_left.delayed_timeoutindex.priority

Page 55: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Elasticsearch Master i Docker

$ docker run -d elasticsearch -Dnode.master=true -Dnode.data=false -Dnode.client=false

Page 56: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Elasticsearch Client i Docker

$ docker run -d elasticsearch -Dnode.master=false -Dnode.data=false -Dnode.client=true

Page 57: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Elasticsearch Data i Docker

$ docker run -d elasticsearch -Dnode.master=false -Dnode.data=true -Dnode.client=false

Page 58: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Skalowalność

Elasticsearch Elasticsearch

Elasticsearch Elasticsearch

Page 59: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Skalowalność

curl -XPUT 'http://localhost:9200/wesm/' -d '{ "settings" : { "index" : { "number_of_shards" : 4, "number_of_replicas" : 0 } }}'

Page 60: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Skalowalność

P P

P P

Page 61: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Skalowalność

curl -XPUT 'http://localhost:9200/wesm/_settings' -d '{ "index.number_of_replicas" : 1}'

Page 62: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Skalowalność

P P

P P

R

R R

R

Page 63: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Skalowalność

curl -XPUT 'http://localhost:9200/wesm/_settings' -d '{ "index.number_of_replicas" : 2}'

Page 64: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Skalowalność

P P

P P

R R

R R

R R

R R

Page 65: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Skalowalność

curl -XPUT 'http://localhost:9200/wesm/_settings' -d '{ "index.number_of_replicas" : 1}'

Page 66: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Skalowalność

P P

P P

R

R R

R

Page 67: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Skalowalność

P P

P P

R

R R

R

Page 68: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Skalowalność

P P PP

UnassignedR

RR

R

Page 69: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Doc Values!

W 2.0 domyślne dla pól string, not_analyzed

Wykorzystywane do sortowania, agregacji i skryptów

Używane zamiast fielddata

curl -XPOST 'localhost:9200/devops' -d '{ "mappings" : { "logs" : { "properties" : { "tag" : { "type" : "string", "index" : "not_analyzed", "doc_values": true } }}}}'

Page 70: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Wydajność, a refresh_interval

1s -> 2K docs/sec

5s -> 2.5K docs/sec

30s -> 3.4K docs/sec

Page 71: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Wydajność, a refresh_interval

1s -> 2K docs/sec

5s -> 2.5K docs/sec

30s -> 3.4K docs/sec

curl -XPUT 'localhost:9200/days/_settings' -d '{ "index" : { "refresh_interval" : "5s" } }'

Page 72: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

RAM Buffer

indices.memory.index_buffer_size: 10%indices.memory.min_index_buffer_size: 48mb

indices.memory.max_index_buffer_size (unbounded) indices.memory.min_shard_index_buffer_size: 4mb

Page 73: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

RAM Buffer

indices.memory.index_buffer_size: 10%indices.memory.min_index_buffer_size: 48mb

indices.memory.max_index_buffer_size (unbounded) indices.memory.min_shard_index_buffer_size: 4mb

SzybszeIndeksowanie

WolniejszeIndeksowanie

domyślna

konfiguracja

><

Page 74: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Dane oparte o czas

2015-11-23

DZIS

TYDZIEN

Page 75: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Dane oparte o czas

curl -XPOST 'http://localhost:9200/_aliases' -d '{ "actions" : [ { "add" : {"index":"2015-11-23","alias":"today"} }, { "add" : {"index":"2015-11-23","alias":"week"} } ]}'

Page 76: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Dane oparte o czas

2015-11-23 2015-11-24

DZIS

TYDZIEN

Page 77: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Dane oparte o czas

curl -XPOST 'http://localhost:9200/_aliases' -d '{ "actions" : [ { "remove" : {"index":"2015-11-23","alias":"today"} }, { "add" : {"index":"2015-11-24","alias":"today"} }, { "add" : {"index":"2015-11-24","alias":"week"} } ]}'

Page 78: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Dane oparte o czas

2015-11-23 2015-11-24 2014-11-25

DZIS

TYDZIEN

Page 79: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Dane oparte o czas

curl -XPOST 'http://localhost:9200/_aliases' -d '{ "actions" : [ { "remove" : {"index":"2015-11-24","alias":"today"} }, { "add" : {"index":"2015-11-25","alias":"today"} }, { "add" : {"index":"2015-11-25","alias":"week"} } ]}'

Page 80: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Wiele warstw

node.tag=hot node.tag=cold node.tag=cold

Page 81: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Wiele warstw

curl -XPUT 'localhost:9200/data_2015-11-23' -d '{ "settings": { "index.routing.allocation.include.tag" : "hot" }}'

Page 82: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Wiele warstw

node.tag=hot node.tag=cold node.tag=cold

data_2015-11-23

data_2015-11-23

Page 83: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Wiele warstw

curl -XPUT 'localhost:9200/data_2015-11-23/_settings' -d '{ "settings": { "index.routing.allocation.exclude.tag" : "hot", "index.routing.allocation.include.tag" : "cold", }}'

Page 84: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Wiele warstw

node.tag=hot node.tag=cold node.tag=cold

data_2015-11-23

data_2015-11-23

Page 85: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Wiele warstw

curl -XPUT 'localhost:9200/data_2015-11-24' -d '{ "settings": { "index.routing.allocation.include.tag" : "hot" }}'

Page 86: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Wiele warstw

node.tag=hot node.tag=cold node.tag=cold

data_2015-11-23

data_2015-11-23

data_2015-11-24

data_2015-11-24

Page 87: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Wiele warstw

node.tag=hot node.tag=cold node.tag=cold

data_2015-11-23

data_2015-11-23

data_2015-11-25

data_2015-11-25

data_2015-11-24

data_2015-11-24

Page 88: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Dane zorientowane na użytkowników

Page 89: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Dane zorientowane na użytkowników

Hot

Hot

Cold

Cold

Cold

Cold

Page 90: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Dane zorientowane na użytkowników

Hot

Hot

Cold

Cold

Cold

Cold

ROUTING

Page 91: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Indeksowanie bez routingu

Shard 1 Shard 2 Shard 3 Shard 4

Shard 5 Shard 6 Shard 7 Shard 8

Elasticsearch

Indekser

userA

userA

userA

userAuserAuserA

userAuserA

Page 92: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Indeksowanie z routingiem

Shard 1 Shard 2 Shard 3 Shard 4

Shard 5 Shard 6 Shard 7 Shard 8

Elasticsearch

Indekser

user

A

Page 93: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Zapytania bez routingu

Shard 1 Shard 2 Shard 3 Shard 4

Shard 5 Shard 6 Shard 7 Shard 8

Elasticsearch

Aplikacja

Page 94: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Zapytania z routingiem

Shard 1 Shard 2 Shard 3 Shard 4

Shard 5 Shard 6 Shard 7 Shard 8

Elasticsearch

Aplikacja

Page 95: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Routing konta brak routingu

Queries without routing (200 shards, 1 replica)#threads Avg response time Throughput 90% line Median CPU Utilization

1 3169ms 19,0/min 5214ms 2692ms 95 – 99%

Page 96: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Routing konta brak routingu

Queries without routing (200 shards, 1 replica)#threads Avg response time Throughput 90% line Median CPU Utilization

1 3169ms 19,0/min 5214ms 2692ms 95 – 99%

Queries with routing (200 shards, 1 replica)#threads Avg response time Throughput 90% line Median CPU Utilization

10 196ms 50,6/sec 642ms 29ms 25 – 40%

20 218ms 91,2/sec 718ms 11ms 10 – 15%

Page 98: Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami

Krótkie Podsumowanie

http://www.soothetube.com/2013/12/29/thats-all-folks/