Ilifu elinye - inqanaba ledatha yeziko le-OS kwi-Odnoklassniki

Ilifu elinye - inqanaba ledatha yeziko le-OS kwi-Odnoklassniki

Enkosi, bantu! Igama lam ngu-Oleg Anastasyev, ndisebenza e-Odnoklassniki kwiqela lePlatform. Kwaye ngaphandle kwam, kukho izixhobo ezininzi ezisebenza kwi-Odnoklassniki. Sinamaziko amane edatha malunga nama-racks angama-500 anamaseva angaphezu kwamawaka angama-8. Ngexesha elithile, siye saqonda ukuba ukuqaliswa kwenkqubo entsha yokulawula kuya kusivumela ukuba silayishe izixhobo ngokufanelekileyo, siququzelele ulawulo lokufikelela, senze ngokuzenzekelayo (re) ukuhanjiswa kwezixhobo zekhompyutha, ukukhawulezisa ukuqaliswa kweenkonzo ezintsha, kunye nokukhawulezisa iimpendulo. kwiingozi ezinkulu.

Kwavela ntoni kuyo?

Ngaphandle kwam kunye neqela le-hardware, kukho nabantu abasebenza nale hardware: iinjineli ezibekwe ngokuthe ngqo kumaziko edatha; abaqhubi benethiwekhi abamisela isoftware yenethiwekhi; abalawuli, okanye ii-SREs, ezibonelela ngokuqina kweziseko zophuhliso; kunye namaqela ophuhliso, ngamnye kubo unoxanduva lwenxalenye yemisebenzi ye-portal. Isoftware abayenzayo isebenza ngolu hlobo:

Ilifu elinye - inqanaba ledatha yeziko le-OS kwi-Odnoklassniki

Izicelo zabasebenzisi zifunyenwe zombini kumda we-portal ephambili www.ok.ru, nakwabanye, umzekelo kwimida ye-API yomculo. Ukucubungula ingqiqo yezoshishino, babiza umncedisi wesicelo, othi, xa uqhuba isicelo, ubiza ii-microservices eziyimfuneko ezikhethekileyo - igrafu enye (igrafu yokunxibelelana kwezentlalo), i-cache yomsebenzisi (i-cache yeeprofayili zomsebenzisi), njl.

Nganye kwezi nkonzo zisetyenziswe kumatshini amaninzi, kwaye ngamnye kubo unabaphuhlisi abanoxanduva lokusebenza kweemodyuli, ukusebenza kwabo kunye nophuhliso lwezobuchwepheshe. Zonke ezi nkonzo zisebenza kwiiseva zehardware, kwaye kude kube kutshanje siye saphehlelela ngokuthe ngqo umsebenzi omnye ngeseva nganye, o.k.e. yayikhethekileyo kumsebenzi othile.

Kutheni kunjalo? Le ndlela ineengenelo ezininzi:

  • Ndakhululeka ulawulo oluninzi. Masithi umsebenzi ufuna amathala eencwadi, ezinye iisetingi. Kwaye ke umncedisi wabelwa ngokuthe ngqo kwiqela elinye, umgaqo-nkqubo we-cfengine weli qela uchaziwe (okanye sele ichaziwe), kwaye olu lungelelwaniso lusembindini kwaye lugqithiselwe ngokuzenzekelayo kubo bonke abancedisi abakweli qela.
  • Yenziwe lula Uxilongo. Masithi ujonge umthwalo owandisiweyo kwiprosesa esembindini kwaye uqaphele ukuba lo mthwalo unokuveliswa kuphela ngumsebenzi osebenza kule processor yehardware. Ukukhangela umntu oza kutyhola uphela ngokukhawuleza.
  • Yenziwe lula ukubeka esweni. Ukuba kukho into engalunganga ngomncedisi, umlindi uyayibika, kwaye uyazi kakuhle ukuba ngubani onetyala.

Inkonzo equka iikopi ezininzi zabelwe iiseva ezininzi - enye kwenye nganye. Emva koko i-computing resource yenkonzo yabelwe ngokulula kakhulu: inani leeseva inkonzo enayo, ubuninzi bezinto ezinokuzisebenzisa. β€œKulula” apha akuthethi ukuba kulula ukuyisebenzisa, kodwa ngendlela yokuba ukwabiwa kwezibonelelo kwenziwa ngesandla.

Le ndlela nayo yasivumela ukuba senze ulungelelwaniso lwentsimbi ekhethekileyo kumsebenzi oqhutywayo kulo mncedisi. Ukuba umsebenzi ugcina inani elikhulu ledatha, ngoko sisebenzisa iseva ye-4U kunye ne-chassis ene-38 disks. Ukuba umsebenzi unokubalwa, ngoko sinokuthenga iseva ye-1U enexabiso eliphantsi. Oku kuyasebenza ngokokubala. Phakathi kwezinye izinto, le ndlela ivumela ukuba sisebenzise oomatshini abambalwa ngokuphindwe kane abanomthwalo othelekiswa nenethiwekhi yentlalo enobuhlobo.

Ukuphumelela okunjalo ekusebenziseni izixhobo zekhompyutha kufuneka kwakhona kuqinisekise ukusebenza kakuhle kwezoqoqosho, ukuba siqhubela phambili kwinto yokuba eyona nto ibiza kakhulu ngamaseva. Ixesha elide, i-hardware yayiyeyona nto ibiza kakhulu, kwaye senza umgudu omkhulu ekunciphiseni ixabiso le-hardware, liza kunye ne-algorithms yokunyamezela impazamo ukunciphisa iimfuno zokuthembeka kwe-hardware. Kwaye namhlanje sifikelele kwinqanaba apho ixabiso lomncedisi liyekile ukugqiba. Ukuba awuthatheli ngqalelo i-exotics yamva nje, ke uqwalaselo oluthile lweeseva kwi-rack alunamsebenzi. Ngoku sinenye ingxaki - ixabiso lesithuba esithathwe ngumncedisi kwiziko ledatha, oko kukuthi, indawo kwi-rack.

Sithe sakuqonda ukuba oku kunjalo, sagqiba ekubeni sibale ukuba sizisebenzisa ngokukuko kangakanani iiracks.
Sithathe ixabiso lomncedisi onamandla kunabo bonke abanokuthetheleleka ngokwezoqoqosho, sibale ukuba zingaphi iiseva ezinjalo esinokuzibeka kwiiracks, zingaphi imisebenzi esinokuyiqhuba phezu kwazo ngokusekelwe kwimodeli endala "umncedisi omnye = umsebenzi omnye" kwaye ingakanani into enjalo. imisebenzi inokusebenzisa izixhobo. Babala balila iinyembezi. Kwavela ukuba ukusebenza kwethu kakuhle ekusebenziseni iiracks kumalunga ne-11%. Isiphetho sicacile: kufuneka sandise ukusebenza kakuhle kokusebenzisa amaziko edatha. Kubonakala ngathi isisombululo sicacile: kufuneka uqhube imisebenzi emininzi kwiseva enye ngexesha elinye. Kodwa kulapho ubunzima buqala khona.

Ubume bobunzima buba nzima kakhulu - ngoku akunakwenzeka ukwabela naliphi na iqela elinye kumncedisi. Emva kwayo yonke loo nto, ngoku imisebenzi emininzi yemiyalelo eyahlukeneyo inokusungulwa kwiseva enye. Ukongeza, ulungelelwaniso lunokungqubana kwizicelo ezahlukeneyo. Ukuxilongwa kwakhona kuba nzima ngakumbi: ukuba ubona ukwanda kwe-CPU okanye ukusetyenziswa kwediski kwiseva, awuyazi ukuba yeyiphi na umsebenzi obangela ingxaki.

