Overview
tämä kirjoitus luo joukon asiakirjoja ja indeksoi niin paljon kuin se voi Elasticsearch. Samalla se tulostaa näytölle mittareita, joiden avulla voit seurata, miten klusterisi pärjää.
Kuinka käyttää
- Tallenna tämä skripti
- varmista, että sinulla on Python 2.7+
- pip install elasticsearch
miten se toimii
skripti luo dokumenttimalleja syötteesi perusteella. Say-5 eri asiakirjoja.Asiakirjat luodaan ilman kenttiä, jotta niillä olisi sama kartoitus indeksoitaessa ES: ään.Sen jälkeen skripti ottaa 10 satunnaista dokumenttia pois mallipoolista (redraws) ja populoi ne satunnaisella datalla.
kun meillä on eri dokumenttien pooli, valitsemme hakemiston poolista, valitsemme dokumentit * irtokoko poolista ja indeksoimme ne.
dokumenttien generointi käsitellään ennen ajoa, joten se ei ylikuormita palvelinta liikaa vertailujakson aikana.
pakolliset parametrit
parametri | kuvaus |
---|---|
--es_address |
Elasticsearch Clusterin osoite (ei protokollaa ja porttia). Voit toimittaa mutiple klustereita täällä, mutta vain yksi solmu kussakin klusterissa (mieluiten asiakassolmu) |
--indices |
kirjoitettavien indeksien lukumäärä |
--documents |
niiden malliasiakirjojen lukumäärä, joilla on sama yhdistettävyys |
--clients |
niiden säikeiden lukumäärä, jotka lähettävät bulk-moduuleja ES: lle |
--seconds |
kuinka kauan testin pitäisi kestää. Huomautus: se voi kestää hieman kauemmin, koska lähettäminen kaikki Bulkit, joiden luominen on aloitettu on sallittua |
valinnaiset parametrit
parametri | kuvaus | oletus |
---|---|---|
--number-of-shards |
kuinka monta sirpaletta per indeksi | 3 |
--number-of-replicas |
kuinka monta kopiota per indeksi | 1 |
--bulk-size |
kuinka monta asiakirjaa kunkin irtotavarapyynnön tulisi sisältää | 1000 |
--max-fields-per-document |
mikä on suurin niiden kenttien lukumäärä, jotka kussakin asiakirjapohjassa tulisi olla | 100 |
--max-size-per-field |
kun lomakkeita populoidaan, mikä on kunkin kentän enimmäispituus | 1000 |
--no-cleanup |
Boolean field. Älä poista indeksejä valmistumisen jälkeen | False |
--stats-frequency |
kuinka usein tilastot näytetään | 30 |
--not-green |
skripti ei odota klusterin olevan vihreä | epätosi |
--no-verify |
ei Todenna SSL-varmenteita | vääriä |
--ca-file |
varmennetiedoston polku | |
--username |
HTTP-todennus käyttäjätunnus | |
--password |
HTTP-todennus Salasana |
esimerkkejä
suorita testi 2 Elasticsearch clustersille, joissa kussakin on 4 indeksiä, 5 satunnaista dokumenttia, älä odota klusterin olevan vihreä, avaa 5 erilaista kirjoitusketjua ja suorita skripti 120 sekuntia
python elasticsearch-stress-test.py --es_address 1.2.3.4 1.2.3.5 --indices 4 --documents 5 --seconds 120 --not-green --clients 5
suorita testi es-klusterissa 1.2.3.4, jossa on 10 indeksiä, 10 satunnaista asiakirjaa, joissa on enintään 10 kenttää kussakin, kunkin asiakirjan kentän koko voi olla jopa 50 merkkiä, jokaisella indeksillä on 1 sirpale eikä kopioita, testi suoritetaan 1 asiakkaasta (säiettä) 300 sekunnin ajan, tulostaa tilastoja 15 sekunnin välein, indeksoi 5000 asiakirjan Bulkit ja jättää kaiken Elasticsearch testin jälkeen
python elasticsearch-stress-test.py --es_address 1.2.3.4 --indices 10 --documents 10 --clients 1 --seconds 300 --number-of-shards 1 --number-of-replicas 0 --bulk-size 5000 --max-fields-per-document 10 --max-size-per-field 50 --no-cleanup --stats-frequency 15
suorita testi SSL: llä
python elasticsearch-stress-test.py --es_address https://1.2.3.4 --indices 5 --documents 5 --clients 1 --ca-file /path/ca.pem
suorita testi SSL: llä ilman varmenteen vahvistamista
python elasticsearch-stress-test.py --es_address https://1.2.3.4 --indices 5 --documents 5 --clients 1 --no-verify
suorita testi HTTP-varmennuksella
python elasticsearch-stress-test.py --es_address 1.2.3.4 --indices 5 --documents 5 --clients 1 --username elastic --password changeme
panos
olet enemmän kuin tervetullut!Avaa PR tai kysymyksiä täällä.