
Bidh mòran dhaoine aâ strĂŹ le Elasticsearch. Ach dè thachras nuair a tha thu airson a chleachdadh gus logaichean a stòradh âann an tomhas sònraichte mòrâ? Agus a bheil e cuideachd gun phian eòlas fhaighinn air fĂ illigeadh gin de ghrunn ionadan dĂ ta? Dè an seòrsa ailtireachd a bu chòir dhut a dhèanamh, agus dè na duilgheadasan a thig ort?
Cho-dhÚin sinn aig Odnoklassniki rannsachadh elastic a chleachdadh gus fuasgladh fhaighinn air a 'cheist mu riaghladh log, agus a-nis bidh sinn a' roinn ar n-eòlas le Habr: an dà chuid mu ailtireachd agus mu dhuilgheadasan.
Is mise Pyotr Zaitsev, tha mi ag obair mar rianadair siostam aig Odnoklassniki. Roimhe sin, bha mi cuideachd nam rianadair, ag obair le Manticore Search, sgrĂšdadh Sphinx, Elasticsearch. Is dòcha, ma nochdas rannsachadh eile, is dòcha gun obraich mi leis cuideachd. Bidh mi cuideachd aâ gabhail pĂ irt ann an grunn phròiseactan stòr fosgailte gu saor-thoileach.
Nuair a thĂ inig mi gu Odnoklassniki, thuirt mi gu neo-chĂšramach aig an agallamh gum bâ urrainn dhomh obrachadh le Elasticsearch. Ăs deidh dhomh grèim fhaighinn air agus gnĂŹomhan sĂŹmplidh a chrĂŹochnachadh, chaidh an obair mhòr a thoirt dhomh a bhith ag ath-leasachadh an t-siostam riaghlaidh log a bha ann aig an Ă m sin.
riatanasan
Chaidh riatanasan an t-siostam a dhealbhadh mar a leanas:
- Bha Graylog gu bhith air a chleachdadh mar aghaidh. Leis gu robh eòlas aig a âchompanaidh mu thrĂ th air a bhith aâ cleachdadh an toraidh seo, bha fios aig prògramadairean agus luchd-dearbhaidh air, bha e eòlach agus goireasach dhaibh.
- Meud dĂ ta: gu cuibheasach 50-80 mĂŹle teachdaireachdan gach diog, ach ma bhriseas rudeigin, chan eil an trafaic air a chuingealachadh le rud sam bith, faodaidh e a bhith 2-3 millean loidhne gach diog
- Ăs deidh dhuinn bruidhinn ri luchd-ceannach mu na riatanasan airson astar giollachd cheistean sgrĂšdaidh, thuig sinn gur e seo am pĂ tran Ă bhaisteach airson a bhith aâ cleachdadh siostam mar seo: tha daoine a âcoimhead airson logaichean den tagradh aca airson an dĂ latha a dhâ fhalbh agus chan eil iad airson feitheamh barrachd air aon. an dĂ rna fear airson toradh ceist a chaidh a dhealbhadh.
- Bha an luchd-rianachd aâ cumail a-mach gum biodh an siostam furasta a scalladh ma tha sin riatanach, gun a bhith ag iarraidh orra sgrĂšdadh domhainn a dhèanamh air mar a tha e ag obair.
- Gus am bi an aon obair cumail suas a dhâ fheumas na siostaman sin bho Ă m gu Ă m is e cuid de bhathar-cruaidh atharrachadh.
- A bharrachd air an sin, tha traidisean teicnigeach sà r-mhath aig Odnoklassniki: feumaidh seirbheis sam bith a chuireas sinn air bhog a bhith beò le fà illigeadh ionad dà ta (gu h-obann, gun phlanadh agus gu tur aig à m sam bith).
Is e an riatanas mu dheireadh ann am buileachadh aâ phròiseict seo a chosgas sinn as motha, air am bi mi aâ bruidhinn nas mionaidiche.
Diciadain
Bidh sinn ag obair ann an ceithir ionadan dĂ ta, agus chan urrainnear nodan dĂ ta Elasticsearch a shuidheachadh ach ann an trĂŹ (airson grunn adhbharan neo-theicnigeach).
Tha timcheall air 18 mÏle stòr log eadar-dhealaichte anns na ceithir ionadan dà ta sin - bathar-cruaidh, soithichean, innealan brÏgheil.
Feart cudromach: bidh an cruinneachadh aâ tòiseachadh ann an soithichean chan ann air innealan corporra, ach air adhart . Thathas aâ gealltainn gum bi 2 chores aig soithichean, coltach ri 2.0Ghz v4, le comas air na coraichean a tha air fhĂ gail ath-chuairteachadh ma tha iad leisg.
Ann am faclan eile:

Topology
Chunnaic mi an toiseach cruth coitcheann an fhuasglaidh mar a leanas:
- Tha 3-4 VIPs air cÚl clà r A de à rainn Graylog, is e seo an seòladh chun an tèid na logaichean a chuir.
- tha gach VIP na chothromachadh LVS.
- Ăs deidh sin, thèid na logaichean gu bataraidh Graylog, tha cuid den dĂ ta ann an cruth GELF, cuid ann an cruth syslog.
- An uairsin tha seo uile air a sgrÏobhadh ann an baidsean mòra gu bataraidh de cho-òrdanaichean Elasticsearch.
- Agus bidh iad an uair sin aâ cur iarrtasan sgrĂŹobhaidh is leughaidh gu na nodan dĂ ta iomchaidh.

