Oversikt

dette skriptet genererer en haug med dokumenter, og indekserer så mye som mulig Til Elasticsearch. Mens du gjør det, skriver den ut beregninger til skjermen for å la deg følge hvordan klyngen gjør.

slik bruker du

  • Lagre dette skriptet
  • Kontroller At Du Har Python 2.7+
  • pip installer elasticsearch

hvordan fungerer det

skriptet oppretter dokumentmaler basert på inndata. Si-5 forskjellige dokumenter.Dokumentene er opprettet uten felt,med det formål å ha samme tilordning når indeksering til ES.Etter det tar skriptet 10 tilfeldige dokumenter ut av malbassenget (med redraws) og fyller dem med tilfeldige data.

etter at vi har pool av ulike dokumenter, velger vi en indeks ut av bassenget, velg dokumenter * bulk størrelse ut av bassenget, og indeksere dem.

genereringen av dokumenter blir behandlet før kjøringen, så det vil ikke overbelaste serveren for mye under referansen.

Obligatoriske Parametere

Parameter Beskrivelse
--es_address Adresse Til Elasticsearch-klyngen(ingen protokoll og port). Du kan levere mutiple klynger her, men bare en node i hver klynge (helst klientnoden)
--indices antall indekser å skrive til
--documents Antall maldokumenter som har samme tilordning
--clients Antall tråder som sender bulks TIL ES
--seconds Hvor lenge skal testen løpe. Merk: det kan ta litt lengre tid, da sending av alle bulks hvis opprettelse er initiert, er tillatt

Valgfrie Parametere

Parameter Beskrivelse Standard
--number-of-shards Hvor mange shards per indeks 3
--number-of-replicas Hvor mange kopier per indeks 1
--bulk-size Hvor mange dokumenter hver masseforespørsel skal inneholde 1000
--max-fields-per-document Hva er maksimum antall felt hver dokumentmal skal inneholde 100
--max-size-per-field Når du fyller ut malene, hva er den maksimale lengden på dataene hvert felt vil få 1000
--no-cleanup Boolsk felt. Ikke slett indeksene etter ferdigstillelse False
--stats-frequency hvor ofte viser statistikken 30
--not-green Skriptet venter ikke på at klyngen skal være grønn False
--no-verify ingen verifiser SSL-sertifikater False
--ca-file Sti Til Sertifikatfil
--username HTTP-autentisering Brukernavn
--password HTTP-godkjenning Passord *

Eksempler

Kjør testen for 2 Elasticsearch-klynger, med 4 indekser på hver, 5 tilfeldige dokumenter, vent ikke på at klyngen skal være grønn, åpne 5 forskjellige skrivetråder og kjør skriptet i 120 sekunder

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

Kjør testen PÅ ES cluster 1.2.3.4, med 10 indekser, 10 tilfeldige dokumenter med opptil 10 felt i hver, størrelsen på hvert felt på hvert dokument kan være opptil 50 tegn, hver indeks vil ha 1 shard og ingen replikaer, testen vil løpe fra 1 klient (tråd) i 300 sekunder, vil skrive ut statistikk hvert 15. sekund, vil indeksere i bulks av 5000 dokumenter og vil forlate alt I Elasticsearch etter testen

 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

Kjør testen MED SSL

 python elasticsearch-stress-test.py --es_address https://1.2.3.4 --indices 5 --documents 5 --clients 1 --ca-file /path/ca.pem

Kjør testen MED SSL uten å bekrefte sertifikatet

 python elasticsearch-stress-test.py --es_address https://1.2.3.4 --indices 5 --documents 5 --clients 1 --no-verify

Kjør testen med HTTP Autentisering

 python elasticsearch-stress-test.py --es_address 1.2.3.4 --indices 5 --documents 5 --clients 1 --username elastic --password changeme

Bidrag

Du er mer enn velkommen!Vennligst åpne EN PR eller problemer her.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.