Markaa waxaad ururinaysaa cabbirada. Sida aan nahay. Waxaan sidoo kale aruurinnaa cabbirada. Dabcan, lagama maarmaanka u ah ganacsiga. Maanta waxaan ka hadli doonaa isku xirka ugu horreeya ee nidaamkayaga kormeerka - server-ka isku-darka ku habboon statsd
Qormadeenii hore (
Sheegasho 1. Github, horumariyaha mashruuca, ayaa joojiyay taageeradiisa: daabacaadda balastarrada iyo hagaajinta, aqbalka annaga iyo (maaha oo keliya) PR. Dhowrkii bilood ee la soo dhaafay (meel laga soo bilaabo Febraayo-Maarso 2018), dhaqdhaqaaqa ayaa dib u soo laabtay, laakiin ka hor waxaa jiray ku dhawaad ββ2 sano oo xasilloon. Intaa waxaa dheer, mashruuca waa la horumarinayaa
Sheegasho 2. Saxnimada xisaabinta. Brubeck wuxuu ururiyaa wadarta 65536 qiyam ee isku-darka. Xaaladeena, halbeegyada qaar, inta lagu jiro xilliga isku-darka (30 ilbiriqsi), qiimayaal aad u badan ayaa imaan kara (1 meesha ugu sarreysa). Natiijadii shaybaarkan, qiimaha ugu sarreeya iyo kan ugu yar ayaa u muuqda mid aan waxtar lahayn. Tusaale ahaan, sida tan:
Sidii ay ahayd
Siday ahaan lahayd
Isla sababtaas awgeed, lacagta guud ahaan waxaa loo xisaabiyaa si khaldan. Ku dar halkan cayayaan leh qulqul sabeyn 32-bit ah, kaas oo guud ahaan u dira serferka si uu u noqdo segfault marka la helo cabbir u muuqda mid aan waxba galabsan, wax walbana way fiicnaanayaan. Cayayaanka, dhanka kale, lama hagaajin.
Ugu dambeyntii Sheegashada X. Waqtiga qorista, waxaan diyaar u nahay inaan u soo bandhigno dhammaan 14 ka badan ama ka yar fulinta statsd ee aan awoodnay inaan helno. Aynu qiyaasno in qaar ka mid ah kaabayaasha dhaqaalaha ay si aad ah u koreen oo aqbalida 4 milyan MPS kuma filna. Ama xitaa haddii aysan weli korin, laakiin cabbirada ayaa durbaba aad muhiim ugu ah adiga oo xitaa gaaban, 2-3 daqiiqadood oo jaantusyada ku jira waxay mar hore noqon karaan kuwo muhiim ah oo sababi kara niyad-jabka aan la dabooli karin ee maamulayaasha dhexdooda. Maadaama daaweynta niyad-jabku ay tahay hawl aan mahad lahayn, xalal farsamo ayaa loo baahan yahay.
Marka hore, dulqaadka qaladka, si dhibaatada lama filaanka ah ee server-ka aysan u keenin apocalypse zombie maskaxeed ee xafiiska. Marka labaad, miisaanka si ay u awoodaan inay aqbalaan in ka badan 4 milyan MPS, iyada oo aan si qoto dheer loo qodin xirmooyinka shabakadda Linux oo si deggan u koraya "ballaaran" cabbirka loo baahan yahay.
Maadaama aan haysanay meel aan ku cabirno, waxaan go'aansanay inaan ku bilowno dulqaadka qaladka. " KU SAABSAN! Dulqaadka qaladka! Way fududahay, waan samayn karnaa, "Waxaan u maleynay oo aan bilownay 2 server, kor u qaadista nuqul ka mid ah brubeck. Si tan loo sameeyo, waxay ahayd inaan koobiyayno taraafig leh metrik labada adeegayaal oo aan xitaa u qorno tan
Haddii aad ka fikirto wax yar oo ku saabsan dhibaatada oo isla markaaba baraf ku qodo majarafad, ka dibna fikradda cad ee soo socota ayaa laga yaabaa inay maskaxda ku hayso: waxaad u baahan tahay statsd kaas oo ka shaqayn kara habka loo qaybiyay. Taasi waa, mid fulinaya is-waafajinta noodhka wakhtiga iyo cabbirada. "Dabcan, xal noocan oo kale ah waxay u badan tahay inuu hore u jiray," ayaanu nidhi oo aanu tagnay Google-kaβ¦. Waxna ma ay helin. Ka dib markii loo maro dukumeentiyada statsd kala duwan (
Kadibna waxaan xasuusanay wax ku saabsan "toy" statsd - bioyino, kaas oo lagu qoray Just for Fun hackathon (magaca mashruuca waxaa soo saaray qoraalka ka hor bilawga hackathon) waxaanan ogaanay inaan si degdeg ah ugu baahanahay statsd noo gaar ah. Maxay?
- sababtoo ah waxaa jira tiro aad u yar oo ka mid ah clones-ka adduunka,
- sababtoo ah waxaa suurtogal ah in la bixiyo waxa la rabo ama u dhow dulqaadka cilada la rabo iyo miisaanka (oo ay ku jirto isku-dhafka cabbirada isku-darka ah ee u dhexeeya server-yada iyo xallinta dhibaatada diritaanka isku dhacyada),
- sababtoo ah waxaa suurtogal ah in si sax ah loo xisaabiyo mitirka brubeck,
- sababtoo ah adigu waxaad ururin kartaa tirokoobyo faahfaahsan oo dheeraad ah, taas oo brubeck ficil ahaan aan na siin,
- sababtoo ah waxaan fursad u helay in aan barnaamijiyo hyperperformance u gaar ah codsiga shaybaadhka qaybiyey, taas oo aan si buuxda u soo celin doonaa qaab-dhismeedka hyperfor kale oo la mid ah ... si fiican, taasi waa.
Maxaa lagu qoraa? Dabcan, in Rust. Waa maxay sababtu?
- sababtoo ah waxaa hore u jiray xal tusaale ah,
- sababtoo ah qoraaga maqaalku wuxuu hore u yaqaanay miridhku waagaas wuxuuna u heellanaa inuu wax ku qoro si loo soo saaro isagoo fursad u helaya inuu ku dhejiyo ilo furan.
- sababtoo ah luqadaha GC naguma habboona sababtoo ah dabeecadda gaadiidka la helay (ku dhawaad ββββwaqtiga dhabta ah) iyo joojinta GC waa wax aan la aqbali karin,
- sababtoo ah waxaad u baahan tahay waxqabadka ugu sarreeya ee u dhigma C
- sababtoo ah miridhku waxa uu ina siinaya lacag aan baqdin lahayn, oo hadii aan ku bilowno qorista C/C++, waxa aanu la kulmi lahayn nuglaanta xitaa ka sii badan, qulqulka xad dhaafka ah, xaaladaha jinsiyada iyo ereyo kale oo cabsi leh marka loo eego brubeck.
Waxa kale oo jirtay dood ka dhan ah Daxalka. Shirkaddu wax khibrad ah uma lahayn abuurista mashaariicda Rust, iyo hadda sidoo kale ma qorsheyneyno inaan u isticmaalno mashruuca ugu weyn. Sidaa darteed, waxaa jirtay cabsi weyn oo ah in aanay waxba soconayn, laakiin waxaan go'aansanay inaan fursad qaadanno oo aan isku daynay.
Waqti ayaa dhaafey...
Ugu dambeyntii, dhowr isku day oo fashilmay ka dib, nuqulkii ugu horreeyay ee shaqada ayaa diyaar ahaa. Maxaa dhacay? Sidan ayaa dhacday.
Nod kastaa wuxuu helayaa jaangooyooyin u gaar ah oo urursada, mana soo ururiyo cabbiraadaha noocyadaas halka xirmooyinkooda oo buuxa looga baahan yahay isu geynta kama dambaysta ah. Nodes-ku waxay ku xiran yihiin midba midka kale nooc ka mid ah borotokoolka qufulka la qaybiyey, kaas oo kuu ogolaanaya inaad ka dhex doorato midka kaliya ee (halkan waannu ku qaylinnay) kaas oo u qalma in loo diro mitirka Weyn. Dhibaatadan hadda waxaa lagu xalin karaa
Xirmooyinka UDP ee leh mitirku waa isku dheeli tirnayn inta u dhaxaysa qanjidhada qalabka shabakada iyada oo loo marayo Round Robin fudud. Dabcan, qalabka shabakadu ma kala saaro waxa ku jira baakadaha, sidaas darteedna waxa uu soo jiidi karaa wax ka badan baakadaha 4M ilbiriqsi kasta, iyada oo aan la xusin qiyaasaha kuwaas oo aanay waxba ka garanayn. Haddii aan xisaabta ku darno in cabbiradu aysan midba mar ku imaan xirmo kasta, markaa ma aragno wax dhibaato ah oo waxqabadka meeshan ah. Haddii server-ku burburo, aaladda shabakadu si dhakhso ah (1-2 ilbiriqsi gudahood) waxay ogaanaysaa xaqiiqadan oo waxay ka saartaa server-ka burburay wareegga. Natiijadu waxay tahay, qanjidhada dadban (ie, kuwa aan hogaamiye ahayn) noodhadhka waa la dami karaa oo dami karaa si ficil ahaan ah iyada oo aan la dareemin hoos u dhigista jaantusyada. Inta ugu badan ee aan luminay waa qayb ka mid ah cabbirada soo galay ilbiriqsigii ugu dambeeyay. Luminta/damida lama filaanka ah ee hoggaamiyaha ayaa weli abuuri doonta cillad yar (30-ka ilbiriqsi weli waa ka maqan yahay), laakiin haddii uu jiro xiriir ka dhexeeya noodyada, dhibaatooyinkan waa la yareeyn karaa, tusaale ahaan, iyada oo la dirayo xirmooyinka isku-dhafka. .
Wax yar oo ku saabsan qaabka gudaha. Codsiga, dabcan, waa la isku duubay, laakiin qaab dhismeedka duntu wuu ka duwan yahay kan loo isticmaalo brubeck. Xadhkaha ku jira brubeck waa isku mid - mid kasta oo iyaga ka mid ah ayaa mas'uul ka ah ururinta macluumaadka iyo isku-darka labadaba. Bioyono, shaqaaluhu waxay u qaybsan yihiin laba kooxood: kuwa mas'uulka ka ah shabakadda iyo kuwa mas'uulka ka ah isku-darka. Qeybtaani waxay kuu ogolaaneysaa inaad si dabacsan u maareyso codsiga iyadoo ku xiran nooca mitirka: meesha isku-darka degdega ah loo baahan yahay, waxaad ku dari kartaa isku-darka, halkaas oo ay jiraan taraafikada shabakado badan, waxaad ku dari kartaa tirada qulqulka shabakada. Waqtigan xaadirka ah, server-yadayada waxaan ka shaqeynaa 8 shabakad iyo 4 isku-dar ah isku-darka.
Qaybta tirinta (mas'uulka ka ah isku-darka) waa mid caajis badan. Xirmooyinka ay buuxiyeen qulqulka shabakadu waxay u qaybsan yihiin tirinta qulqulka, halkaas oo ay ka dib kala soocaan oo la isku daray. Marka la codsado, cabbirada ayaa la bixiyaa si loogu diro qanjidhada kale. Waxaas oo dhan, oo ay ku jiraan dirista xogta u dhaxaysa noodhka iyo la shaqaynta Qunsulka, ayaa loo fuliyaa si isku mid ah, iyada oo ku socota qaabka
Dhibaatooyin kale oo badan inta lagu jiro horumarka waxaa sababay qaybta shabakada ee mas'uulka ka ah helitaanka cabbirada. Hadafka ugu weyn ee kala soocida qulqulka shabakadaha ee qaybaha kala duwan waxay ahayd rabitaanka in la dhimo wakhtiga socodka socodka ma si aad u akhrido xogta godka. Ikhtiyaarada isticmaalaya UDP asynchronous iyo recvmsg caadiga ah si dhakhso ah ayey u lumeen: kan kowaad wuxuu cunaa meel aad u badan oo CPU ah si loo habeeyo dhacdada, ka labaadna wuxuu u baahan yahay bedelo badan oo macnaha guud ah. Sidaa darteed hadda waa la isticmaalaa
tacliiq
Goobaha caadiga ah, cabbirka kaydinta ayaa loo dejiyay inuu noqdo mid aad u weyn. Haddii aad si lama filaan ah u go'aansato inaad isku daydo server-ka laftaada, waxaa laga yaabaa inaad la kulanto xaqiiqda ah in ka dib markaad dirto tiro yar oo mitir ah, ma iman doonaan Graphite, oo ku sii jira kaydiyaha qulqulka shabakada. Si aad ula shaqeyso tiro yar oo cabbirro ah, waxaad u baahan tahay inaad dejiso cabbirka bufsize iyo cabbirka-shaqada-cabbirka-qiyamyada yaryar ee isku xidhka.
Ugu dambeyntii, qaar ka mid ah jaantusyada jaantusyada jecel.
Tirakoobka tirada cabbirada soo galaya ee server kasta: in ka badan 2 milyan MPS.
Deminta mid ka mid ah noodyada iyo dib u qaybinta qiyaasaha soo socda.
Tirakoobyada cabbirada baxaya: hal nood oo keliya ayaa had iyo jeer soo dira - horjoogaha weerarka.
Tirakoobka hawlgalka node kasta, iyada oo la tixgelinayo khaladaadka qaybaha nidaamka kala duwan.
Faahfaahinta halbeegyada soo socda (magacyada metric waa qarsoon yihiin).
Maxaan qorshaynaynaa inaan ku samayno waxaas oo dhan xiga? Dabcan, qor kood, habaar...! Mashruucan ayaa markii hore loo qorsheeyay inuu noqdo il furan wuxuuna ahaan doonaa inta uu nool yahay. Qorshayaashayada dhow waxaa ka mid ah u beddelashada noocayada Raft, beddelka borotokoolka asxaabta mid la qaadi karo, soo bandhigida tirokoobyo gudaha ah oo dheeri ah, noocyo cusub oo cabbirro ah, hagaajinta cayayaanka iyo horumarin kale.
Dabcan, qof kastaa waa lagu soo dhaweynayaa inuu ka caawiyo horumarinta mashruuca: abuuro PR, Arrimaha, haddii ay suurtagal tahay waxaan ka jawaabi doonaa, hagaajin doonaa, iwm.
Iyadoo taas la leeyahay, waa intaas dadyow, iibsada maroodigayaga!
Source: www.habr.com