Briathrachas
Is dòcha nach eil a h-uile duine a 'tuigsinn a' bhriathrachais gu mionaideach, agus mar sin bu mhath leam fuireach air beagan.
Tha grunn sheòrsaichean nodan aig Elasticsearch - maighstir, co-òrdanaiche, nód dà ta. Tha dà sheòrsa eile ann airson cruth-atharrachadh log eadar-dhealaichte agus conaltradh eadar diofar bhuidhnean, ach cha do chleachd sinn ach an fheadhainn a tha air an liostadh.
Master
Bidh e aâ putadh a h-uile nodan a tha an lĂ thair anns aâ bhuidheann, aâ cumail mapa cnuasachaidh as Ăšire agus ga sgaoileadh eadar nodan, aâ pròiseasadh loidsig tachartais, agus aâ dèanamh diofar sheòrsan cumail-taighe air feadh na buidhne.
Co-òrdanaiche
Aâ coileanadh aon ghnĂŹomh singilte: aâ gabhail ri iarrtasan leughaidh no sgrĂŹobhaidh bho luchd-dèiligidh agus aâ slighe na trafaic seo. Ma tha iarrtas sgrĂŹobhaidh ann, is coltaiche, faighnichidh e don mhaighstir dè am pĂŹos den chlĂ r-amais iomchaidh a bu chòir dha a chuir a-steach, agus ath-stiĂširidh e an t-iarrtas tuilleadh.
Nod dĂ ta
Aâ stòradh dĂ ta, aâ dèanamh cheistean sgrĂšdaidh aâ tighinn bhon taobh a-muigh agus aâ dèanamh obrachaidhean air shards a tha suidhichte air.
Liath-log
Tha seo rudeigin mar mheasgachadh de Kibana le Logstash ann an stac ELK. Bidh Graylog aâ cothlamadh an dĂ chuid UI agus loidhne-phĂŹoban giollachd log. Fon chochall, bidh Graylog aâ ruith Kafka agus Zookeeper, a bheir ceangal do Graylog mar bhuidheann. Faodaidh Graylog logaichean a thasgadh (Kafka) gun fhios nach bi Elasticsearch ri fhaighinn agus ath-aithris a dhèanamh air iarrtasan leughaidh is sgrĂŹobhaidh neo-shoirbheachail, cuir còmhla agus comharraich logaichean a rèir riaghailtean sònraichte. Coltach ri Logstash, tha comas aig Graylog sreathan atharrachadh mus sgrĂŹobh iad gu Elasticsearch.
A bharrachd air an sin, tha lorg seirbheis stèidhichte aig Graylog a leigeas, stèidhichte air aon nód Elasticsearch a tha ri fhaighinn, am mapa brabhsair gu lèir fhaighinn agus a shÏoladh le tag sònraichte, a leigeas le iarrtasan a chuir gu soithichean sònraichte.
Gu lèirsinneach tha e aâ coimhead rudeigin mar seo:

Is e seo dealbh-sgrĂŹn bho eisimpleir sònraichte. An seo bidh sinn aâ togail histogram stèidhichte air aâ cheist rannsachaidh agus aâ taisbeanadh sreathan iomchaidh.
ClĂ ran-innse
A 'tilleadh gu ailtireachd an t-siostaim, bu mhath leam a bhith a' fuireach nas mionaidiche air mar a thog sinn am modail clĂ r-amais gus an obraich e gu ceart.
Anns an dealbh gu h-Ă rd, is e seo an ĂŹre as ĂŹsle: nodan dĂ ta Elasticsearch.
Tha clà r-amais na bhuidheann brÏgheil mòr air a dhèanamh suas de shards Elasticsearch. Ann fhèin, chan eil anns gach aon de na shards dad nas motha na clà r-amais Lucene. Agus tha gach clà r-amais Lucene, an uair sin, air a dhèanamh suas de aon roinn no barrachd.

Nuair a bha sinn aâ dealbhadh, rinn sinn a-mach, gus coinneachadh ris an riatanas airson astar leughaidh air tòrr dĂ ta, gum feumadh sinn an dĂ ta seo a âsgaoileadhâ gu cothromach thar nodan dĂ ta.
Mar thoradh air an sin, bu chòir an à ireamh de shards gach clà r-amais (le mac-samhail) a bhith gu tur co-ionann ris an à ireamh de nodan dà ta. An toiseach, gus dèanamh cinnteach à factar mac-samhail co-ionann ri dhà (is e sin, is urrainn dhuinn leth den bhuidheann a chall). Agus, san dà rna à ite, gus iarrtasan leughaidh is sgrÏobhaidh a phròiseasadh air co-dhiÚ leth den bhuidheann.
Cho-dhÚin sinn an toiseach gur e 30 latha an Úine stòraidh.
Faodar cuairteachadh shards a riochdachadh gu grafaigeach mar a leanas:

