Parannettu joustavuus vastapaineella ja sisäänpääsyn valvonnalla Amazon OpenSearch Servicelle | Amazon Web Services

Parannettu joustavuus vastapaineella ja sisäänpääsyn valvonnalla Amazon OpenSearch Servicelle | Amazon Web Services

Lähdesolmu: 2723961

Amazon OpenSearch-palvelu on hallittu palvelu, jonka avulla on helppo suojata, ottaa käyttöön ja käyttää OpenSearch-klustereita mittakaavassa AWS-pilvessä. Viime vuonna esittelimme Sirpaleiden indeksoinnin vastapaine ja sisäänpääsyn valvonta, joka valvoo klusterin resursseja ja saapuvaa liikennettä hylätäkseen valikoivasti pyynnöt, jotka muutoin aiheuttaisivat vakausriskejä, kuten muistin loppuminen ja vaikuttaisivat klusterin suorituskykyyn muistiriitojen, suorittimen kyllästymisen ja GC:n ylikuormituksen ja muiden vuoksi.

Olemme nyt innoissamme voidessamme esitellä OpenSearch-palvelun Search Backpressuren ja suoritinpohjaisen pääsynhallinnan, mikä parantaa entisestään klusterien joustavuutta. Nämä parannukset ovat saatavilla kaikille OpenSearch-versioille 1.3 tai uudemmille.

Hae Vastapaine

Vastapaine estää järjestelmää rasittamasta työtä. Se tekee sen ohjaamalla liikennenopeutta tai poistamalla liiallista kuormaa estääkseen kaatumiset ja tietojen menetyksen, parantaakseen suorituskykyä ja välttääkseen järjestelmän täydellisen epäonnistumisen.

Search Backpressure on mekanismi, joka tunnistaa ja peruuttaa lennon aikana resursseja vaativat hakupyynnöt, kun solmu on pakotettuna. Se on tehokas hakukuormituksia vastaan, joissa resurssien käyttö on poikkeuksellisen korkea (kuten monimutkaiset kyselyt, hitaat kyselyt, monet osumat tai raskaat aggregaatiot), jotka voivat muuten aiheuttaa solmujen kaatumisia ja vaikuttaa klusterin kuntoon.

Search Backpressure on rakennettu tehtäväresurssien seurantakehyksen päälle, joka tarjoaa helppokäyttöisen sovellusliittymän kunkin tehtävän resurssien käytön seuraamiseen. Search Backpressure käyttää taustasäiettä, joka mittaa ajoittain solmun resurssien käyttöä ja antaa peruutuspisteet kullekin lennon aikana suoritettavalle hakutehtävälle tekijöiden, kuten suorittimen ajan, keon kohdistamisen ja kuluneen ajan, perusteella. Korkeampi peruutuspiste vastaa resurssiintensiivisempää hakupyyntöä. Hakupyynnöt peruutetaan niiden peruutuspisteiden alenevassa järjestyksessä solmujen nopean palauttamiseksi, mutta peruutusten määrää on rajoitettu turhan työn välttämiseksi.

Seuraava kaavio havainnollistaa Search Backpressure -työnkulkua.

Hakupyynnöt palauttavat HTTP 429 "Liian monta pyyntöä" -tilakoodin peruutuksen yhteydessä. OpenSearch palauttaa osittaisia ​​tuloksia, jos vain jotkin sirpaleet epäonnistuvat ja osittaiset tulokset ovat sallittuja. Katso seuraava koodi:

{ "error": { "root_cause": [ { "type": "task_cancelled_exception", "reason": "cancelled task with reason: heap usage exceeded [403mb >= 77.6mb], elapsed time exceeded [1.7m >= 45s]" } ], "type": "search_phase_execution_exception", "reason": "SearchTask was cancelled", "phase": "fetch", "grouped": true, "failed_shards": [ { "shard": 0, "index": "nyc_taxis", "node": "9gB3PDp6Speu61KvOheDXA", "reason": { "type": "task_cancelled_exception", "reason": "cancelled task with reason: heap usage exceeded [403mb >= 77.6mb], elapsed time exceeded [1.7m >= 45s]" } } ], "caused_by": { "type": "task_cancelled_exception", "reason": "cancelled task with reason: heap usage exceeded [403mb >= 77.6mb], elapsed time exceeded [1.7m >= 45s]" } }, "status": 429
}