Kodwa into ephambili kukuba akukho nto yodwa phakathi kwemisebenzi esebenza kumatshini omnye. Apha, umzekelo, igrafu yexesha eliqhelekileyo lokuphendula lomsebenzi womncedisi ngaphambi nangemva kokuba esinye isicelo sokubala siqaliswe kumncedisi ofanayo, akukho ndlela ehambelana neyokuqala - ixesha lokuphendula lomsebenzi oyintloko liye landa kakhulu.

Ilifu elinye - inqanaba ledatha yeziko le-OS kwi-Odnoklassniki

Ngokucacileyo, kufuneka uqhube imisebenzi nokuba kwizikhongozeli okanye koomatshini ababonakalayo. Kuba phantse yonke imisebenzi yethu isebenza phantsi kwe-OS enye (Linux) okanye ilungiselelwe yona, akufuneki sixhase iinkqubo ezininzi ezahlukeneyo zokusebenza. Ngokuhambelanayo, i-virtualization ayidingeki; ngenxa ye-overhead eyongezelelweyo, iya kusebenza kancinci kunokufakwa kwesingxobo.

Njengokuphunyezwa kwezikhongozeli zokuqhuba imisebenzi ngokuthe ngqo kwiiseva, iDocker ngumgqatswa olungileyo: imifanekiso yefayile yefayile isombulula iingxaki ngolungelelwaniso oluphikisanayo kakuhle. Inyaniso yokuba imifanekiso inokuqulunqwa ngamanqwanqwa amaninzi ivumela ukuba sinciphise kakhulu inani ledatha efunekayo ukuyihambisa kwiziseko ezingundoqo, ukwahlula iinxalenye eziqhelekileyo zibe ngamanqwanqwa asisiseko ahlukeneyo. Ke iileya ezisisiseko (kunye nezona zininzi) ziya kugcinwa ngokufanelekileyo ngokukhawuleza kulo lonke iziseko zophuhliso, kwaye ukuhambisa uninzi lweentlobo ezahlukeneyo zezicelo kunye neenguqulelo, kuya kufuneka kudluliswe kuphela iileya ezincinci.

Kwaye, irejistri esele ilungile kunye nethegi yomfanekiso kwi-Docker isinika iiprimitives esele zilungele uguqulelo kunye nokuhambisa ikhowudi kwimveliso.

I-Docker, njengayo nayiphi na enye itekhnoloji efanayo, isinika inqanaba elithile lokuhlukaniswa kwesitya ngaphandle kwebhokisi. Ngokomzekelo, ukuhlukaniswa kwememori - isitya ngasinye sinikwe umda wokusetyenziswa kwememori yomatshini, ngaphaya kwayo ayiyi kudla. Unako ukwahlula izikhongozeli ezisekwe kusetyenziso lwe-CPU. Noko ke, kuthi, ukugquma okuqhelekileyo kwakunganelanga. Kodwa ngakumbi kulo ngezantsi.

Ukuqhuba ngokuthe ngqo izikhongozeli kwiiseva yinxalenye yengxaki kuphela. Elinye icandelo linxulumene nezikhongozeli zokubamba kwiiseva. Kufuneka uqonde ukuba sesiphi isikhongozeli esinokubekwa kweyiphi iseva. Lo ayingomsebenzi ulula, kuba izikhongozeli kufuneka zibekwe kwiiseva ngokuxinene kangangoko ngaphandle kokunciphisa isantya sazo. Ukubekwa okunjalo kunokuba nzima kwimbono yokunyamezela impazamo. Ngokuqhelekileyo sifuna ukubeka ii-replicas zenkonzo efanayo kwii-racks ezahlukeneyo okanye kumagumbi ahlukeneyo kwiziko ledatha, ukuze ukuba i-rack okanye igumbi liyasilela, singalahlekelwa ngokukhawuleza zonke ii-replicas zenkonzo.

Ukuhambisa izitya ngesandla akusiyo inketho xa unamaseva angamawaka angama-8 kunye ne-8-16 yee-container eziyiwaka.

Ukongeza, besifuna ukunika abaphuhlisi ukuzimela ngakumbi kulwabiwo lwezibonelelo ukuze bakwazi ukusingatha iinkonzo zabo kwimveliso ngokwabo, ngaphandle koncedo lomlawuli. Ngelo xesha, sasifuna ukugcina ulawulo ukwenzela ukuba enye inkonzo encinci ingadli zonke izibonelelo zamaziko ethu edatha.

Ngokucacileyo, sifuna umaleko wolawulo oza kwenza oku ngokuzenzekelayo.

Ngoko sifike kumfanekiso olula noqondakalayo ukuba bonke abakhi bezakhiwo bayawuthanda: izikwere ezintathu.

Ilifu elinye - inqanaba ledatha yeziko le-OS kwi-Odnoklassniki

iinkosi zelifu elinye liqela le-failover elinoxanduva lokuyilwa kwelifu. Umphuhlisi uthumela i-manifest kumphathi, equlethe lonke ulwazi oluyimfuneko ekusingatheni inkonzo. Ngokusekwe kuyo, inkosi inika imiyalelo kwiiminions ezikhethiweyo (oomatshini abenzelwe ukuqhuba izikhongozeli). I-minions ine-arhente yethu, efumana umyalelo, ikhupha imiyalelo yayo kwi-Docker, kwaye i-Docker iqwalasela i-linux kernel ukuze iqalise isitya esihambelanayo. Ukongeza ekwenzeni imiyalelo, i-arhente iyaqhubeka inika ingxelo kwinkosi malunga notshintsho kwimeko yomatshini we-minion kunye nezikhongozeli ezisebenza kuyo.

Ukwabiwa kwezixhobo

Ngoku makhe sijonge ingxaki yosasazo oluntsonkothileyo lwezibonelelo kubalandeli abaninzi.

Isixhobo sekhompyutha kwilifu elinye yile:

  • Ubungakanani bamandla okuqhuba asetyenziswa ngumsebenzi othile.
  • Ubungakanani bememori ekhoyo kumsebenzi.
  • Itrafikhi yenethiwekhi. Ngamnye wee-minion unonxibelelwano oluthile lwenethiwekhi kunye ne-bandwidth elinganiselwe, ngoko akunakwenzeka ukusabalalisa imisebenzi ngaphandle kokuqwalasela inani ledatha abayithumelayo kwinethiwekhi.
  • Iidiski. Ukongeza, ngokucacileyo, kwindawo yale misebenzi, sikwabela uhlobo lwediski: i-HDD okanye i-SSD. Iidiski zinokusebenza inani eliqingqiweyo lezicelo ngesekhondi - IOPS. Ke ngoko, kwimisebenzi eyenza i-IOPS eninzi kunediski enye inokuphatha, sikwabeka "izikhonkwane" - oko kukuthi, izixhobo zedisk ekufuneka zigcinelwe kuphela umsebenzi.

Emva koko kwinkonzo ethile, umzekelo we-cache yomsebenzisi, sinokurekhoda izixhobo ezisetyenzisiweyo ngale ndlela: i-400 processor cores, i-2,5 TB yememori, i-50 Gbit / s i-traffic kumacala omabini, i-6 TB yendawo ye-HDD efumaneka kwi-spindles 100 . Okanye ngendlela eqhelekileyo ngolu hlobo:

alloc:
    cpu: 400
    mem: 2500
    lan_in: 50g
    lan_out: 50g
    hdd:100x6T

