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.