Tha an ceart-cheĂ rnach dorcha glas gu lèir na chlĂ r-amais. Is e aâ cheĂ rnag dhearg air an taobh chlĂŹ aâ phrĂŹomh shard, aâ chiad fhear sa chlĂ r-amais. Agus tha aâ cheĂ rnag ghorm na mac-samhail de shard. Tha iad suidhichte ann an diofar ionadan dĂ ta.
Nuair a chuireas sinn shard eile ris, thèid e chun treas ionad dà ta. Agus, aig a 'cheann thall, gheibh sinn an structar seo, a tha ga dhèanamh comasach DC a chall gun a bhith a' call cunbhalachd dà ta:

Cuairteachadh clĂ ran-amais, i.e. cruthachadh clĂ r-amais Ăšr agus cuir Ă s don fhear as sine, rinn sinn e co-ionann ri 48 uairean (a rèir pĂ tran cleachdadh clĂ r-amais: thathas aâ sgrĂšdadh na h-uairean 48 mu dheireadh as trice).
Tha an Ăšine cuairteachaidh clĂ r-amais seo mar thoradh air na h-adhbharan a leanas:
Nuair a ruigeas iarrtas sgrĂšdaidh nod dĂ ta sònraichte, an uairsin, bho shealladh dèanadais, tha e nas prothaidiche nuair a thèid aon shard a cheasnachadh, ma tha a mheud an coimeas ri meud hip an nĂłd. Leigidh seo leat am pĂ irt âtethâ den chlĂ r-amais a chumail ann an tiĂšrr agus faighinn thuige gu sgiobalta. Nuair a tha tòrr âpĂ irtean tethâ ann, bidh astar sgrĂšdadh clĂ r-amais aâ dol sĂŹos.
Nuair a thòisicheas nĂłd aâ cur an gnĂŹomh ceist sgrĂšdaidh air aon shard, bidh e aâ riarachadh grunn snĂ ithleanan co-ionann ris an Ă ireamh de choraichean hyperthreading an inneil fiosaigeach. Ma tha ceist rannsachaidh a 'toirt buaidh air Ă ireamh mhòr de shards, bidh an Ă ireamh de snĂ ithleanan a' fĂ s gu co-rèireach. Bheir seo droch bhuaidh air astar sgrĂšdaidh agus bheir e droch bhuaidh air clĂ r-amais dĂ ta Ăšr.
Gus an Ăšine sgrĂšdaidh riatanach a thoirt seachad, chuir sinn romhainn SSD a chleachdadh. Gus iarrtasan a phròiseasadh gu sgiobalta, dh'fheumadh co-dhiĂš 56 cores a bhith aig na h-innealan a bha a 'toirt aoigheachd do na soithichean sin. Chaidh am figear de 56 a thaghadh mar luach iomchaidh gu leòr a cho-dhĂšineas an Ă ireamh de snĂ ithleanan a ghineas Elasticsearch rè obrachadh. Ann an Elasitcsearch, tha mòran de pharamadairean amar snĂ ithlean gu dĂŹreach an urra ris an Ă ireamh de choraichean a tha rim faighinn, a bheir buaidh dhĂŹreach air an Ă ireamh de nodan a tha a dhĂŹth anns a âbhuidheann a rèir aâ phrionnsapail ânas lugha de choraichean - barrachd nodanâ.
Mar thoradh air an sin, lorg sinn gu bheil cuideam cuibheasach timcheall air 20 gigabytes, agus gu bheil 1 shards gach clĂ r-amais. Mar sin, ma thionndaidheas sinn iad aon uair gach 360 uair, tha 48 dhiubh againn. Tha dĂ ta airson 15 latha anns gach clĂ r-amais.
Cuairtean sgrĂŹobhadh dĂ ta agus leughadh
Feuch gun obraich sinn a-mach mar a tha dĂ ta air a chlĂ radh san t-siostam seo.
Canaidh sinn gu bheil iarrtas air choireigin aâ tighinn bho Graylog chun cho-òrdanaiche. Mar eisimpleir, tha sinn airson clĂ r-amais 2-3 mĂŹle sreathan.
Tha an co-òrdanaiche, Ă s deidh dha iarrtas fhaighinn bho Graylog, aâ ceasnachadh aâ mhaighstir: âAnns an iarrtas clĂ r-amais, shònraich sinn clĂ r-amais gu sònraichte, ach anns aâ bhileag airson a sgrĂŹobhadh cha deach a shònrachadh."
Tha am maighstir aâ freagairt: âSgrĂŹobh am fiosrachadh seo gu shard Ă ireamh 71,â Ă s deidh sin thèid a chuir gu dĂŹreach chun nĂłd dĂ ta buntainneach, far a bheil prĂŹomh shard Ă ireamh 71 suidhichte.
Ăs deidh sin tha an log malairt air ath-aithris gu mac-samhail-shard, a tha suidhichte ann an ionad dĂ ta eile.

Bidh iarrtas sgrĂšdaidh aâ tighinn bho Graylog chun cho-òrdanaiche. Bidh an co-òrdanaiche ga ath-stiĂšireadh a rèir aâ chlĂ r-amais, fhad âs a bhios Elasticsearch aâ cuairteachadh iarrtasan eadar a âbhun-shard agus mac-samhail-shard aâ cleachdadh a âphrionnsapal robin cruinn.