Imithombo yenkonzo ye-cache yomsebenzisi idla kuphela inxalenye yazo zonke izixhobo ezikhoyo kwiziseko zophuhliso. Ke ngoko, ndifuna ukuqiniseka ukuba ngequbuliso, ngenxa yempazamo yomsebenzisi okanye hayi, i-cache yomsebenzisi ayityi izixhobo ezingaphezulu kunokwabelwa yona. Oko kukuthi, kufuneka sinciphise izibonelelo. Kodwa yintoni esinokuyibophelela kuyo isabelo?

Masibuyele kumzobo wethu owenziwe lula kakhulu wokusebenzisana kwamacandelo kwaye siyidwebe kwakhona ngeenkcukacha ezithe kratya - ngolu hlobo:

Ilifu elinye - inqanaba ledatha yeziko le-OS kwi-Odnoklassniki

Yintoni etsala amehlo akho:

  • I-frontend yewebhu kunye nomculo zisebenzisa amaqela ahlukeneyo omncedisi wesicelo esifanayo.
  • Siyakwazi ukwahlula iileya ezinengqiqo apho la maqela avela khona: i-fronts, i-cache, ukugcinwa kwedatha kunye noluhlu lolawulo.
  • Umphambili wecala uneendlela ezahlukeneyo, uqulathe iinkqubo ezisezantsi ezisebenzayo.
  • IiCache zisenokusasazwa ngapha kwenkqubo esezantsi egcina idatha yazo.

Masiwuzobe ngokutsha umfanekiso kwakhona:

Ilifu elinye - inqanaba ledatha yeziko le-OS kwi-Odnoklassniki

Bah! Ewe, sibona uluhlu lwemigangatho! Oku kuthetha ukuba ungasasaza izibonelelo kwiinqununu ezinkulu: yabela umphuhlisi onoxanduva kwindawo yoluhlu lwemigangatho ehambelana nenkqubo ephantsi yokusebenza (efana "nomculo" emfanekisweni), kwaye uqhoboshele iquota kwinqanaba elifanayo loluhlu. Olu luhlu lukwasivumela ukuba siququzelele iinkonzo ngokuguquguqukayo ukuze kube lula ukulawula. Umzekelo, sahlulahlula yonke iwebhu, kuba le liqela elikhulu kakhulu labancedisi, ngokwamaqela amancinane aliqela, aboniswe emfanekisweni njengeqela1, iqela2.

Ngokususa imigca eyongezelelweyo, sinokubhala indawo nganye yomfanekiso wethu ngendlela ethe kratya: iqela1.web.front, api.music.front, umsebenzisi-cache.cache.

Le yindlela esifika ngayo kwingcamango "yoluhlu oluphezulu". Inegama elifana ne "group1.web.front". Ikota yezibonelelo kunye namalungelo abasebenzisi yabelwe yona. Siza kunika umntu ovela kwi-DevOps amalungelo okuthumela inkonzo kumgca, kwaye umqeshwa onjalo unokuqalisa into ethile emgceni, kwaye umntu ovela kwi-OpsDev uya kuba namalungelo olawulo, kwaye ngoku unokulawula umgca, abele abantu apho, nika aba bantu amalungelo, njl. Ukuba ikota yecomputing yomgca asanelanga ukwenza zonke iinkonzo ngaxeshanye, ziya kuphunyezwa ngokulandelelanayo, ngaloo ndlela zenze umgca ngokwawo.

Makhe sijonge ngakumbi kwiinkonzo. Inkonzo inegama eliqeqeshwe ngokupheleleyo, elisoloko libandakanya igama lomgca. Emva koko inkonzo yewebhu yangaphambili iya kuba negama ok-web.group1.web.front. Kwaye inkonzo yeseva yesicelo efikelela kuyo iya kubizwa ok-app.group1.web.front. Inkonzo nganye ine-manifest, echaza yonke ingcaciso efunekayo yokubekwa koomatshini abathile: zingaphi izixhobo ezisetyenziswayo kulo msebenzi, yintoni uqwalaselo olufunekayo kuyo, zingaphi iikopi ezimele zibekho, iipropati zokusingatha ukungaphumeleli kwale nkonzo. Kwaye emva kokuba inkonzo ibekwe ngokuthe ngqo koomatshini, iimeko zayo zivela. Bakwathiywe ngokungacacanga - njengenombolo yomzekelo kunye negama lenkonzo: 1.ok-web.group1.web.front, 2.ok-web.group1.web.front, …

Oku kulula kakhulu: ngokujonga kuphela igama lesikhongozeli esibalekayo, sinokufumanisa okuninzi kwangoko.

Ngoku makhe sijonge ngakumbi ukuba le mizekelo yenza ntoni ngokwenene: imisebenzi.

Iiklasi zokuzahlula

Yonke imisebenzi eLungileyo (kwaye, mhlawumbi, kuyo yonke indawo) inokwahlulwa ngokwamaqela:

  • Imisebenzi emifutshane yeLatency-prod. Kuloo misebenzi kunye neenkonzo, ukulibaziseka kwempendulo (latency) kubaluleke kakhulu, ukuba isicelo ngasinye siya kucutshungulwa ngokukhawuleza kangakanani yinkqubo. Imizekelo yemisebenzi: imida yewebhu, iicache, iiseva zesicelo, ugcino lwe-OLTP, njl.
  • Iingxaki zokubala - ibhetshi. Apha, isantya sokucubungula isicelo ngasinye asibalulekanga. Kubo, kubalulekile ukuba zingaphi izibalo eziya kwenziwa ngulo msebenzi kwixesha elithile (elide) (i-throughput). Oku kuya kuba nayiphi na imisebenzi ye-MapReduce, Hadoop, ukufundwa komatshini, izibalo.
  • Imisebenzi yangasemva - ayisebenzi. Kwimisebenzi enjalo, akukho latency okanye throughput kubaluleke kakhulu. Oku kubandakanya iimvavanyo ezahlukeneyo, ukufuduka, ukubala kwakhona, kunye nokuguqulwa kwedatha ukusuka kwifomati enye ukuya kwenye. Kwelinye icala, ziyafana nezibaliweyo, kwelinye icala, akunamsebenzi kuthi ukuba zigqitywe ngokukhawuleza kangakanani na.

Makhe sibone ukuba imisebenzi enjalo idla njani izixhobo, umzekelo, iprosesa ephakathi.

Imisebenzi yokulibaziseka emfutshane. Umsebenzi onjalo uya kuba nepateni yokusetyenziswa kwe-CPU efana nale:

Ilifu elinye - inqanaba ledatha yeziko le-OS kwi-Odnoklassniki

Isicelo esisuka kumsebenzisi sifunyenwe ukuze kuqhutywe, umsebenzi uqala ukusebenzisa zonke ii-CPU cores ezikhoyo, ziqhube, zibuyisele impendulo, zilinde isicelo esilandelayo kwaye ziyeke. Isicelo esilandelayo safika - kwakhona sakhetha yonke into ekhoyo, siyibalile, kwaye silindele esilandelayo.

Ukuqinisekisa ubuncinci be-latency yomsebenzi onjalo, kufuneka sithathe ubuninzi bezinto ezisetyenziswayo kwaye sigcine inani elifunekayo lee-cores kwi-minion (umatshini oza kwenza umsebenzi). Emva koko ifomula yogcino yengxaki yethu iya kuba ngolu hlobo lulandelayo:

alloc: cpu = 4 (max)

kwaye ukuba sinomatshini we-minion onama-cores ali-16, ngoko ke imisebenzi emine enjalo inokubekwa kuyo. Siqaphela ngokukodwa ukuba umyinge wokusetyenziswa kweprosesa yemisebenzi enjalo ihlala iphantsi kakhulu - into ecacileyo, ekubeni inxalenye ebalulekileyo yexesha umsebenzi ulinda isicelo kwaye ungenzi nto.