Haun vastapaineen seuranta

Voit seurata yksityiskohtaista Search Backpressure -tilaa solmutilastojen API:n avulla:

curl -X GET "https://{endpoint}/_nodes/stats/search_backpressure"

Voit myös tarkastella klusterin laajuista peruutusten yhteenvetoa käyttämällä amazonin pilvikello. Seuraavat mittarit ovat nyt saatavilla ES/OpenSearchService nimiavaruus:

  • SearchTaskCanced – Koordinaattorisolmun peruutusten määrä
  • SearchShardTaskCanced – Datasolmun peruutusten määrä

Seuraavassa kuvakaappauksessa on esimerkki näiden mittareiden seurannasta CloudWatch-konsolissa.

CPU-pohjainen pääsynhallinta

Pääsynvalvonta on portinvartiointimekanismi, joka rajoittaa ennakoivasti pyyntöjen määrää solmulle sen nykyisen kapasiteetin perusteella sekä orgaanisten lisäysten että liikenteen piikkien vuoksi.

JVM-muistin paineen ja pyyntökoon kynnysarvojen lisäksi se tarkkailee nyt myös kunkin solmun liukuvaa keskimääräistä suorittimen käyttöä hylätäkseen saapuvan _search ja _bulk pyynnöt. Se estää solmujen ylikuormituksen liian monilla pyynnöillä, jotka johtavat hot spoteihin, suorituskykyongelmiin, pyyntöjen aikakatkaisuihin ja muihin peräkkäisiin virheisiin. Liialliset pyynnöt palauttavat HTTP 429 "Liian monta pyyntöä" -tilakoodin hylkäämisen yhteydessä.

HTTP 429 -virheiden käsittely

Saat HTTP 429 -virheitä, jos lähetät liikaa liikennettä solmuun. Se osoittaa joko riittämättömiä klusteriresursseja, resurssiintensiivisiä hakupyyntöjä tai tahatonta työmäärän piikkiä.

Search Backpressure tarjoaa hylkäämisen syyn, mikä voi auttaa hienosäätämään resurssiintensiivisiä hakupyyntöjä. Liikennepiikkien vuoksi suosittelemme asiakaspuolen uudelleenyrityksiä eksponentiaalisella perääntymisellä ja värinällä.

Voit myös noudattaa näitä vianetsintäoppaita liiallisten hylkäysten korjaamiseen:

Yhteenveto

Search Backpressure on reaktiivinen mekanismi liiallisen kuormituksen poistamiseksi, kun taas pääsynvalvonta on ennakoiva mekanismi, joka rajoittaa solmulle lähetettävien pyyntöjen määrää sen kapasiteetin yli. Molemmat toimivat samanaikaisesti parantaakseen OpenSearch-klusterin yleistä joustavuutta.

Haku Vastapaine on saatavilla opensearch, ja etsimme aina ulkopuoliset panokset. Voit viitata RFC päästä alkuun.


Tietoja kirjoittajista

Ketan Verma on vanhempi SDE, joka työskentelee Amazon OpenSearch Servicessä. Hän on intohimoinen suurten hajautettujen järjestelmien rakentamiseen, suorituskyvyn parantamiseen ja monimutkaisten ideoiden yksinkertaistamiseen yksinkertaisilla abstraktioilla. Työn ulkopuolella hän tykkää lukea ja kehittää kotibarista-taitojaan.

Suresh NS on vanhempi SDE, joka työskentelee Amazon OpenSearch Servicessä. Hän on intohimoinen suurten hajautettujen järjestelmien ongelmien ratkaisemiseen.

Pritkumar Ladani on SDE-2, joka toimii Amazon OpenSearch Servicessä. Hän osallistuu mielellään avoimen lähdekoodin ohjelmistojen kehittämiseen ja on intohimoinen hajautettuihin järjestelmiin. Hän on amatööri sulkapalloilija ja nauttii vaelluksesta.

Bukhtawar Khan on johtava insinööri, joka työskentelee Amazon OpenSearch Servicessä. Hän on kiinnostunut hajautettujen ja autonomisten järjestelmien rakentamisesta. Hän on OpenSearchin ylläpitäjä ja aktiivinen avustaja.

Aikaleima:

Lisää aiheesta AWS Big Data