Bidh na nodan 180 aâ freagairt gu mĂŹ-chothromach, agus fhad âs a tha iad aâ freagairt, tha an co-òrdanaiche a âtional fiosrachadh a chaidh aâ spĂŹonadh a-mach âle nodan dĂ ta nas luaithe. Ăs deidh seo, nuair a tha am fiosrachadh gu lèir air ruighinn, no nuair a tha an t-iarrtas air Ăšine a ruighinn, bheir e a h-uile dad gu dĂŹreach don neach-dèiligidh.
Gu cuibheasach, bidh an siostam slĂ n seo aâ pròiseasadh cheistean sgrĂšdaidh airson na 48 uairean mu dheireadh ann an 300-400ms, Ă s aonais na ceistean sin le prĂŹomh chairt-fiadhaich.
FlĂšraichean le Elasticsearch: suidheachadh Java

Gus toirt air a h-uile cĂ il obrachadh mar a bha sinn ag iarraidh bho thĂšs, chuir sinn seachad Ăšine mhòr aâ deasbad measgachadh farsaing de rudan anns aâ bhuidheann.
Bha a 'chiad phà irt de na duilgheadasan a chaidh a lorg co-cheangailte ris an dòigh anns a bheil Java air a rèiteachadh ro-là imh ann an Elasticsearch.
Trioblaid a h-aon
Tha sinn air Ă ireamh mhòr de dhâ aithrisean fhaicinn, aig ĂŹre Lucene, nuair a tha obraichean cĂšl-fhiosrachaidh aâ ruith, gu bheil co-aonaidhean Lucene aâ fĂ iligeadh le mearachd. Aig an aon Ă m, bha e soilleir anns na logaichean gur e mearachd OutOfMemoryError a bha seo. Chunnaic sinn bho telemetry gu robh an hip saor, agus cha robh e soilleir carson a bha an obair seo a 'fĂ illigeadh.
Thionndaidh e a-mach gu bheil aonaidhean clĂ r-amais Lucene a âtachairt taobh a-muigh aâ chrom. Agus tha soithichean gu math cuingealaichte a thaobh nan goireasan a thathar a 'cleachdadh. Cha bâ urrainn ach carn a dhol a-steach do na goireasan sin (bha luach meud an tiĂšrr cha mhòr co-ionann ri RAM), agus thuit cuid de dhâ obraichean far-chrainn le mearachd riarachadh cuimhne mura robh iad airson adhbhar air choireigin aâ freagairt air an ~ 500MB a dhâ fhan ron ĂŹre as Ă irde.
Bha an rèiteachadh gu math beag: chaidh an Ïre de RAM a bha ri fhaighinn airson an t-soithich a mheudachadh, agus às deidh sin dhÏochuimhnich sinn gu robh eadhon na duilgheadasan sin againn.
Trioblaid a dhĂ
4-5 latha Ă s deidh an cruinneachadh a chuir air bhog, mhothaich sinn gun do thòisich nodan dĂ ta bho Ă m gu Ă m a âtuiteam a-mach Ă s aâ bhuidheann agus a dhol a-steach Ă s deidh 10-20 diogan.
Nuair a thòisich sinn ga dhèanamh a-mach, thionndaidh e a-mach nach eil smachd ann an dòigh sam bith air aâ chuimhne neo-chòmhnard seo ann an Elasticsearch. Nuair a thug sinn barrachd cuimhne don ghobhar, bha e comasach dhuinn na linneachan bufair dĂŹreach a lĂŹonadh le diofar fiosrachaidh, agus chaidh a ghlanadh dĂŹreach Ă s deidh don GC soilleir a chuir air bhog bho Elasticsearch.
Ann an cuid de chĂšisean, thug an obair seo Ăšine mhòr, agus rè na h-Ăšine seo chaidh aig aâ bhuidheann air an nĂłd seo a chomharrachadh mar a chaidh a leigeil ma sgaoil. Tha an duilgheadas seo air a mhĂŹneachadh gu math .
Bha am fuasgladh mar a leanas: chuir sinn bacadh air comas Java aâ mhòr-chuid de chuimhne a chleachdadh taobh a-muigh aâ charn airson na h-obraichean sin. Chuir sinn a-steach e gu 16 gigabytes (-XX: MaxDirectMemorySize = 16g), aâ dèanamh cinnteach gun deach GC soilleir a ghairm mòran na bu trice agus a phròiseasadh fada nas luaithe, agus mar sin gun a bhith aâ dèanamh dĂŹ-sheasmhachd air aâ bhuidheann tuilleadh.
Trioblaid trĂŹ
Ma tha thu aâ smaoineachadh gu bheil na duilgheadasan le ânodan aâ fĂ gail aâ bhuidheann aig an ĂŹre ris nach robh dĂšilâ seachad, tha thu ceĂ rr.
Nuair a shuidhich sinn an obair le clĂ ran-amais, thagh sinn mmapfs gu air pĂŹosan Ăšra le sgaradh mòr. Bha seo gu math blunder, oir nuair a bhios tu aâ cleachdadh mmapfs tha am faidhle air a mhapadh ann an RAM, agus an uairsin bidh sinn ag obair leis an fhaidhle mapa. Air sgĂ th seo, tha e a âtionndadh a-mach, nuair a dhâ fheuchas an GC ri stad a chuir air snĂ ithleanan san tagradh, thèid sinn chun Ă ite sĂ bhailte airson Ăšine mhòr, agus air an t-slighe thuige, stadaidh an tagradh a bhith a âfreagairt iarrtasan aâ mhaighstir a thaobh a bheil e beò. . A rèir sin, tha maighstir den bheachd nach eil an nĂłd an lĂ thair anns aâ bhuidheann tuilleadh. Ăs deidh seo, Ă s deidh 5-10 diogan, bidh an neach-cruinneachaidh sgudail ag obair, bidh an nĂłd a âtighinn beò, aâ dol a-steach don bhuidheann a-rithist agus a âtòiseachadh aâ tòiseachadh shards. Bha e uile aâ faireachdainn gu math coltach ri âan riochdachadh a bha sinn airidh airâ agus cha robh e iomchaidh airson dad dona.
Gus faighinn cuidhteas an giĂšlan seo, thionndaidh sinn an toiseach gu niofs Ă bhaisteach, agus an uairsin, nuair a rinn sinn imrich bhon chòigeamh dreach de Elastic chun an t-siathamh, dhâ fheuch sinn hybridfs, far nach deach an duilgheadas seo ath-riochdachadh. Faodaidh tu barrachd a leughadh mu na seòrsaichean stòraidh .
Trioblaid ceithir
An uairsin bha duilgheadas inntinneach eile ann ris an do lĂ imhsich sinn airson Ăšine nas Ă irde. Ghlac sinn e airson 2-3 mĂŹosan oir bha a phĂ tran gu tur do-chreidsinneach.
Aig amannan chaidh na co-òrdanaichean againn gu Full GC, mar as trice uaireigin às deidh lòn, agus cha do thill iad a-riamh às an sin. Aig an aon à m, nuair a chlà raich an dà il GC, bha e a 'coimhead mar seo: tha a h-uile dad a' dol gu math, gu math, gu math, agus an uairsin gu h-obann tha a h-uile dad a 'dol gu math dona.
An toiseach bha sinn a 'smaoineachadh gu robh droch chleachdaiche againn a bha a' cur air bhog iarrtas de sheòrsa air choreigin a chuir an co-òrdanaiche a-mach Ă modh obrach. ChlĂ raich sinn iarrtasan airson Ăšine mhòr, aâ feuchainn ri faighinn a-mach dè bha aâ tachairt.
Mar thoradh air an sin, thionndaidh e a-mach, aig an Ă m nuair a chuireas neach-cleachdaidh iarrtas mòr air bhog, agus a gheibh e gu co-òrdanaiche Elasticsearch sònraichte, bidh cuid de nodan a âfreagairt nas fhaide na cuid eile.
Agus fhad âs a tha an co-òrdanaiche aâ feitheamh ri freagairt bho na nodan gu lèir, bidh e a âtional na toraidhean a chaidh a chuir bho na nodan a tha air freagairt mu thrĂ th. Airson GC, tha seo aâ ciallachadh gu bheil ar pĂ train cleachdaidh tiĂšrr ag atharrachadh gu math luath. Agus cha bâ urrainn don GC a chleachd sinn dèiligeadh ris aâ ghnĂŹomh seo.
Is e an aon fhuasgladh a lorg sinn gus giĂšlan aâ bhuidheann atharrachadh san t-suidheachadh seo imrich gu JDK13 agus cleachdadh neach-cruinneachaidh sgudail Shenandoah. Dhâ fhuasgail seo an duilgheadas, sguir na co-òrdanaichean againn aâ tuiteam.
Seo far an tà inig na duilgheadasan le Java gu crÏch agus thòisich na duilgheadasan leud-bann.
"Aora" le Elasticsearch: throughput

