Mar sin cruinnichidh tu slatan-tomhais. Mar a tha sinn. Bidh sinn cuideachd a 'tional slatan-tomhais. Gu dearbh, riatanach airson gnìomhachas. An-diugh bruidhnidh sinn mun chiad cheangal den t-siostam sgrùdaidh againn - frithealaiche cruinneachaidh a tha co-chosmhail ri statsd
Bho na h-artaigilean againn roimhe (
Tagradh 1. Sguir Github, leasaiche a’ phròiseict, a bhith a’ toirt taic dha: a’ foillseachadh pìosan is rèiteachaidhean, a’ gabhail ris an fheadhainn againne agus (chan e a-mhàin sinne) PR. Anns na beagan mhìosan a dh ’fhalbh (an àiteigin bhon Ghearran-Màrt 2018), tha gnìomhachd air tòiseachadh a-rithist, ach roimhe sin bha faisg air 2 bhliadhna de shàmhchair iomlan. A bharrachd air an sin, tha am pròiseact ga leasachadh
Tagradh 2. Cruinneas àireamhachadh. Bidh Brubeck a’ cruinneachadh 65536 luachan gu h-iomlan airson cruinneachadh. Anns a 'chùis againn, airson cuid de mheatairean, rè na h-ùine cruinneachaidh (30 diogan), is dòcha gun ruig mòran a bharrachd luachan (1 aig an ìre as àirde). Mar thoradh air an samplachadh seo, tha coltas gu bheil na luachan as àirde agus as ìsle gun fheum. Mar eisimpleir, mar seo:
Mar a bha
Mar a bu chòir dha a bhith
Airson an aon adhbhar, mar as trice bidh suimean air an tomhas gu ceàrr. Cuir ris an seo bug le tar-shruth fleòdraidh 32-bit, a bhios mar as trice a’ cur an fhrithealaiche gu segfault nuair a gheibh thu meatrach a tha coltach ri neo-chiontach, agus bidh a h-uile càil a’ fàs glè mhath. Co-dhiù, chan eil am biast air a rèiteachadh.
Agus, mu dheireadh, Tagradh X. Aig àm sgrìobhaidh, tha sinn deiseil airson a thaisbeanadh dha na 14 buileachadh statsd obrach nas lugha no nas lugha a b’ urrainn dhuinn a lorg. Smaoinichidh sinn gu bheil cuid de bhun-structar singilte air fàs cho mòr is nach eil gabhail ri 4 millean MPS tuilleadh gu leòr. No eadhon mura h-eil e air fàs fhathast, ach tha na meatrach cho cudromach dhut mar-thà gum faod eadhon crìonadh goirid, 2-3 mionaid anns na clàran a bhith èiginneach mu thràth agus ag adhbhrachadh trom-inntinn do-sheachanta am measg mhanaidsearan. Leis gur e obair gun taing a th’ ann a bhith a’ làimhseachadh trom-inntinn, tha feum air fuasglaidhean teignigeach.
An toiseach, fulangas sgàinidhean, gus nach bi duilgheadas obann air an t-seirbheisiche ag adhbhrachadh apocalypse zombie inntinn-inntinn san oifis. San dàrna h-àite, a bhith comasach air gabhail ri còrr air 4 millean MPS, gun a bhith a’ cladhach gu domhainn a-steach do chruach lìonra Linux agus gu socair a’ fàs “ann am farsaingeachd” chun mheud a tha a dhìth.
Leis gu robh àite againn airson sgèileadh, chuir sinn romhainn tòiseachadh le fulangas sgàinidhean. “A-MHÀIN! Fulangas lochdan! Tha e sìmplidh, is urrainn dhuinn a dhèanamh," smaoinich sinn agus chuir sinn air bhog frithealaichean 2, a ’togail leth-bhreac de brubeck air gach fear. Gus seo a dhèanamh, bha againn ri trafaic le meatrach a chopaigeadh chun an dà fhrithealaiche agus eadhon sgrìobhadh airson seo
Ma smaoinicheas tu beagan mun duilgheadas agus aig an aon àm a 'cladhach sneachda le sluasaid, is dòcha gun tig am beachd follaiseach a leanas gu inntinn: feumaidh tu statsd a dh' obraicheas ann am modh sgaoilte. Is e sin, fear a chuireas an gnìomh sioncronadh eadar nodan ann an ùine agus meatrach. “Gu dearbh, is dòcha gu bheil fuasgladh mar seo ann mu thràth," thuirt sinn agus chaidh sinn gu Google…. Agus cha do lorg iad dad. Às deidh dhut a dhol tro na sgrìobhainnean airson diofar statsd (
Agus an uairsin chuimhnich sinn mun “dèideag” statsd - bioyino, a chaidh a sgrìobhadh aig an hackathon Just for Fun (chaidh ainm a ’phròiseict a chruthachadh leis an sgriobt ro thoiseach an hackathon) agus thuig sinn gu robh feum èiginneach againn air na statsd againn fhèin. Airson dè?
- oir tha ro bheag de chlonan statsd air an t-saoghal,
- leis gu bheil e comasach an fhulangas agus an scalability locht a tha thu ag iarraidh no faisg air a thoirt seachad (a’ toirt a-steach sioncronadh meatrach iomlan eadar frithealaichean agus fuasgladh fhaighinn air an duilgheadas a thaobh còmhstri a chuir),
- leis gu bheil e comasach tomhasan a thomhas nas cinntiche na tha brubeck a’ dèanamh,
- oir is urrainn dhut staitistig nas mionaidiche a chruinneachadh thu fhèin, rud nach tug brubeck dhuinn gu practaigeach,
- oir bha cothrom agam an tagradh deuchainn-lann sgèile sgaoilte agam fhèin a phrògramadh, nach dèan gu tur ath-aithris air ailtireachd hyperfor eile den aon seòrsa ... uill, sin agad e.
Dè a sgrìobhadh air? Gu dearbh, ann an Rust. Carson?
- oir bha fuasgladh prototype ann mu thràth,
- oir bha ùghdar an artaigil mar-thà eòlach air Rust aig an àm sin agus bha e deònach rudeigin a sgrìobhadh ann airson riochdachadh le cothrom a chuir ann an stòr fosgailte,
- leis nach eil cànanan le GC freagarrach dhuinn air sgàth nàdar na trafaic a gheibhear (cha mhòr ann an àm fìor) agus tha stadan GC gu ìre mhòr neo-iomchaidh,
- oir feumaidh tu an coileanadh as àirde a tha coltach ri C
- leis gu bheil Rust a’ toirt dhuinn concurrency gun eagal, agus nan tòisicheadh sinn ga sgrìobhadh ann an C / C ++, bhiodh sinn air barrachd so-leòntachd a thoirt a-steach, tar-chuir bufair, suidheachadh cinnidh agus faclan eagallach eile na brubeck.
Bha argamaid ann cuideachd an aghaidh Rust. Cha robh eòlas sam bith aig a 'chompanaidh air pròiseactan a chruthachadh ann an Rust, agus a-nis chan eil sinn an dùil a chleachdadh anns a' phrìomh phròiseact. Mar sin, bha eagal mòr ann nach obraich dad a-mach, ach chuir sinn romhainn cothrom a ghabhail agus feuchainn.
Chaidh ùine seachad...
Mu dheireadh, às deidh grunn oidhirpean air fàiligeadh, bha a’ chiad dreach obrach deiseil. Dè a thachair? Seo mar a thachair.
Bidh gach nód a’ faighinn a sheata de mheatairean fhèin agus gan cruinneachadh, agus chan eil e a’ cruinneachadh mheatairean airson an t-seòrsa sin far a bheil an làn sheata aca a dhìth airson a’ cho-chruinneachaidh dheireannaich. Tha na nodan ceangailte ri chèile le seòrsa de phròtacal glas sgaoilte, a leigeas leat an aon fhear a thaghadh (an seo dh’ èigh sinn) a tha airidh air meatrach a chuir chun Fhìor Mhòir. Tha an duilgheadas seo ga fhuasgladh an-dràsta le
Tha pacaidean UDP le meatrach mì-chothromach eadar nodan air uidheamachd lìonra tro Round Robin sìmplidh. Gu dearbh, chan eil bathar-cruaidh an lìonraidh a’ parsadh susbaint nam pacaidean agus mar sin faodaidh iad tòrr a bharrachd air pacaidean 4M gach diog a tharraing, gun luaidh air meatrach air nach eil fios aige idir. Ma bheir sinn aire nach tig na meatrach aon aig aon àm anns gach pacaid, chan eil sinn a’ faicinn duilgheadasan coileanaidh san àite seo. Ma thuiteas frithealaiche, lorgaidh an inneal lìonra gu sgiobalta (taobh a-staigh 1-2 diogan) an fhìrinn seo agus bheir e air falbh am frithealaiche a chaidh a bhualadh bho chuairteachadh. Mar thoradh air an seo, faodar nodan fulangach (ie, neo-stiùiriche) a thionndadh air agus dheth gu practaigeach gun a bhith mothachail air tarraing sìos air na clàran. Tha an ìre as àirde a chailleas sinn mar phàirt de na meatrach a thàinig a-steach aig an diog mu dheireadh. Cruthaichidh call / dùnadh / atharrachadh obann stiùiriche fhathast neo-riaghailteachd bheag (tha an eadar-ama 30 diog fhathast a-mach à sioncranachadh), ach ma tha conaltradh eadar nodan, faodar na duilgheadasan sin a lughdachadh, mar eisimpleir, le bhith a’ cur a-mach pacaidean sioncronaidh .
Beagan mu structar a-staigh. Tha an tagradh, gu dearbh, ioma-snàithleach, ach tha an ailtireachd snàithlean eadar-dhealaichte bhon fheadhainn a chleachdar ann am brubeck. Tha na snàithleanan ann am brubeck mar an ceudna - tha uallach air gach fear dhiubh airson cruinneachadh fiosrachaidh agus cruinneachadh. Ann am bioyino, tha luchd-obrach air an roinn ann an dà bhuidheann: an fheadhainn le uallach airson an lìonra agus an fheadhainn le uallach airson cruinneachadh. Leigidh an roinn seo leat an tagradh a riaghladh ann an dòigh nas sùbailte a rèir an seòrsa meatrach: far a bheil feum air cruinneachadh dian, faodaidh tu luchd-cruinneachaidh a chuir ris, far a bheil tòrr trafaic lìonraidh, faodaidh tu an àireamh de shruthan lìonra a chuir ris. Aig an àm seo, air na frithealaichean againn bidh sinn ag obair ann an lìonra 8 agus sruthan cruinneachaidh 4.
Tha am pàirt cunntaidh (an urra ri cruinneachadh) gu math dòrainneach. Tha bufairean air an lìonadh le sruthan lìonra air an cuairteachadh am measg sruthan cunntaidh, far am bi iad air am parsadh agus air an cruinneachadh às deidh sin. Ma thèid iarraidh, thèid metrics a thoirt seachad airson a chuir gu nodan eile. Tha seo uile, a’ gabhail a-steach a bhith a’ cur dàta eadar nodan agus ag obair leis a’ Chonsal, air a dhèanamh gu neo-chinnteach, a’ ruith air an fhrèam
Chaidh mòran a bharrachd dhuilgheadasan adhbhrachadh leis a’ phàirt lìonra le uallach airson meatrach fhaighinn. B’ e am prìomh amas airson sruthan lìonra a sgaradh gu buidhnean fa-leth am miann an ùine a bhios sruth a’ caitheamh a lughdachadh chan eil gus dàta bhon t-socaid a leughadh. Dh’ fhalbh roghainnean a’ cleachdadh UDP asyncronach agus recvmsg cunbhalach gu sgiobalta: bidh a’ chiad fhear ag ithe cus CPU àite-cleachdaidh airson giullachd tachartais, feumaidh an dàrna fear cus suidsichean co-theacsa. Mar sin tha e a-nis air a chleachdadh
thuirt
Anns na roghainnean bunaiteach, tha meud bufair air a shuidheachadh gu bhith gu math mòr. Ma cho-dhùnas tu gu h-obann feuchainn air an fhrithealaiche thu fhèin, is dòcha gun tig thu tarsainn air an fhìrinn às deidh dhut àireamh bheag de mheatairean a chuir a-steach, nach ruig iad Graphite, a ’fuireach ann am bufair sruth an lìonraidh. Gus obrachadh le àireamh bheag de mheatrics, feumaidh tu bufsize agus meud ciudha gnìomh a shuidheachadh gu luachan nas lugha anns an rèiteachadh.
Mu dheireadh, cuid de chlàran airson leannanan cairt.
Staitistig air an àireamh de mheatairean a tha a’ tighinn a-steach airson gach frithealaiche: còrr air 2 mhillean MPS.
A’ cur às do aon de na nodan agus ag ath-riarachadh mheatairean a tha a’ tighinn a-steach.
Staitistig air meatrach a-mach: chan eil ach aon nód an-còmhnaidh a ’cur - ceannard an ionnsaigh.
Staitistigean mu obrachadh gach nód, a 'gabhail a-steach mearachdan ann an diofar mhodalan siostam.
Mion-fhiosrachadh air meatrach a tha a’ tighinn a-steach (tha ainmean meatrach falaichte).
Dè tha sinn an dùil a dhèanamh le seo uile an ath rud? Gu dearbh, sgrìobh còd, damn ...! Bhathar an dùil an toiseach gum biodh am pròiseact fosgailte agus mairidh e mar sin fad a bheatha. Tha na planaichean sa bhad againn a’ toirt a-steach atharrachadh chun dreach againn fhèin de Raft, ag atharrachadh a’ phròtacal co-aoisean gu fear nas so-ghiùlain, a’ toirt a-steach staitistig a-staigh a bharrachd, seòrsachan ùra de mheatrics, rèiteachadh bug agus leasachaidhean eile.
Gu dearbh, tha fàilte air a h-uile duine cuideachadh le leasachadh a 'phròiseict: cruthaich PR, Cùisean, ma ghabhas e dèanamh, freagraidh sinn, leasaichidh sinn, msaa.
Le sin air a ràdh, is e sin a h-uile duine, ceannaich na h-ailbhean againn!
Source: www.habr.com