Imisebenzi yokubala. Ipatheni yabo iya kwahluka kancinci:

Ilifu elinye - inqanaba ledatha yeziko le-OS kwi-Odnoklassniki

Umndilili wokusetyenziswa kwezixhobo ze-CPU kwimisebenzi enjalo uphezulu kakhulu. Rhoqo sifuna ukubala umsebenzi ugqitywe ngexesha elithile, ngoko ke kufuneka sigcine elona nani liphantsi leeprosesa elilidingayo ukuze lonke ubalo lugqitywe ngexesha elamkelekileyo. Ifomula yayo yogcino iya kujongeka ngolu hlobo:

alloc: cpu = [1,*)

"Nceda uyibeke kwindawo encinci apho kukho ubuncinci umbindi wasimahla, kwaye uninzi njengoko lukhona, luya kuqwenga yonke into."

Apha ukusebenza kakuhle kokusetyenziswa sele kubhetele kakhulu kunemisebenzi ngokulibaziseka okufutshane. Kodwa inzuzo iya kuba nkulu kakhulu ukuba udibanisa zombini iintlobo zemisebenzi kumatshini omnye we-minion kwaye usasaze izixhobo zayo ekuhambeni. Xa umsebenzi onokulibaziseka okufutshane ufuna iprosesa, iyifumana ngokukhawuleza, kwaye xa izibonelelo zingasafuneki, zidluliselwa kumsebenzi wokubala, oko kukuthi, into enje:

Ilifu elinye - inqanaba ledatha yeziko le-OS kwi-Odnoklassniki

Kodwa ukwenza njani oko?

Okokuqala, makhe sijonge i-prod kunye ne-alloc yayo: cpu = 4. Kufuneka sigcine ii-cores ezine. Kwi-Docker qhuba oku kunokwenziwa ngeendlela ezimbini:

  • Ukusebenzisa ukhetho --cpuset=1-4, o.k.e. yabela ii-cores ezine ezithile kumatshini kumsebenzi.
  • Sebenzisa --cpuquota=400_000 --cpuperiod=100_000, yabela i-quota yexesha lomqhubekekisi, o.t. bonisa ukuba yonke i-100 ms yexesha lokwenyani umsebenzi awudli ngaphezu kwe-400 ms yexesha lomqhubekekisi. Iicores ezine ezifanayo zifunyenwe.

Kodwa yeyiphi kwezi ndlela ezifanelekileyo?

I-cpuset ibonakala inomtsalane. Umsebenzi unee-cores ezine ezinikezelweyo, okuthetha ukuba iicache zeprosesa ziya kusebenza ngokufanelekileyo ngokusemandleni. Oku kukwanecala elisezantsi: kuya kufuneka sithathe umsebenzi wokusasaza izibalo kwiicores ezingalayishwanga zomatshini endaweni ye-OS, kwaye lo ngumsebenzi ongengomsebenzi omncinci, ngakumbi ukuba sizama ukubeka imisebenzi yebhetshi kwinto enjalo. umatshini. Iimvavanyo zibonise ukuba ukhetho olune-quota lufaneleka ngcono apha: ngale ndlela inkqubo yokusebenza inenkululeko enkulu ekukhetheni undoqo wokwenza umsebenzi ngeli xesha langoku kwaye ixesha lomqhubekekisi lisasazwa ngokufanelekileyo.

Makhe sijonge indlela yokwenza ugcino kwi-Docker ngokusekwe kwinani elincinci lee-cores. I-quota yemisebenzi yebhetshi ayisasebenzi, kuba akukho mfuneko yokukhawulela ubuninzi, kwanele ukuba uqinisekise ubuncinci. Kwaye apha ukhetho luhambelana kakuhle docker run --cpushares.

Savumelana ukuba ukuba ibhetshi ifuna isiqinisekiso sobuncinci obungundoqo, ngoko sibonisa --cpushares=1024, kwaye ukuba kukho ubuncinane ii-cores ezimbini, ngoko sibonisa --cpushares=2048. Izabelo zeCpu aziphazamisi nangayiphi na indlela ukuhanjiswa kwexesha lomqhubekekisi ukuba nje kukho okwaneleyo. Ke, ukuba iprod ayisebenzisi ngoku zone iicores zayo, akukho nto ithintela imisebenzi yebhetshi, kwaye banokusebenzisa ixesha elongezelelweyo lomqhubekekisi. Kodwa kwimeko apho kukho ukunqongophala kweeprosesa, ukuba i-prod idle zonke ezine ze-cores zayo kwaye ifikelele kwi-quota yayo, ixesha eliseleyo leprosesa liya kwahlulwa ngokulinganayo kwi-cpushares, oko kukuthi, kwimeko yee-cores ezintathu zamahhala, enye iya kuba inikwe umsebenzi kunye 1024 cpushares, kwaye ezimbini eziseleyo ziya kunikwa umsebenzi kunye 2048 cpushares.

Kodwa ukusebenzisa i-quota kunye nezabelo akwanelanga. Kufuneka siqinisekise ukuba umsebenzi onokulibaziseka okufutshane ufumana kuqala umsebenzi webhetshi xa unikezela ixesha lomqhubekekisi. Ngaphandle kokubekwa phambili okunjalo, umsebenzi webhetshi uya kuthatha lonke ixesha leprosesa ngalo mzuzu xa ifunwa yiprod. Akukho zikhetho zokubeka phambili isikhongozeli kwi-Docker esebenzayo, kodwa imigaqo-nkqubo ye-Linux CPU yesicwangcisi iza luncedo. Unokufunda ngazo ngokweenkcukacha apha, kwaye ngaphakathi kwesakhelo seli nqaku siza kuhamba ngokufutshane kubo:

  • SCHED_OTHER
    Ngokungagqibekanga, zonke iinkqubo zomsebenzisi eziqhelekileyo kumatshini weLinux ziyafunyanwa.
  • SCHED_BATCH
    Yenzelwe iinkqubo ezinzulu kwizibonelelo. Xa ubeka umsebenzi kumqhubekekisi, into ebizwa ngokuba yisohlwayo sokuvula yaziswa: umsebenzi onje awunakufane ufumane izibonelelo zomqhubekekisi ukuba ngoku usetyenziswa ngumsebenzi nge SCHED_OTHER
  • SCHED_IDLE
    Inkqubo yangasemva enokubaluleka okuphantsi kakhulu, nokuba ngaphantsi kunobuhle -19. Sisebenzisa ithala leencwadi lethu elivulelekileyo enye-nio, ukwenzela ukuseta umgaqo-nkqubo oyimfuneko xa uqala isitya ngokufowuna

one.nio.os.Proc.sched_setscheduler( pid, Proc.SCHED_IDLE )

Kodwa nokuba awuyiprogram kwiJava, into efanayo inokwenziwa usebenzisa i-chrt command:

chrt -i 0 $pid

Masishwankathele onke amanqanaba ethu okuzahlula kwitafile enye ukuze sicaciselwe:

Iklasi ye-Insulation
Alloc Umzekelo
Iinketho zokuqhuba iDocker
sched_setscheduler chrt*

Prod
cpu = 4
--cpuquota=400000 --cpuperiod=100000
SCHED_OTHER

Batch
Cpu = [1, *)
--cpushares=1024
SCHED_BATCH

Ezingabonakaliyo
Cpu= [2, *)
--cpushares=2048
SCHED_IDLE

*Ukuba wenza i-chrt ngaphakathi kwesikhongozeli, unokufuna isakhono se-sys_nice, kuba ngokungagqibekanga iDocker iyasisusa esi sixhobo xa iqalisa isikhongozeli.