Tha duilgheadasan le tar-chur aâ ciallachadh gu bheil an cruinneachadh againn ag obair gu seasmhach, ach aig Ă irdean anns an Ă ireamh de sgrĂŹobhainnean clĂ raichte agus aig Ă m gluasad, chan eil coileanadh gu leòr.
A âchiad chomharra a thachair: rè cuid deâ spreadhaidhean âann an cinneasachadh, nuair a thèid Ă ireamh mhòr de logaichean a chruthachadh gu h-obann, bidh am mearachd clĂ r-amais es_rejected_execution aâ tòiseachadh a âfrasadh gu tric ann an Graylog.
Bha seo air sgà th 's gu bheil thread_pool.write.queue air aon nód dà ta, gus an à m seo bidh Elasticsearch comasach air an iarrtas clà r-amais a phròiseasadh agus am fiosrachadh a luchdachadh suas chun shard air diosc, comasach air dÏreach 200 iarrtas a thasgadh gu bunaiteach. Agus anns Is e glè bheag a thathar ag rà dh mun pharameter seo. Chan eil ach an à ireamh as motha de snà ithleanan agus am meud bunaiteach air an comharrachadh.
Gu dearbh, chaidh sinn a thionndadh an luach seo agus fhuair sinn a-mach na leanas: gu sònraichte, anns an t-suidheachadh againn, tha suas ri 300 iarrtas air an tasgadh gu math, agus tha luach nas à irde duilich leis gu bheil sinn a-rithist ag itealaich a-steach gu Full GC.
A bharrachd air an sin, leis gur e baidse de theachdaireachdan a tha seo a ruigeas taobh a-staigh aon iarrtas, bha e riatanach Graylog a tweakadh gus nach sgrÏobh e gu tric agus ann an baidsean beaga, ach ann an baidsean mòra no aon uair gach 3 diog mura bheil am baidse fhathast coileanta. Anns a 'chÚis seo, tha e a' tionndadh a-mach gu bheil am fiosrachadh a tha sinn a 'sgrÏobhadh ann an Elasticsearch nach eil ri fhaotainn ann an dà dhiog, ach ann an còig (a tha freagarrach dhuinn gu math), ach tha an à ireamh de retrays a dh'fheumar a dhèanamh gus putadh tro mòr stac fiosrachaidh air a lughdachadh.
Tha seo gu sònraichte cudromach anns na h-amannan sin nuair a tha rudeigin air tuiteam an à iteigin agus ag aithris gu fiadhaich mu dheidhinn, gus nach faigh thu elastaig gu tur spamaichte, agus às deidh beagan Úine - nodan Graylog nach gabh obrachadh air sgà th bufairean clogged.
A bharrachd air an sin, nuair a bha na h-aon spreadhaidhean againn ann an cinneasachadh, fhuair sinn gearanan bho phrògramadairean agus luchd-dearbhaidh: aig an à m nuair a bha fÏor fheum aca air na logaichean sin, chaidh an toirt seachad gu math slaodach.
Thòisich iad ga thuigsinn. Air an aon là imh, bha e soilleir gun robh an dà chuid ceistean rannsachaidh agus ceistean clà r-amais air an giullachd, gu bunaiteach, air na h-aon innealan fiosaigeach, agus ann an dòigh no dhà bhiodh cuid de tharraing sÏos.
Ach dhâ fhaodadh seo a bhith air a sheachnadh gu ĂŹre leis gu bheil algairim air nochdadh anns an t-siathamh dreach de Elasticsearch a leigeas leat ceistean a sgaoileadh eadar nodan dĂ ta buntainneach nach eil a rèir prionnsapal robin cruinn air thuaiream (an soitheach a bhios aâ dèanamh clĂ r-amais agus a âcumail aâ bhun-sgoil. - faodaidh shard a bhith gu math trang, cha bhith dòigh ann air freagairt gu sgiobalta), ach an t-iarrtas seo a chuir air adhart gu soitheach nach eil cho luchdaichte le mac-samhail-shard, a fhreagras fada nas luaithe. Ann am faclan eile, rĂ inig sinn use_adaptive_replica_selection: fĂŹor.
Tha an dealbh leughaidh aâ tòiseachadh aâ coimhead mar seo:

