Buidheann Elasticsearch 200 TB+

Buidheann Elasticsearch 200 TB+

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 podman chan ann air innealan corporra, ach air adhart toradh neòil fhèin aon-sgòth. 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:

Buidheann Elasticsearch 200 TB+

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.

Buidheann Elasticsearch 200 TB+

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:

Buidheann Elasticsearch 200 TB+

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.

Buidheann Elasticsearch 200 TB+

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:

Buidheann Elasticsearch 200 TB+

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:

Buidheann Elasticsearch 200 TB+

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.

Buidheann Elasticsearch 200 TB+

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.

Buidheann Elasticsearch 200 TB+

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

Buidheann Elasticsearch 200 TB+

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 an seo.

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 lughdaich an ùine rannsachaidh 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 an seo.

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

Buidheann Elasticsearch 200 TB+

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 Sgrìobhainnean Elasticsearch 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:

Buidheann Elasticsearch 200 TB+

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:

Buidheann Elasticsearch 200 TB+

Agus fhuair sinn na leanas:

Buidheann Elasticsearch 200 TB+

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:

Buidheann Elasticsearch 200 TB+

À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 an 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. Sgrìobhainnean 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.

Buidheann Elasticsearch 200 TB+

Source: www.habr.com

Cuir beachd ann