Kodwa imisebenzi ayidli kuphela iprosesa, kodwa kunye ne-traffic, echaphazela i-latency yomsebenzi wenethiwekhi nangaphezulu kunokwabiwa okungalunganga kwezixhobo zokusebenza. Ke ngoko, ngokwendalo sifuna ukufumana umfanekiso ofanayo ngqo wetrafikhi. Oko kukuthi, xa umsebenzi weprod uthumela iipakethi ezithile kuthungelwano, sinciphisa isantya esiphezulu (ifomula ialloc: lan=[*,500mbps) ), ngeyiphi imveliso enokwenza ngayo oku. Kwaye kwibhetshi siqinisekisa kuphela ubuncinci bokuphuma, kodwa musa ukukhawulela ubuninzi (ifomula ialloc: lan=[10Mbps,*) ) Kule meko, i-prod traffic kufuneka ifumane kuqala imisebenzi yebhetshi.
Apha iDocker ayinazo naziphi na iiprimitives esinokuzisebenzisa. Kodwa kuyasinceda Ulawulo lweTrafikhi yeLinux. Siye sakwazi ukufezekisa umphumo oyifunayo ngoncedo lwesiyalo I-Hierarchical Fair Service Curve. Ngoncedo lwayo, sahlula iindidi ezimbini zetrafikhi: i-prod-priority prod kunye ne-low-priority batch/idle. Ngenxa yoko, ubumbeko lwetrafikhi ephumayo lunje:

Ilifu elinye - inqanaba ledatha yeziko le-OS kwi-Odnoklassniki

apha 1:0 yi "root qdisc" yoqeqesho lwe-hsfc; 1:1 - iklasi yomntwana we-hsfc enomlinganiselo opheleleyo we-bandwidth ye-8 Gbit / s, apho iiklasi zomntwana zazo zonke izitya zibekwe phantsi; 1:2 - iklasi yomntwana we-hsfc iqhelekile kuyo yonke ibhetshi kunye nemisebenzi engasebenziyo kunye nomda "oguqukayo", oxoxwa ngezantsi. Iiklasi ezishiyekileyo zabantwana be-hsfc ziiklasi ezizinikeleyo zokuqhuba izikhongozeli zemveliso ngoku ezinemida ehambelana nemiboniso yazo - 450 kunye ne-400 Mbit/s. Iklasi nganye ye-hsfc yabelwe i-qdisc queue fq okanye fq_codel, ngokuxhomekeke kuguqulelo lwe-Linux kernel, ukunqanda ilahleko yepakethi ngexesha lokugqabhuka kwetrafikhi.

Ngokwesiqhelo, uqeqesho lwe-tc lusebenza ukubeka phambili itrafikhi ephumayo kuphela. Kodwa sifuna ukubeka phambili itrafikhi engenayo nayo - emva kwayo yonke loo nto, umsebenzi othile webhetshi ungakhetha ngokulula itshaneli yonke engenayo, ukufumana, umzekelo, ibhetshi enkulu yedatha yokufaka imephu&ukunciphisa. Kule nto sisebenzisa imodyuli ukuba b, eyenza i-ifbX ujongano lwenyani kujongano lomsebenzi womnatha ngamnye kwaye iphinde iqondise i-traffic engenayo ukusuka kujongano ukuya kwitrafikhi ephumayo kwi-ifbX. Ngapha koko, kwi-ifbX, zonke iindlela ezifanayo zisebenza ukulawula itrafikhi ephumayo, apho uqwalaselo lwe-hsfc luya kufana kakhulu:

Ilifu elinye - inqanaba ledatha yeziko le-OS kwi-Odnoklassniki

Ngexesha lovavanyo, siye safumanisa ukuba i-hsfc ibonisa ezona ziphumo zingcono xa iklasi ye-1: 2 ye-batch engabalulekanga / i-traffic engasebenziyo ilinganiselwe koomatshini abancinci ukuba bangabi ngaphezu kwendlela ethile yasimahla. Kungenjalo, itrafikhi engabekelwanga ngqangi inefuthe elininzi kakhulu kwi-latency yemisebenzi ye-prod. i-miniond imisela inani langoku le-bandwidth yasimahla nganye ngomzuzwana, ilinganisa umndilili wokusetyenziswa kwetrafikhi yayo yonke imisebenzi yemveliso yeminion enikiweyo. Ilifu elinye - inqanaba ledatha yeziko le-OS kwi-Odnoklassniki kunye nokuyithabatha kwi-network interface bandwidth Ilifu elinye - inqanaba ledatha yeziko le-OS kwi-Odnoklassniki ngomda omncinci, okt.

Ilifu elinye - inqanaba ledatha yeziko le-OS kwi-Odnoklassniki

Iibhendi zichazwe ngokuzimeleyo kwitrafikhi engenayo nephumayo. Kwaye ngokwamaxabiso amatsha, i-miniond iphinda iqwalasele umda wodidi olungeyo-prayorical 1:2.

Ke, siphumeze zontathu iiklasi zokuzihlukanisa: iprod, ibhetshi kunye nokungenzi nto. Ezi klasi zinempembelelo kakhulu kwiimpawu zokusebenza zemisebenzi. Ke ngoko, sigqibe kwelokuba sibeke olu phawu phezulu kuluhlu lwezikhundla, ukuze xa sijonga igama loluhlu lwezikhundla kucace kwangoko ukuba yintoni esijongene nayo:

Ilifu elinye - inqanaba ledatha yeziko le-OS kwi-Odnoklassniki

Bonke abahlobo bethu Kwiwebhu ΠΈ umculo imida ke ibekwe kuluhlu lwemigangatho phantsi kweprod. Umzekelo, phantsi kwebhetshi, masibeke inkonzo ikhathalogu yomculo, ethi ngamaxesha athile iqulunqe ikhathalogu yeengoma ukusuka kwiseti yeefayile ze mp3 ezilayishwe kwi Odnoklassniki. Umzekelo wenkonzo phantsi kokungenzi nto iya kuba isiguquli somculo, eyenza umgangatho wevolumu yomculo uqheleke.

Ngemigca eyongezelelweyo esusiweyo kwakhona, sinokubhala amagama ethu enkonzo athambileyo ngokongeza iklasi yokwahlula umsebenzi ekupheleni kwegama lenkonzo epheleleyo: web.front.prod, ikhathalogu.music.batch, i-transformer.music.idle.

Kwaye ngoku, sijonge igama lenkonzo, asiqondi nje kuphela ukuba yintoni umsebenzi owenzayo, kodwa kunye neklasi yayo yodwa, oku kuthetha ukubaluleka kwayo, njl.

Yonke into inkulu, kodwa kukho inyaniso ekrakra. Akunakwenzeka ukwahlula ngokupheleleyo imisebenzi esebenza kumatshini omnye.

Into esikwazile ukuyiphumeza: ukuba ibhetshi idla kakhulu kuphela Izixhobo ze-CPU, emva koko umcwangcisi we-CPU eyakhelwe-ngaphakathi we-Linux wenza umsebenzi wakhe kakuhle, kwaye akukho mpembelelo kumsebenzi we-prod. Kodwa ukuba lo msebenzi webhetshi uqala ukusebenza ngenkuthalo ngenkumbulo, ke impembelelo efanayo sele ibonakala. Oku kwenzeka ngenxa yokuba umsebenzi we-prod "uhlanjwe" kwiicache zememori yeprosesa - ngenxa yoko, i-cache iyaphoswa ukwanda, kwaye iprosesa iqhuba umsebenzi weprod kancinci kancinci. Umsebenzi onjalo webhetshi unokonyusa ukubambezeleka kwesikhongozeli sethu esiqhelekileyo semveliso nge-10%.