Le bhith aâ gluasad chun algairim seo bha e comasach an Ăšine ceisteachaidh a leasachadh gu mòr anns na h-amannan sin nuair a bha sruth mòr de logaichean againn ri sgrĂŹobhadh.
Mu dheireadh, b 'e am prĂŹomh dhuilgheadas a bhith a' toirt air falbh an ionad dĂ ta gun phian.
Na bha sinn ag iarraidh bhon bhuidheann dĂŹreach Ă s deidh dhuinn ceangal a chall le aon DC:
- Ma tha maighstir gnĂ thach againn san ionad dĂ ta a dhâ fhĂ illig, thèid a ath-thaghadh agus a ghluasad mar Ă ite gu nĂłd eile ann an DC eile.
- Bidh am maighstir gu sgiobalta aâ toirt air falbh a h-uile nod nach fhaighear bhon bhuidheann.
- Stèidhichte air an fheadhainn a tha air fhĂ gail, tuigidh e: anns an ionad dĂ ta a chaidh air chall bha a leithid de shards bun-sgoile againn, brosnaichidh e gu sgiobalta mac-samhail de shards anns na h-ionadan dĂ ta a tha air fhĂ gail, agus cumaidh sinn oirnn aâ clĂ radh an dĂ ta.
- Mar thoradh air an seo, bidh gluasad sgrĂŹobhaidh is leughaidh aâ bhuidheann aâ dol sĂŹos mean air mhean, ach san fharsaingeachd obraichidh a h-uile cĂ il, ged a tha e slaodach, ach gu seasmhach.
Mar a thionndaidh e, bha sinn ag iarraidh rudeigin mar seo:

Agus fhuair sinn na leanas:

Ciamar a thachair e?
Nuair a thuit an ionad dĂ ta, thĂ inig ar maighstir gu bhith na bhotal.
ĐĐžŃоПŃ?
Is e an fhĂŹrinn gu bheil TaskBatcher aig a âmhaighstir, a tha an urra ri bhith aâ cuairteachadh gnĂŹomhan agus tachartasan sònraichte anns a âbhuidheann. Slighe sam bith de nĂłd, brosnachadh sam bith de shard bho mhac-samhail gu bun-sgoil, gnĂŹomh sam bith airson shard a chruthachadh an Ă iteigin - bidh seo uile aâ dol an toiseach gu TaskBatcher, far a bheil e air a phròiseasadh ann an sreath agus ann an aon snĂ ithlean.
Aig an Ă m a chaidh aon ionad dĂ ta a tharraing air ais, thionndaidh e a-mach gun robh a h-uile nod dĂ ta anns na h-ionadan dĂ ta a tha air fhĂ gail den bheachd gu robh e mar dhleastanas orra innse don mhaighstir âtha sinn air a leithid de shards agus leithid de nodan dĂ ta a chall.â
Aig an aon à m, chuir na nodan dà ta a bha air fhà gail am fiosrachadh seo gu lèir chun a 'mhaighstir là ithreach agus dh' fheuch iad ri feitheamh airson dearbhadh gun do ghabh e ris. Cha robh iad a 'feitheamh airson seo, oir fhuair am maighstir gnÏomhan nas luaithe na b' urrainn dha freagairt. Chuir na nodan Úine a-mach ag ath-aithris iarrtasan, agus cha do dh'fheuch am maighstir aig an à m seo eadhon ri freagairt, ach bha e gu tur air a ghabhail a-steach don obair a bhith a 'rèiteach iarrtasan le prÏomhachas.
Ann an cruth deireannach, thionndaidh e a-mach gun do chuir na nodan dĂ ta spam air a âmhaighstir chun na h-ĂŹre gun deach e a-steach gu lĂ n GC. Ăs deidh sin, ghluais ar prĂŹomh dhreuchd chun ath nĂłd, dĂŹreach thachair an aon rud dha, agus mar thoradh air an sin thuit am buidheann gu tur.
Ghabh sinn tomhasan, agus ro dhreach 6.4.0, far an deach seo a shuidheachadh, bha e gu leòr dhuinn aig an aon à m dÏreach 10 nodan dà ta a thoirt a-mach à 360 gus an cruinneachadh a dhÚnadh gu tur.
Bha e aâ coimhead rudeigin mar seo:

Ăs deidh dreach 6.4.0, far an deach am biast uamhasach seo a shocrachadh, sguir nodan dĂ ta a bhith aâ marbhadh aâ mhaighstir. Ach cha do rinn sin e ânas glice.â Is e sin: nuair a bheir sinn a-mach nodan dĂ ta 2, 3 no 10 (Ă ireamh sam bith ach aon), gheibh am maighstir aâ chiad teachdaireachd a tha ag rĂ dh gu bheil nĂłd A air falbh, agus aâ feuchainn ri nĂłd B, nĂłd C innse mu dheidhinn seo, nĂłd D.
Agus an-drĂ sta, chan urrainnear dèiligeadh ri seo ach le bhith aâ suidheachadh Ăšine airson oidhirpean innse do chuideigin mu rudeigin, co-ionann ri timcheall air 20-30 diogan, agus mar sin smachd a chumail air astar an ionad dĂ ta aâ gluasad a-mach Ă s aâ bhuidheann.
Ann am prionnsabal, tha seo a 'freagairt ris na riatanasan a chaidh a thoirt don toradh deireannach an toiseach mar phà irt den phròiseact, ach bho shealladh "saidheans fÏor" is e bug a tha seo. A bha, leis an t-slighe, air a shuidheachadh gu soirbheachail leis an luchd-leasachaidh ann an dreach 7.2.
A bharrachd air an sin, nuair a chaidh nòta dĂ ta sònraichte a-mach, thionndaidh e a-mach gu robh a bhith aâ sgaoileadh fiosrachadh mun t-slighe a-mach na bu chudromaiche na bhith ag innse don bhuidheann gu lèir gu robh a leithid de shards bun-sgoile air (gus mac-samhail-shard a bhrosnachadh ann an dĂ ta eile. ionad sa bhun-sgoil, agus ann am fiosrachadh faodar a sgrĂŹobhadh orra).
Mar sin, nuair a tha a h-uile cĂ il air bĂ sachadh mar-thĂ , chan eil na nodan dĂ ta a chaidh an leigeil ma sgaoil air an comharrachadh sa bhad mar seann. Mar sin, feumaidh sinn feitheamh gus am bi a h-uile pings air a dhol a-mach gu na nodan dĂ ta a chaidh a leigeil ma sgaoil, agus dĂŹreach Ă s deidh sin tòisichidh ar cruinneachadh ag innse dhuinn gu bheil, an sin, agus an sin feumaidh sinn cumail oirnn aâ clĂ radh fiosrachaidh. Faodaidh tu barrachd a leughadh mu dheidhinn seo .
Mar thoradh air an sin, bheir an obair gus ionad dà ta a tharraing air ais an-diugh timcheall air 5 mionaidean aig à m luaisgean. Airson colossus cho mòr agus cho sgiobalta, is e toradh math a tha seo.
Mar thoradh air an sin, thĂ inig sinn chun cho-dhĂšnadh a leanas:
- Tha 360 nodan dĂ ta againn le diosgan 700 gigabyte.
- 60 co-òrdanaiche airson trafaic a stiÚireadh tro na h-aon nodan dà ta sin.
- 40 maighstirean a dhâ fhĂ g sinn mar sheòrsa de dhĂŹleab bho dhreachan ro 6.4.0 - gus a bhith beò le toirt air falbh an ionad dĂ ta, bha sinn ullaichte gu inntinn grunn innealan a chall gus a bhith cinnteach gum biodh cuòram de mhaighstirean againn eadhon ann an an suidheachadh as miosa
- Chaidh coinneachadh ri oidhirpean sam bith air dreuchdan a chur còmhla air aon shoitheach leis an fhĂŹrinn gum biodh an nĂłd aâ briseadh fo luchd nas luaithe no nas fhaide.
- Bidh an cruinneachadh gu lèir aâ cleachdadh meud mòr de 31 gigabytes: dhâ adhbhraich a h-uile oidhirp air aâ mheud a lughdachadh an dĂ rna cuid a bhith aâ marbhadh cuid de nodan air ceistean sgrĂšdaidh trom leis aâ phrĂŹomh chairt-fiadhaich no aâ faighinn an inneal-brisidh ann an Elasticsearch fhèin.
- A bharrachd air an sin, gus dèanamh cinnteach Ă coileanadh sgrĂšdaidh, dhâ fheuch sinn ris an Ă ireamh de stuthan anns aâ bhraisle a chumail cho beag sa ghabhas, gus a bhith aâ lĂ imhseachadh cho beag de thachartasan sa ghabhas anns aâ bhotal a fhuair sinn sa mhaighstir.
Mu dheireadh mu sgrĂšdadh
Gus dèanamh cinnteach gun obraich seo uile mar a bha dĂšil, bidh sinn aâ cumail sĂšil air na leanas:
- Bidh gach nĂłd dĂ ta ag aithris don sgòth againn gu bheil e ann, agus tha a leithid de shards air. Nuair a chuireas sinn Ă s do rudeigin an Ă iteigin, tha an cruinneachadh ag aithris Ă s deidh 2-3 diogan gun do chuir sinn Ă s do nodan 2, 3, agus 4 ann am meadhan A - tha seo aâ ciallachadh nach urrainn dhuinn ann an ionadan dĂ ta eile cuir Ă s do na nodan sin air nach eil ach aon shard. clĂŹ.
- Le eòlas air nĂ dar giĂšlan aâ mhaighstir, bidh sinn aâ coimhead gu faiceallach air an Ă ireamh de ghnĂŹomhan a tha ri thighinn. Leis gu bheil eadhon aon ghnĂŹomh steigte, mura toir e Ăšine seachad ann an Ăšine, gu teòiridheach ann an cuid de shuidheachaidhean èiginneach faodaidh e a bhith na adhbhar, mar eisimpleir, nach obraich brosnachadh mac-samhail de shard sa bhun-sgoil, agus is e sin as coireach nach stad clĂ r-amais ag obair.
- Bidh sinn cuideachd aâ coimhead gu dlĂšth air dĂ il luchd-cruinneachaidh sgudail, oir tha duilgheadasan mòra air a bhith againn mu thrĂ th le seo rè optimization.
- Aâ diĂšltadh le snĂ ithlean gus tuigsinn ro-lĂ imh cĂ ite a bheil an cnap-starra.
- Uill, metrics Ă bhaisteach leithid tiĂšrr, RAM agus I / O.
Nuair a bhios tu aâ togail sgrĂšdadh, feumaidh tu aire a thoirt do fheartan Thread Pool ann an Elasticsearch. aâ toirt cunntas air roghainnean rèiteachaidh agus luachan bunaiteach airson sgrĂšdadh is clĂ r-amais, ach tha e gu tur sĂ mhach mu dheidhinn thread_pool.management Bidh na snĂ ithleanan sin aâ pròiseasadh, gu sònraichte, ceistean mar _cat/shards agus feadhainn eile den aon seòrsa, a tha goireasach a chleachdadh nuair a thathar aâ sgrĂŹobhadh sgrĂšdadh. Mar as motha a tha an cruinneachadh, is ann as motha a bhios iarrtasan mar sin air an cur an gnĂŹomh gach aonad Ăšine, agus chan e a-mhĂ in gu bheil an thread_pool.management a chaidh ainmeachadh roimhe air a thaisbeanadh anns na sgrĂŹobhainnean oifigeil, ach tha e cuideachd air a chuingealachadh gu bunaiteach gu 5 snĂ ithleanan, a thèid a rèiteachadh gu sgiobalta Ă s deidh sin. dè an sgrĂšdadh a stadas ag obair gu ceart.
Na tha mi airson a rĂ dh sa cho-dhĂšnadh: rinn sinn e! Bha e comasach dhuinn inneal a thoirt don luchd-prògramaidh agus an luchd-leasachaidh againn a bheir, ann an suidheachadh sam bith cha mhòr, fiosrachadh gu sgiobalta agus gu earbsach mu na tha aâ tachairt ann an cinneasachadh.
Bha, thionndaidh e a-mach gu bhith gu math toinnte, ach, a dhâ aindeoin sin, chaidh againn air ar miannan a chuir a-steach do thoraidhean a th âann, nach robh againn ri ath-sgrĂŹobhadh agus ath-sgrĂŹobhadh dhuinn fhĂŹn.

Source: www.habr.com