Ukwahlula itrafikhi kunzima ngakumbi ngenxa yokuba amakhadi enethiwekhi yanamhlanje anomgca wangaphakathi weepakethi. Ukuba ipakethe evela kumsebenzi we-batch ifika kuqala, ngoko iya kuba ngowokuqala ukuhanjiswa kwikhebula, kwaye akukho nto inokwenziwa ngayo.

Ukongezelela, okwangoku siphumelele kuphela ukusombulula ingxaki yokubeka phambili i-TCP traffic: indlela ye-hsfc ayisebenzi kwi-UDP. Kwaye nakwimeko ye-TCP traffic, ukuba umsebenzi we-batch uvelisa i-traffic eninzi, oku kunika malunga nokunyuka kwe-10% ekulibazisekeni komsebenzi we-prod.

ukunyamezela iimpazamo

Enye yeenjongo xa kuphuhliswa ilifu elinye yayikukuphucula ukunyamezela impazamo ye-Odnoklassniki. Ke ngoko, ngokulandelayo ndingathanda ukuqwalasela ngokweenkcukacha ngakumbi iimeko zokusilela kunye neengozi. Masiqale ngemeko elula-ukusilela kwesitya.

Isikhongozeli ngokwaso sinokungaphumeleli ngeendlela ezininzi. Oku kunokuba luhlobo oluthile lomfuniselo, ibug okanye impazamo kwimanifest, ngenxa yokuba umsebenzi wemveliso uqala ukusebenzisa izixhobo ezingaphezulu kunoko kubonisiwe kumboniso. Sinetyala: umphuhlisi uphumeze i-algorithm enye entsonkothileyo, waphinda wayisebenza amaxesha amaninzi, wazicingela kakhulu kwaye wabhideka kangangokuba ekugqibeleni ingxaki yajika ngendlela engeyonto encinci. Kwaye kuba umsebenzi we-prod unokubaluleka okuphezulu kunabo bonke abanye kwi-minions efanayo, yaqala ukusebenzisa zonke izixhobo zeprosesa ezikhoyo. Kule meko, ukuhlukaniswa, okanye kunokuba ixesha le-CPU, ligcinwe usuku. Ukuba umsebenzi wabelwe iquota, umsebenzi awuyi kutya ngaphezulu. Ke ngoko, ibhetshi kunye neminye imisebenzi yeprod ebaleka kumatshini omnye ayizange iphawule nto.

Ingxaki yesibini enokwenzeka kukuwa kwesikhongozeli. Kwaye nantsi imigaqo-nkqubo yokuqalisa kwakhona isisindise, wonke umntu uyayazi, iDocker ngokwayo yenza umsebenzi omkhulu. Phantse yonke imisebenzi yeprod inomgaqo-nkqubo osoloko uqalisa ngokutsha. Ngamanye amaxesha sisebenzisa i-on_failure kwimisebenzi yebhetshi okanye ukulungisa iimpazamo kwizikhongozeli zemveliso.

Yintoni onokuyenza ukuba i-minion yonke ayifumaneki?

Ngokucacileyo, sebenzisa isikhongozeli komnye umatshini. Inxalenye enomdla apha yinto eyenzekayo kwidilesi ye IP eyabelwe isikhongozeli.

Singanikezela izikhongozeli iidilesi ze-IP ezifanayo njengoomatshini abancinci apho ezi zikhongozeli zisebenza. Emva koko, xa isitya siqaliswa komnye umatshini, idilesi ye-IP iyatshintsha, kwaye bonke abathengi kufuneka baqonde ukuba isitya sihambile, kwaye ngoku kufuneka baye kwidilesi eyahlukileyo, efuna inkonzo eyahlukileyo yokuFumana iNkonzo.

Ukufunyanwa kweNkonzo kukulungele. Kukho izisombululo ezininzi kwimarike yamanqanaba ahlukeneyo okunyamezela impazamo ukulungiselela ubhaliso lwenkonzo. Ngokuqhelekileyo izisombululo ezinjalo zizalisekisa ingqiqo yokulinganisa umthwalo, gcina uqwalaselo olongezelelweyo ngendlela yokugcina i-KV, njl.
Nangona kunjalo, singathanda ukuphepha isidingo sokuphumeza irejista eyahlukileyo, kuba oku kuya kuthetha ukwazisa inkqubo ebalulekileyo esetyenziswa zizo zonke iinkonzo kwimveliso. Oku kuthetha ukuba le yinto enokuthi ingaphumeleli, kwaye kufuneka ukhethe okanye uphuhlise isisombululo esinokunyamezela kakhulu, esicacileyo esinzima kakhulu, sichitha ixesha kwaye siyabiza.

Kwaye enye i-drawback enkulu: ukuze isiseko sethu esidala sisebenze nesitsha, kuya kufuneka sibhale kwakhona yonke imisebenzi ukuze sisebenzise uhlobo oluthile lwenkqubo yokuFumana iNkonzo. Kukho umsebenzi omninzi, kwaye kwezinye iindawo akunakwenzeka xa kufikwa kwizixhobo ezisezantsi ezisebenza kwinqanaba le-OS kernel okanye ngokuthe ngqo kwi-hardware. Ukuphunyezwa kwalo msebenzi kusetyenziswa iipateni zesisombululo esekiweyo, ezifana Imoto esecaleni kuya kuthetha kwezinye iindawo umthwalo owongezelelweyo, kwezinye - ingxaki yokusebenza kunye neemeko ezongezelelweyo zokungaphumeleli. Asizange sifune ukwenza nzima izinto, ngoko ke sagqiba ekubeni senze ukusetyenziswa koFundo lweNkonzo ngokuzikhethela.

Kwilifu elinye, i-IP ilandela isikhongozeli, oko kukuthi, umsebenzi ngamnye unedilesi yayo ye-IP. Le dilesi "i-static": yabelwe umzekelo ngamnye xa inkonzo ithunyelwa okokuqala efini. Ukuba inkonzo inenani elihlukeneyo leemeko ngexesha lobomi bayo, ngoko ekugqibeleni iya kunikwa iidilesi ezininzi ze-IP njengoko bekukho iimeko eziphezulu.

Emva koko, ezi dilesi azitshintshi: zibekwa kube kanye kwaye ziqhubeke zikhona kubo bonke ubomi benkonzo kwimveliso. Iidilesi ze-IP zilandela izikhongozeli kwinethiwekhi iphela. Ukuba i-container idluliselwe kwenye i-minion, idilesi iya kulandela.

Ngaloo ndlela, imephu yegama lenkonzo kuluhlu lwayo lweedilesi ze-IP lutshintsha kakhulu kunqabile. Ukuba ujonga kwakhona kumagama emizekelo yenkonzo esiyikhankanyileyo ekuqaleni kwenqaku (1.ok-web.group1.web.front.prod, 2.ok-web.group1.web.front.prod, …), siya kuqaphela ukuba zifana nee-FQDN ezisetyenziswa kwi-DNS. Kulungile, ukwenza imephu yamagama eemeko zenkonzo kwiidilesi zabo ze-IP, sisebenzisa iprotocol ye-DNS. Ngapha koko, le DNS ibuyisela zonke iidilesi ze-IP ezigciniweyo zazo zonke izikhongozeli-zombini ezisebenzayo kwaye zimile (masithi kusetyenziswa iikopi ezintathu, kwaye sineedilesi ezintlanu ezigcinwe apho-zontlanu ziya kubuyiselwa). Abathengi, emva kokuba befumene olu lwazi, baya kuzama ukuseka uxhulumaniso nazo zontlanu ii-replicas - kwaye ngaloo ndlela banqume abo basebenzayo. Olu khetho lokufumanisa ukufumaneka luthembeke kakhulu, alubandakanyi nokuba yi-DNS okanye i-Service Discovery, nto leyo ethetha ukuba akukho ngxaki zinzima ukuzisombulula ekuqinisekiseni ukufaneleka kolwazi kunye nokunyamezela iimpazamo kwezi nkqubo. Ngaphezu koko, kwiinkonzo ezibalulekileyo apho ukusebenza kwe-portal yonke kuxhomekeke, asikwazi ukusebenzisa i-DNS kwaphela, kodwa faka nje iidilesi ze-IP kuqwalaselo.

Ukuphumeza udluliselo olunjalo lwe-IP ngasemva kwezikhongozeli lunokuba lungabalulekanga - kwaye siza kujonga ukuba lusebenza njani ngalo mzekelo ulandelayo:

Ilifu elinye - inqanaba ledatha yeziko le-OS kwi-Odnoklassniki

Masithi inkosi yelifu elinye inika umyalelo kwiminion M1 ukuba ibaleke 1.ok-web.group1.web.front.prod ngedilesi 1.1.1.1. Isebenza kwi minion INTAKA, ethengisa le dilesi kwiiseva ezikhethekileyo isibonisi sendlela. Aba bamva baneseshoni ye-BGP kunye ne-hardware yenethiwekhi, apho indlela yedilesi 1.1.1.1 kwi-M1 iguqulelwe. Iipakethe zeendlela ze-M1 ngaphakathi kwesikhongozeli zisebenzisa i-Linux. Kukho iiseva ezintathu zokubonisa indlela, kuba le yinxalenye ebaluleke kakhulu yesiseko selifu elinye - ngaphandle kwabo, inethiwekhi kwilifu elinye ayiyi kusebenza. Sizibeka kwii-racks ezahlukeneyo, ukuba kunokwenzeka zibekwe kumagumbi ahlukeneyo kwiziko ledatha, ukunciphisa amathuba okuba zontathu zingaphumeleli ngexesha elinye.

Ngoku makhe sicinge ukuba unxibelelwano phakathi kwe-master-cloud master kunye ne-M1 minion lulahlekile. Inkosi yelifu elinye ngoku iya kwenza ngokucinga ukuba i-M1 ayiphumelelanga ngokupheleleyo. Oko kukuthi, iya kunika umyalelo kwi-M2 minion ukuba iqalise web.group1.web.front.prod ngedilesi enye 1.1.1.1. Ngoku sineendlela ezimbini eziphikisanayo kwinethiwekhi ye-1.1.1.1: kwi-M1 kunye ne-M2. Ukuze ukusombulula iingxabano ezinjalo, sisebenzisa Exit Multi Discriminator, nto leyo echazwe kwisaziso BGP. Eli linani elibonisa ubunzima bendlela epapashiweyo. Phakathi kweendlela eziphikisanayo, indlela enexabiso eliphantsi le-MED iya kukhethwa. I-master-cloud master isekela i-MED njengenxalenye ebalulekileyo yeedilesi ze-IP zesikhongozeli. Ngethuba lokuqala, idilesi ibhaliwe ngokwaneleyo MED = 1. Kwimeko yokudluliselwa kwesitya esiphuthumayo, inkosi iyanciphisa i-MED, kwaye i-M000 iya kuba sele ifumene umyalelo wokukhangisa idilesi 000 kunye ne-MED = 2, 1.1.1.1. Umzekelo oqhuba kwi-M999 uya kuhlala kule meko akukho nxu lumano, kwaye ikamva lakhe elingaphezulu linomdla kuthi de udibaniso kunye nenkosi lubuyiselwe, xa uya kumiswa njengokuthatha kwakudala.

iingozi

Zonke iisistim zolawulo lwamaziko edatha zihlala ziphethe iintsilelo ezincinci ngokwamkelekileyo. Ukuphuphuma kwesikhongozeli sisiqhelo phantse kuyo yonke indawo.

Makhe sijonge ukuba siyisingatha njani imeko kaxakeka, njengokusilela kombane kwigumbi elinye okanye ngaphezulu kwiziko ledatha.

Ithetha ukuthini ingozi kwinkqubo yokulawula iziko ledatha? Okokuqala, oku kukusilela okukhulu kwexesha elinye koomatshini abaninzi, kwaye inkqubo yolawulo kufuneka ifuduke izikhongozeli ezininzi ngaxeshanye. Kodwa ukuba intlekele inkulu kakhulu, ngoko kunokwenzeka ukuba yonke imisebenzi ayinakuphinda inikezelwe kwabanye abancinci, kuba amandla omthombo wedatha yedatha ahla ngaphantsi kwe-100% yomthwalo.

Ngokuqhelekileyo iingozi zikhatshwa kukungaphumeleli komgangatho wolawulo. Oku kunokwenzeka ngenxa yokungaphumeleli kwezixhobo zayo, kodwa ngokuphindaphindiweyo ngenxa yokuba iingozi azivavanywa, kwaye umaleko wolawulo ngokwawo uwela ngenxa yokwanda komthwalo.

Ungenza ntoni ngayo yonke le nto?

Ukufuduka kwabantu abaninzi kuthetha ukuba kukho inani elikhulu lemisebenzi, ukufuduka, kunye nokuthunyelwa okwenzekayo kwiziseko ezingundoqo. Ufuduko ngalunye lungathatha ixesha elifunekayo ukuhambisa kunye nokukhupha imifanekiso yesikhongozeli kwi-minions, ukuqaliswa kunye nokuqalisa izikhongozeli, njl.

Masijonge kwakhona kuluhlu lweenkonzo esiziqhelileyo kwaye sizame ukugqiba ukuba yeyiphi imisebenzi esifuna ukuyiqhuba kuqala.

Ilifu elinye - inqanaba ledatha yeziko le-OS kwi-Odnoklassniki

Ewe, ezi ziinkqubo ezibandakanyeka ngokuthe ngqo ekuqhubeni izicelo zabasebenzisi, o.k.t. prod. Sibonisa oku nge ukubeka kuqala - inani elinokwabelwa emgceni. Ukuba umgca unokubaluleka okuphezulu, iinkonzo zawo zibekwe kuqala.

Kwimveliso sinikezela ngokubaluleka okuphezulu, i-0; kwibhetshi - ngaphantsi kancinci, 100; kwi-idle - nangaphantsi, 200. Izinto eziphambili zisetyenziswa ngokulandelelana. Yonke imisebenzi esezantsi kuluhlu lwemigangatho iya kuba nokubaluleka okuhambelanayo. Ukuba sifuna i-cache ngaphakathi kwe-prod iqaliswe phambi kwee-frontends, ngoko ke sabela izinto eziphambili kwi-cache = 0 kunye noluhlu lwangaphambili = 1. Ukuba, umzekelo, sifuna i-portal engundoqo isungulwe ukusuka kwi-frontends kuqala, kunye nomphambili womculo kuphela. ke, emva koko sinokunikezela ngokubaluleka okuphantsi kokugqibela - 10.

Ingxaki elandelayo kukunqongophala kwezixhobo. Ke, inani elikhulu lezixhobo, iiholo ezipheleleyo zeziko ledatha, aziphumelelanga, kwaye saphinda sazisa iinkonzo ezininzi kangangokuba ngoku akukho zixhobo zaneleyo kuwo wonke umntu. Kufuneka wenze isigqibo sokuba yeyiphi imisebenzi oza kuyincama ukuze ugcine ezona nkonzo zibalulekileyo ziqhuba.

Ilifu elinye - inqanaba ledatha yeziko le-OS kwi-Odnoklassniki

Ngokungafaniyo nokubekwa kuqala, asinakukwazi ukuncama yonke imisebenzi yebhetshi ngokungakhethiyo; eminye ibalulekile ekusebenzeni kwe-portal. Ngoko ke, siye sagxininisa ngokwahlukeneyo ukhuseleko oluphambili imisebenzi. Xa ubekwe, umsebenzi ophambili ophambili unoku preempt, o.k.t. ukumisa, umsebenzi ophambili osezantsi ukuba akusekho basebenzi basimahla. Kule meko, umsebenzi onokubaluleka okuphantsi mhlawumbi uya kuhlala ungabekwanga, oko kukuthi akusayi kuphinda kubekho i-minion efanelekileyo kuwo kunye nemithombo eyaneleyo yamahhala.

Kuluhlu lwethu lwezikhundla, kulula kakhulu ukucacisa okuphambili kokhuseleko olunje ngokuba imisebenzi ye-prod kunye nebhetshi ibeka kuqala okanye imise imisebenzi engasebenziyo, kodwa hayi enye nenye, ngokukhankanya okuphambili kokungenzi nto okulingana no-200. Kanye njengakwimeko yokubeka kuqala, thina inokusebenzisa ihierarchy yethu ukuchaza imithetho entsonkothileyo. Umzekelo, masibonise ukuba sincama umsebenzi womculo ukuba asinazo izixhobo ezaneleyo kwi-portal yewebhu ephambili, sibeka okuphambili kwiindawo ezihambelanayo ezisezantsi: 10.

Iingozi zonke ze-DC

Kutheni linokuthi lonke iziko ledatha lingaphumeleli? Isiqalelo. Ibiyiposi elungileyo inkanyamba yachaphazela umsebenzi weziko ledatha. Izinto zingathathwa njengabantu abangenamakhaya abakhe batshisa i-optics kwizinto ezininzi, kwaye iziko ledatha lalahlekelwa ngokupheleleyo uqhagamshelwano nezinye iisayithi. Isizathu sokungaphumeleli sinokuba yinto yomntu: umqhubi uya kukhupha umyalelo wokuba yonke indawo yedatha iya kuwa. Oku kungenzeka ngenxa yempazamo enkulu. Ngokubanzi, ukuwa kwamaziko edatha akuqhelekanga. Oku kwenzeka kuthi kanye kwiinyanga ezimbalwa.

Kwaye yile nto siyenzayo ukuthintela nabani na ukuba abhale #alive.

Isicwangciso sokuqala kukuba wedwa. Umzekelo ngamnye welifu elinye kwaye unokulawula oomatshini kwiziko ledatha enye kuphela. Oko kukuthi, ukulahleka kwelifu ngenxa yeebhugi okanye imiyalelo engalunganga yomqhubi kukulahlekelwa kweziko ledatha enye kuphela. Sikulungele oku: sinomgaqo-nkqubo wokuphindaphinda apho i-replicas yesicelo kunye nedatha ifumaneka kuwo onke amaziko edatha. Sisebenzisa i-database yokunyamezela iimpazamo kwaye sivavanya ngamaxesha athile ukusilela.
Ukusukela namhlanje sinamaziko edatha amane, oko kuthetha ukuba iimeko ezine ezihlukeneyo, ezizimeleyo ngokupheleleyo zelifu elinye.

Le ndlela ayikhuseli kuphela ukungaphumeleli komzimba, kodwa inokukhusela kwimpazamo yomqhubi.

Yintoni enye enokwenziwa ngomba womntu? Xa umsebenzi enika ilifu umyalelo ongaqhelekanga okanye onokuba yingozi, unokucelwa ngequbuliso ukuba asombulule ingxaki encinane ukuze abone ukuba ebecinga kakuhle kangakanani. Umzekelo, ukuba olu luhlobo oluthile lokuyeka ubuninzi beekopi ezininzi okanye umyalelo nje ongaqhelekanga - ukunciphisa inani leekopi okanye ukutshintsha igama lomfanekiso, kwaye kungekhona nje inombolo yenguqulo kwi-manifest entsha.

Ilifu elinye - inqanaba ledatha yeziko le-OS kwi-Odnoklassniki

Iziphumo

Iimpawu ezahlukileyo zelifu elinye:

  • Isikimu sokunikwa kwamagama seenkonzo kunye nezikhongozeli, ekuvumela ukuba ufumanise ngokukhawuleza ukuba yintoni umsebenzi, yintoni ehambelana nayo kwaye isebenza njani kwaye ngubani ojongene nayo.
  • Sisebenzisa wethu ubuchule bokudibanisa imveliso- kunye nebhetshi-imisebenzi kwiminions ukuphucula ukusebenza kakuhle kokwabelana ngomatshini. Endaweni ye-cpuset sisebenzisa i-CPU quotas, izabelo, imigaqo-nkqubo yomcwangcisi we-CPU kunye ne-Linux QoS.
  • Akukwazekanga ukwahlula ngokupheleleyo izikhongozeli ezisebenza kumatshini omnye, kodwa impembelelo yazo efanayo ihleli ngaphakathi kwama-20%.
  • Ukulungiselela iinkonzo kwi-hierarchy inceda ngokufumana kwakhona intlekele ngokuzenzekelayo usebenzisa ukubeka izinto eziphambili kunye nokuthintela.

FAQ

Kutheni singazange sithathe isisombululo esele senziwe?

  • Iindidi ezahlukeneyo zokwahlulwa kwemisebenzi zifuna ingqiqo eyahlukileyo xa ibekwe kwi-minions. Ukuba imisebenzi ye-prod inokubekwa ngokugcina izixhobo zokusebenza, ke ibhetshi kunye nemisebenzi engenzi nto kufuneka ibekwe, ukulandela umkhondo wokusetyenziswa kwezixhobo koomatshini abancinci.
  • Isidingo sokuthathela ingqalelo izixhobo ezisetyenziswa yimisebenzi, efana nale:
    • i-bandwidth yenethiwekhi;
    • iintlobo kunye "nezikhonkwane" zeediski.
  • Isidingo sokubonisa izinto eziphambili zeenkonzo ngexesha lokuphendula ngokukhawuleza, amalungelo kunye nezabelo zemiyalelo yezibonelelo, ezisombululwa ngokusebenzisa imigca ye-hierarchical kwifu elinye.
  • Imfuneko yokuba namagama eekhonteyina athiywe ngabantu ukunciphisa ixesha lokusabela kwiingozi kunye neziganeko
  • Ukungenzeki kokuphunyezwa kwaxeshanye ngokubanzi koFundo lweNkonzo; isidingo sokuhlalisana ixesha elide kunye nemisebenzi ebanjwe kwi-hardware hosts - into esonjululwa ngeedilesi ze-IP "ze-static" ezilandela izikhongozeli, kwaye, ngenxa yoko, imfuno yokudibanisa okukodwa kunye nesiseko esikhulu sothungelwano.

Yonke le misebenzi iya kufuna uhlengahlengiso olubalulekileyo lwezisombululo ezikhoyo ukuze zisilungele, kwaye, emva kokuvavanya umthamo womsebenzi, saqonda ukuba singaphuhlisa isisombululo sethu malunga neendleko ezifanayo zabasebenzi. Kodwa isisombululo sakho siya kuba lula kakhulu ukusebenza kunye nokuphuhlisa - asiqulathanga izithintelo ezingeyomfuneko ezixhasa ukusebenza esingazifuniyo.

Kwabo bafunda imigca yokugqibela, enkosi ngomonde wakho kunye nengqalelo!

umthombo: www.habr.com

Yongeza izimvo