One-cloud - data center level OS hauv Odnoklassniki

One-cloud - data center level OS hauv Odnoklassniki

Aloha, neeg! Kuv lub npe yog Oleg Anastasyev, Kuv ua haujlwm ntawm Odnoklassniki hauv pab pawg Platform. Thiab dhau ntawm kuv, muaj ntau yam khoom siv ua haujlwm hauv Odnoklassniki. Peb muaj plaub lub chaw zov me nyuam nrog txog 500 racks nrog ntau tshaj 8 txhiab servers. Ntawm ib lub sijhawm, peb pom tau hais tias qhov kev taw qhia txog kev tswj hwm tshiab yuav tso cai rau peb thauj cov khoom siv tau zoo dua, ua kom yooj yim rau kev tswj xyuas, automate (re) faib cov khoom siv hauv computer, ua kom cov kev pabcuam tshiab, thiab ua kom cov lus teb ceev. mus rau tej xwm txheej loj.

Dab tsi tuaj ntawm nws?

Dhau li ntawm kuv thiab ib pawg ntawm cov khoom siv kho vajtse, kuj tseem muaj cov neeg ua haujlwm nrog cov khoom siv no: engineers uas nyob ncaj qha rau hauv cov chaw khaws ntaub ntawv; networkers uas teeb tsa network software; cov thawj coj, lossis SREs, uas muab kev txhawb nqa kev tsim kho vaj tse; thiab pab pawg txhim kho, txhua tus ntawm lawv yog lub luag haujlwm rau ib feem ntawm lub portal cov haujlwm. Cov software lawv tsim ua haujlwm zoo li no:

One-cloud - data center level OS hauv Odnoklassniki

Cov neeg siv thov tau txais ob qho tib si nyob rau pem hauv ntej ntawm lub ntsiab portal ua www.ok.ru, thiab ntawm lwm tus, piv txwv li ntawm lub suab paj nruag API fronts. Txhawm rau ua cov txheej txheem kev lag luam, lawv hu rau daim ntawv thov server, uas, thaum ua qhov kev thov, hu rau qhov tsim nyog tshwj xeeb microservices - ib-graph (graph ntawm kev sib raug zoo), user-cache (cache ntawm cov neeg siv profile), thiab lwm yam.

Txhua qhov ntawm cov kev pabcuam no tau siv los ntawm ntau lub tshuab, thiab txhua tus ntawm lawv muaj lub luag haujlwm tsim kho lub luag haujlwm rau kev ua haujlwm ntawm cov modules, lawv cov haujlwm thiab kev tsim kho technology. Tag nrho cov kev pabcuam no khiav ntawm hardware servers, thiab txog thaum tsis ntev los no peb tau tshaj tawm ib txoj haujlwm rau ib tus neeg rau zaub mov, piv txwv li nws tau tshwj xeeb rau ib txoj haujlwm tshwj xeeb.

Yog vim li cas? Txoj kev no muaj ntau yam zoo:

  • Txaus siab kev tswj hwm loj. Cia peb hais tias ib txoj haujlwm yuav tsum muaj qee lub tsev qiv ntawv, qee qhov chaw. Thiab tom qab ntawd tus neeg rau zaub mov raug xa mus rau ib pawg tshwj xeeb, cfengine txoj cai rau pab pawg no tau piav qhia (lossis nws twb tau piav qhia lawm), thiab qhov kev teeb tsa no yog nruab nrab thiab txiav tawm rau txhua tus servers hauv pawg no.
  • Yooj yim kuaj mob. Cia peb hais tias koj saib ntawm qhov nce ntxiv ntawm lub hauv paus processor thiab paub tias qhov kev thauj khoom no tsuas yog tsim los ntawm txoj haujlwm uas ua haujlwm ntawm cov khoom siv kho vajtse no. Kev tshawb nrhiav ib tug neeg los liam yuav xaus sai heev.
  • Yooj yim saib xyuas. Yog tias ib yam dab tsi tsis ncaj ncees lawm nrog lub server, tus saib xyuas qhia nws, thiab koj paub tseeb tias leej twg yog tus yuav liam.

Ib qho kev pabcuam uas muaj ob peb replicas tau faib ntau lub servers - ib qho rau txhua tus. Tom qab ntawd cov kev pabcuam suav rau cov kev pabcuam tau muab faib yooj yim heev: tus naj npawb ntawm cov servers qhov kev pabcuam muaj, qhov siab tshaj plaws ntawm cov peev txheej nws tuaj yeem siv tau. "Easy" ntawm no tsis txhais hais tias nws yog ib qho yooj yim mus use, tab sis nyob rau hauv lub siab hais tias kev faib peev txheej yog ua manually.

Txoj kev no kuj tso cai rau peb ua tshwj xeeb hlau configurations rau ib txoj haujlwm khiav ntawm lub server no. Yog tias txoj haujlwm khaws cov ntaub ntawv ntau, ces peb siv 4U server nrog lub chassis nrog 38 disks. Yog hais tias txoj hauj lwm yog kev suav dawb huv, ces peb tuaj yeem yuav pheej yig dua 1U server. Qhov no suav nrog ua haujlwm zoo. Ntawm lwm yam, txoj hauv kev no tso cai rau peb siv plaub zaug tsawg dua lub tshuab nrog lub thauj khoom piv rau ib tus phooj ywg kev sib raug zoo.

Xws li kev ua tau zoo hauv kev siv cov khoom siv suav yuav tsum ua kom muaj txiaj ntsig kev lag luam, yog tias peb mus los ntawm qhov chaw uas kim tshaj plaws yog servers. Tau ntev, kho vajtse yog tus kim tshaj plaws, thiab peb siv zog ntau los txo tus nqi ntawm cov khoom siv, los nrog kev ua txhaum cai algorithms los txo cov kev ntseeg siab ntawm cov khoom siv. Thiab niaj hnub no peb tau mus txog theem uas tus nqi ntawm tus neeg rau zaub mov tau tso tseg tsis muaj kev txiav txim siab. Yog tias koj tsis xav txog qhov tseeb exotics, ces qhov tshwj xeeb configuration ntawm cov servers hauv khib tsis muaj teeb meem. Tam sim no peb muaj lwm qhov teeb meem - tus nqi ntawm qhov chaw nyob ntawm tus neeg rau zaub mov hauv cov ntaub ntawv chaw, uas yog, qhov chaw nyob hauv khib.

Paub tias qhov no yog qhov teeb meem, peb txiav txim siab los xam seb peb siv cov racks zoo li cas.
Peb coj tus nqi ntawm cov neeg rau zaub mov muaj zog tshaj plaws los ntawm cov kev lag luam uas tsim nyog, suav tias muaj pes tsawg tus servers peb tuaj yeem tso rau hauv racks, pes tsawg txoj haujlwm peb yuav khiav ntawm lawv raws li cov qauv qub "ib lub server = ib txoj haujlwm" thiab ntau npaum li cas. kev ua haujlwm tuaj yeem siv cov khoom siv. Lawv suav thiab los kua muag. Nws muab tawm tias peb qhov kev ua tau zoo hauv kev siv racks yog li 11%. Cov lus xaus yog pom tseeb: peb yuav tsum tau nce kev ua haujlwm ntawm kev siv cov chaw zov me nyuam. Nws yuav zoo li tias qhov kev daws teeb meem yog qhov pom tseeb: koj yuav tsum tau khiav ob peb txoj haujlwm ntawm ib lub server ib zaug. Tab sis qhov no yog qhov uas cov teeb meem pib.

Kev teeb tsa loj dhau los ua qhov nyuaj heev - tam sim no tsis tuaj yeem muab ib pawg rau ib tus neeg rau zaub mov. Tom qab tag nrho, tam sim no ob peb txoj haujlwm ntawm cov lus txib sib txawv tuaj yeem raug tso tawm ntawm ib lub server. Tsis tas li ntawd, qhov kev teeb tsa yuav tsis sib haum rau cov kev siv sib txawv. Kev kuaj mob kuj tseem yuav nyuaj: yog tias koj pom CPU ntau dua lossis siv disk ntawm lub server, koj tsis paub tias txoj haujlwm twg ua rau muaj teeb meem.

Tab sis qhov tseem ceeb tshaj plaws yog tias tsis muaj kev sib cais ntawm cov haujlwm ua haujlwm ntawm tib lub tshuab. Ntawm no, piv txwv li, yog ib daim duab ntawm qhov nruab nrab lub sij hawm teb ntawm ib tug neeg rau zaub mov ua hauj lwm ua ntej thiab tom qab lwm computational daim ntawv thov raug launched nyob rau tib lub server, nyob rau hauv tsis muaj txoj kev muaj feem xyuam rau cov thawj ib - lub sij hawm teb ntawm lub ntsiab hauj lwm tau nce ho.

One-cloud - data center level OS hauv Odnoklassniki

Obviously, koj yuav tsum tau khiav hauj lwm nyob rau hauv lub thawv los yog nyob rau hauv virtual machines. Txij li thaum yuav luag tag nrho peb cov dej num khiav hauv ib qho OS (Linux) lossis hloov kho rau nws, peb tsis tas yuav txhawb nqa ntau qhov kev ua haujlwm sib txawv. Raws li, virtualization tsis xav tau; vim qhov nyiaj siv ua haujlwm ntxiv, nws yuav ua haujlwm tsawg dua qhov ntim khoom.

Raws li kev siv cov thawv rau kev khiav haujlwm ncaj qha ntawm cov servers, Docker yog tus neeg sib tw zoo: cov duab hauv cov ntaub ntawv daws teeb meem nrog kev teeb tsa tsis sib haum xeeb zoo. Qhov tseeb tias cov duab tuaj yeem tsim los ntawm ntau cov khaubncaws sab nraud povtseg tso cai rau peb txo qis cov ntaub ntawv xav tau los siv rau hauv cov txheej txheem, sib cais cov khoom sib txawv rau hauv cov txheej txheem sib cais. Tom qab ntawd cov txheej txheem yooj yim (thiab feem ntau cov voluminous) yuav raug cached sai sai thoob plaws hauv tag nrho cov txheej txheem, thiab xa ntau ntau hom kev siv thiab cov qauv, tsuas yog cov txheej me me yuav tsum tau xa mus.

Ntxiv rau, kev sau npe npaj txhij thiab cov duab cim npe hauv Docker muab peb cov txheej txheem npaj ua ntej rau kev hloov kho thiab xa cov lej rau kev tsim khoom.

Docker, zoo ib yam li lwm yam thev naus laus zis zoo sib xws, muab qee theem ntawm cov thawv cais tawm ntawm lub thawv. Piv txwv li, kev cais lub cim xeeb - txhua lub ntim tau muab kev txwv rau kev siv lub cim xeeb ntawm lub tshuab, dhau qhov uas nws yuav tsis haus. Koj tseem tuaj yeem cais cov ntim raws li kev siv CPU. Rau peb, txawm li cas los xij, txheej txheem rwb thaiv tsev tsis txaus. Tab sis ntxiv rau qhov hauv qab no.

Ncaj nraim khiav ntim ntawm cov servers tsuas yog ib feem ntawm qhov teeb meem. Lwm qhov yog cuam tshuam nrog hosting ntim ntawm servers. Koj yuav tsum nkag siab tias lub thawv twg tuaj yeem muab tso rau ntawm lub server twg. Qhov no tsis yog ib txoj haujlwm yooj yim, vim tias cov thawv ntim khoom yuav tsum tau muab tso rau ntawm cov servers kom ceev li sai tau yam tsis muaj kev txo qis. Qhov kev tso kawm zoo li no tseem tuaj yeem nyuaj los ntawm qhov kev zam txim rau qhov pom. Feem ntau peb xav tso replicas ntawm tib qhov kev pab cuam nyob rau hauv sib txawv racks los yog txawm nyob rau hauv txawv chav ntawm cov ntaub ntawv chaw, yog li ntawd yog hais tias ib tug khib los yog chav tsis ua hauj lwm, peb tsis tam sim ntawd poob tag nrho cov kev pab cuam replicas.

Distributing containers manually tsis yog ib qho kev xaiv thaum koj muaj 8 txhiab servers thiab 8-16 txhiab ntim.

Tsis tas li ntawd, peb xav muab cov neeg tsim khoom muaj kev ywj pheej ntau dua hauv kev faib cov peev txheej kom lawv tuaj yeem tuav lawv cov kev pabcuam hauv kev tsim lawv tus kheej, yam tsis muaj kev pabcuam los ntawm tus thawj coj. Nyob rau tib lub sijhawm, peb xav kom tswj xyuas kom qee qhov kev pabcuam me yuav tsis siv tag nrho cov peev txheej ntawm peb cov chaw khaws ntaub ntawv.

Obviously, peb xav tau ib txheej tswj uas yuav ua qhov no cia li.

Yog li peb tuaj rau ib daim duab yooj yim thiab nkag siab tias txhua tus kws kos duab nyiam: peb squares.

One-cloud - data center level OS hauv Odnoklassniki

one-cloud masters yog ib pawg tsis ua haujlwm rau huab orchestration. Tus tsim tawm xa ib qho manifest rau tus tswv, uas muaj tag nrho cov ntaub ntawv tsim nyog los tuav cov kev pabcuam. Raws li nws, tus tswv muab cov lus txib rau cov minions xaiv (cov tshuab tsim los khiav cov thawv). Cov minions muaj peb tus neeg sawv cev, uas tau txais cov lus txib, teeb tsa nws cov lus txib rau Docker, thiab Docker teeb tsa lub linux kernel los tso lub thawv sib thooj. Ntxiv nrog rau kev ua raws li cov lus txib, tus neeg sawv cev txuas ntxiv qhia rau tus tswv txog kev hloov pauv hauv lub xeev ntawm ob lub tshuab minion thiab cov ntim khoom khiav ntawm nws.

Kev faib nyiaj txiag

Tam sim no cia saib qhov teeb meem ntawm kev faib cov peev txheej nyuaj rau ntau tus minions.

Cov ntaub ntawv suav hauv ib-huab yog:

  • Tus nqi ntawm lub zog processor siv los ntawm ib txoj haujlwm tshwj xeeb.
  • Tus nqi ntawm lub cim xeeb muaj rau txoj haujlwm.
  • Network khiav. Txhua tus minions muaj ib lub network tshwj xeeb nrog kev txwv bandwidth, yog li nws tsis yooj yim sua kom faib cov haujlwm yam tsis xav txog cov ntaub ntawv uas lawv xa tawm hauv lub network.
  • Disks. Ntxiv rau, pom tseeb, rau qhov chaw rau cov haujlwm no, peb kuj faib hom disk: HDD lossis SSD. Disks tuaj yeem ua haujlwm tsawg kawg ntawm kev thov ib ob - IOPS. Yog li ntawd, rau cov dej num uas tsim kom muaj IOPS ntau dua li ib lub disk tuaj yeem ua tau, peb kuj faib "spindles" - uas yog, cov khoom siv disk uas yuav tsum tau tshwj tseg rau txoj haujlwm.

Tom qab ntawd rau qee qhov kev pabcuam, piv txwv li rau cov neeg siv-cache, peb tuaj yeem sau cov khoom siv hauv qhov no: 400 processor cores, 2,5 TB ntawm lub cim xeeb, 50 Gbit / s tsheb khiav hauv ob qho tib si, 6 TB ntawm HDD chaw nyob ntawm 100 spindles. Los yog nyob rau hauv daim ntawv paub ntau dua li qhov no:

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

Cov neeg siv-cache cov kev pabcuam tsuas yog siv ib feem ntawm tag nrho cov peev txheej muaj nyob rau hauv cov txheej txheem tsim khoom. Yog li ntawd, kuv xav kom paub tseeb tias tam sim ntawd, vim yog tus neeg teb xov tooj yuam kev lossis tsis, tus neeg siv-cache tsis haus ntau cov peev txheej dua li muab faib rau nws. Qhov ntawd yog, peb yuav tsum txwv cov peev txheej. Tab sis peb tuaj yeem khi cov quota rau dab tsi?

Cia peb rov qab mus rau peb daim duab yooj yim heev ntawm kev sib cuam tshuam ntawm cov khoom thiab rov ua dua nrog cov ntsiab lus ntxiv - zoo li qhov no:

One-cloud - data center level OS hauv Odnoklassniki

Dab tsi catches koj lub qhov muag:

  • Lub web frontend thiab suab paj nruag siv cais pawg ntawm tib daim ntawv thov server.
  • Peb tuaj yeem paub qhov txawv ntawm cov txheej txheej txheej txheej uas cov pawg no koom nrog: pem hauv ntej, caches, cov ntaub ntawv khaws cia thiab txheej txheem tswj.
  • Lub frontend yog heterogeneous; nws muaj qhov sib txawv ua haujlwm subsystems.
  • Caches tseem tuaj yeem tawg thoob plaws lub subsystem uas nws cov ntaub ntawv lawv cache.

Cia peb rov kos duab dua:

One-cloud - data center level OS hauv Odnoklassniki

Bah! Yog, peb pom hierarchy! Qhov no txhais tau hais tias koj tuaj yeem faib cov peev txheej hauv cov khoom loj dua: muab tus tsim tawm lub luag haujlwm rau ib qho ntawm cov hierarchy no sib raug rau cov kev ua haujlwm subsystem (xws li "suab paj nruag" hauv daim duab), thiab muab cov quota rau tib theem ntawm hierarchy. Cov hierarchy no kuj tso cai rau peb los npaj cov kev pabcuam yooj yim dua rau kev tswj xyuas yooj yim. Piv txwv li, peb faib tag nrho lub vev xaib, vim qhov no yog ib pawg loj heev ntawm cov servers, ua ob peb pawg me me, pom hauv daim duab li group1, group2.

Los ntawm kev tshem tawm cov kab ntxiv, peb tuaj yeem sau txhua qhov ntawm peb daim duab hauv ib daim ntawv zoo nkauj: group1.web.front, api.music.front, user-cache.cache.

Qhov no yog li cas peb tuaj rau lub tswvyim ntawm "hierarchical queue". Nws muaj lub npe zoo li "group1.web.front". Ib qho quota rau cov peev txheej thiab cov neeg siv txoj cai raug muab rau nws. Peb yuav muab rau tus neeg los ntawm DevOps txoj cai xa cov kev pabcuam rau cov kab, thiab cov neeg ua haujlwm zoo li no tuaj yeem tso tawm ib yam dab tsi hauv kab, thiab tus neeg ntawm OpsDev yuav muaj cai tswj hwm, thiab tam sim no nws tuaj yeem tswj cov kab, muab cov neeg nyob ntawd, muab txoj cai rau cov neeg no, thiab lwm yam. Cov kev pabcuam uas khiav ntawm cov kab no yuav khiav hauv cov kab ke. Yog hais tias lub queue lub xam quota tsis txaus los ua tag nrho cov kev pab cuam ib zaug, ces lawv yuav raug tua sequentially, yog li tsim cov queue nws tus kheej.

Cia peb saib ze dua ntawm cov kev pabcuam. Ib qho kev pabcuam muaj lub npe tsim nyog, uas ib txwm suav nrog lub npe ntawm cov kab. Tom qab ntawd lub vev xaib kev pabcuam pem hauv ntej yuav muaj lub npe ok-web.group1.web.front. Thiab daim ntawv thov kev pabcuam server uas nws nkag mus yuav raug hu ok-app.group1.web.front. Txhua qhov kev pabcuam muaj qhov tshwm sim, uas qhia meej txog tag nrho cov ntaub ntawv tsim nyog rau kev tso kawm ntawm cov tshuab tshwj xeeb: pes tsawg cov kev pabcuam no siv, qhov kev teeb tsa xav tau rau nws, pes tsawg replicas yuav tsum muaj, cov khoom siv rau kev ua haujlwm tsis ua haujlwm ntawm qhov kev pabcuam no. Thiab tom qab qhov kev pabcuam raug muab tso ncaj qha rau ntawm cov tshuab, nws cov xwm txheej tshwm sim. Lawv kuj raug hu ua unambiguously - raws li tus lej piv txwv thiab lub npe kev pabcuam: 1.ok-web.group1.web.front, 2.ok-web.group1.web.front,…

Qhov no yog qhov yooj yim heev: los ntawm saib tsuas yog lub npe ntawm lub thawv khiav, peb tuaj yeem nrhiav tau sai heev.

Tam sim no cia peb saib ze dua ntawm qhov xwm txheej no ua tau li cas: cov haujlwm.

Task Isolation Classes

Txhua txoj haujlwm hauv OK (thiab, tej zaum, txhua qhov chaw) tuaj yeem muab faib ua pawg:

  • Luv Latency Tasks - prod. Rau cov haujlwm thiab cov kev pabcuam zoo li no, cov lus teb qeeb (latency) yog qhov tseem ceeb heev, sai npaum li cas txhua qhov kev thov yuav raug ua tiav los ntawm qhov system. Piv txwv ntawm cov haujlwm: web fronts, caches, application servers, OLTP cia, thiab lwm yam.
  • xam teeb meem - batch. Ntawm no, kev ua haujlwm ceev ntawm txhua qhov kev thov tshwj xeeb tsis tseem ceeb. Rau lawv, nws yog ib qho tseem ceeb npaum li cas xam cov hauj lwm no yuav ua nyob rau hauv ib tug tej yam (ntev) lub sij hawm (throughput). Cov no yuav yog cov haujlwm ntawm MapReduce, Hadoop, kev kawm tshuab, kev txheeb cais.
  • Cov haujlwm tom qab - tsis ua haujlwm. Rau cov hauj lwm zoo li no, tsis muaj latency los yog throughput tseem ceeb heev. Qhov no suav nrog ntau yam kev xeem, kev tsiv teb tsaws, rov suav dua, thiab hloov pauv cov ntaub ntawv los ntawm ib hom mus rau lwm qhov. Ntawm ib sab, lawv zoo ib yam li cov lej suav, ntawm qhov tod tes, nws tsis muaj teeb meem rau peb sai npaum li cas lawv ua tiav.

Cia peb saib yuav ua li cas cov haujlwm zoo li no siv cov peev txheej, piv txwv li, lub hauv paus processor.

Cov hauj lwm ncua sij hawm luv luv. Cov haujlwm zoo li no yuav muaj tus qauv siv CPU zoo ib yam li qhov no:

One-cloud - data center level OS hauv Odnoklassniki

Kev thov los ntawm tus neeg siv tau txais rau kev ua, txoj haujlwm pib siv tag nrho cov CPU cores uas muaj, ua nws, rov qab teb, tos qhov kev thov tom ntej thiab nres. Qhov kev thov tom ntej tuaj txog - dua peb xaiv txhua yam uas nyob ntawd, xam nws, thiab tos rau lwm qhov.

Txhawm rau lav qhov tsawg kawg nkaus latency rau txoj haujlwm zoo li no, peb yuav tsum siv cov peev txheej siab tshaj plaws uas nws siv thiab khaws cov lej xav tau ntawm cov minion (lub tshuab uas yuav ua tiav txoj haujlwm). Tom qab ntawd cov qauv kev tshwj tseg rau peb qhov teeb meem yuav ua raws li hauv qab no:

alloc: cpu = 4 (max)

thiab yog tias peb muaj lub tshuab minion nrog 16 cores, ces raws nraim plaub yam haujlwm no tuaj yeem muab tso rau ntawm nws. Peb tshwj xeeb tshaj yog nco ntsoov tias qhov nruab nrab processor noj ntawm cov haujlwm no feem ntau qis heev - uas yog qhov pom tseeb, txij li ib feem tseem ceeb ntawm lub sijhawm ua haujlwm tos rau qhov kev thov thiab tsis muaj dab tsi.

Kev suav cov dej num. Lawv cov qauv yuav txawv me ntsis:

One-cloud - data center level OS hauv Odnoklassniki

Qhov nruab nrab CPU cov peev txheej siv rau cov haujlwm zoo li no yog qhov siab heev. Feem ntau peb xav tau txoj haujlwm xam kom ua tiav hauv qee lub sijhawm, yog li peb yuav tsum tau tseg qhov tsawg kawg nkaus ntawm cov txheej txheem nws xav tau kom tag nrho cov kev suav ua tiav hauv lub sijhawm tsim nyog. Nws cov qauv tshwj xeeb yuav zoo li no:

alloc: cpu = [1,*)

"Thov tso nws rau ntawm tus minion uas muaj tsawg kawg yog ib qho tseem ceeb pub dawb, thiab tom qab ntawd ntau npaum li muaj, nws yuav noj txhua yam."

Ntawm no qhov kev ua tau zoo ntawm kev siv yog twb zoo dua li ntawm kev ua haujlwm nrog kev ncua luv luv. Tab sis qhov nce yuav ntau dua yog tias koj muab ob hom kev ua haujlwm ntawm ib lub tshuab minion thiab faib nws cov peev txheej ntawm kev mus. Thaum ib txoj hauj lwm nrog ncua sij hawm luv luv yuav tsum muaj lub processor, nws tau txais tam sim ntawd, thiab thaum tsis xav tau cov peev txheej, lawv raug xa mus rau kev ua haujlwm suav, piv txwv li qee yam zoo li no:

One-cloud - data center level OS hauv Odnoklassniki

Tab sis yuav ua li cas thiaj ua tau li ntawd?

Ua ntej, cia peb saib ntawm prod thiab nws cov alloc: cpu = 4. Peb yuav tsum tseg plaub cores. Hauv Docker khiav qhov no tuaj yeem ua tau ob txoj hauv kev:

  • Siv qhov kev xaiv --cpuset=1-4, i.e. faib plaub qhov tshwj xeeb ntawm lub tshuab rau kev ua haujlwm.
  • Siv --cpuquota=400_000 --cpuperiod=100_000, muab cov quota rau lub sijhawm ua haujlwm, piv txwv li qhia tias txhua 100 ms ntawm lub sijhawm tiag tiag txoj haujlwm siv tsis pub ntau tshaj 400 ms ntawm lub sijhawm ua haujlwm. Tib plaub cores tau txais.

Tab sis qhov twg ntawm cov txheej txheem no tsim nyog?

cpuset zoo li ntxim nyiam heev. Txoj hauj lwm muaj plaub lub cores, uas txhais tau hais tias processor caches yuav ua hauj lwm zoo li sai tau. Qhov no kuj muaj qhov tsis zoo: peb yuav tsum tau ua txoj haujlwm ntawm kev faib cov lej hla ntawm lub tshuab tsis siv lub tshuab tsis siv lub OS, thiab qhov no yog qhov haujlwm tsis tseem ceeb, tshwj xeeb tshaj yog tias peb sim tso cov haujlwm ua haujlwm ntawm cov haujlwm no. tshuab. Cov kev ntsuam xyuas tau pom tias qhov kev xaiv nrog cov quota yog qhov zoo dua ntawm no: txoj kev ua haujlwm no muaj kev ywj pheej ntau dua hauv kev xaiv cov tub ntxhais ua haujlwm tam sim no thiab lub sijhawm ua haujlwm tau faib ua haujlwm zoo dua.

Cia peb xav txog yuav ua li cas thiaj li tau txais kev tshwj tseg hauv Docker raws li qhov tsawg kawg nkaus ntawm cov cores. Cov quota rau batch ua hauj lwm yog tsis muaj ntxiv, vim hais tias tsis muaj yuav tsum tau txwv qhov siab tshaj plaws, nws yog txaus los lav qhov tsawg kawg nkaus. Thiab ntawm no qhov kev xaiv haum zoo docker run --cpushares.

Peb tau pom zoo tias yog ib lub batch xav tau kev lees paub tsawg kawg yog ib qho tseem ceeb, ces peb qhia --cpushares=1024, thiab yog tias muaj tsawg kawg yog ob cores, ces peb qhia --cpushares=2048. Cpu shares tsis cuam tshuam rau txhua txoj hauv kev nrog kev faib khoom ntawm lub sijhawm ua haujlwm ntev npaum li nws muaj txaus. Yog li, yog tias cov khoom tam sim no tsis siv tag nrho nws plaub cores, tsis muaj dab tsi txwv kev ua haujlwm batch, thiab lawv tuaj yeem siv sijhawm ntxiv processor. Tab sis nyob rau hauv ib qho teeb meem uas muaj ib tug tsis txaus processors, yog hais tias prod tau noj tag nrho plaub ntawm nws cov cores thiab tau mus txog nws cov quota, lub sij hawm ntxiv processor yuav muab faib proportionally rau cpushares, piv txwv li nyob rau hauv ib tug teeb meem ntawm peb dawb cores, ib tug yuav tsum. muab rau ib txoj hauj lwm nrog 1024 cpushares, thiab ob qho ntxiv yuav muab rau ib txoj hauj lwm nrog 2048 cpushares.

Tab sis siv quota thiab shares tsis txaus. Peb yuav tsum tau ua kom paub tseeb tias ib txoj hauj lwm nrog ncua sij hawm luv luv tau txais qhov tseem ceeb tshaj li cov hauj lwm batch thaum faib lub sij hawm processor. Yog tias tsis muaj qhov tseem ceeb li no, txoj haujlwm batch yuav siv sijhawm tag nrho lub sijhawm processor thaum lub sijhawm nws xav tau los ntawm cov khoom. Tsis muaj cov kev xaiv xaiv qhov tseem ceeb hauv Docker khiav, tab sis Linux CPU teem caij txoj cai los ua ke. Koj tuaj yeem nyeem txog lawv hauv kev nthuav dav S, SΡ“S,, thiab nyob rau hauv lub moj khaum ntawm tsab xov xwm no peb yuav mus los ntawm lawv luv luv:

  • SCHED_OTHER
    Los ntawm lub neej ntawd, txhua tus neeg siv cov txheej txheem ib txwm siv ntawm lub tshuab Linux tau txais.
  • SCHED_BATCH
    Tsim los rau cov txheej txheem siv nyiaj ntau. Thaum muab ib txoj hauj lwm rau ntawm lub processor, lub npe hu ua kev nplua raug qhia: txoj haujlwm no yuav tsis tshua tau txais cov peev txheej processor yog tias tam sim no tau siv los ntawm txoj haujlwm nrog SCHED_OTHER
  • SCHED_IDLE
    Cov txheej txheem keeb kwm yav dhau nrog qhov tseem ceeb tsawg, txawm tias qis dua qhov zoo -19. Peb siv peb lub tsev qiv ntawv qhib ib nio, txhawm rau teeb tsa txoj cai tsim nyog thaum pib lub thawv los ntawm kev hu

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

Tab sis txawm tias koj tsis ua haujlwm hauv Java, tib yam tuaj yeem ua tiav siv chrt hais kom ua:

chrt -i 0 $pid

Cia peb sau tag nrho peb cov kev sib cais rau hauv ib lub rooj kom pom tseeb:

Rwb thaiv tsev chav kawm
Alloc piv txwv
Docker khiav cov kev xaiv
sched_setscheduler chrt *

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

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

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

*Yog tias koj tab tom ua chrt los ntawm sab hauv lub thawv, koj yuav xav tau lub peev xwm sys_nice, vim tias los ntawm lub neej ntawd Docker tshem tawm qhov peev xwm no thaum pib lub thawv.

Tab sis cov dej num siv tsis tau tsuas yog lub processor, tab sis kuj yog kev khiav tsheb, uas cuam tshuam rau lub latency ntawm lub network ua hauj lwm txawm ntau tshaj li qhov tsis raug faib ntawm cov khoom siv processor. Yog li ntawd, peb ib txwm xav kom tau raws nraim tib daim duab rau kev khiav tsheb. Ntawd yog, thaum ib txoj haujlwm prod xa ib co pob ntawv mus rau lub network, peb txwv qhov siab tshaj plaws ceev (formula alloc: lan = [*,500mbps) ), nrog cov khoom twg tuaj yeem ua qhov no. Thiab rau batch peb lav tsuas yog qhov tsawg kawg nkaus throughput, tab sis tsis txwv qhov siab tshaj plaws (formula alloc: lan = [10Mbps,*) ) Hauv qhov no, cov khoom lag luam yuav tsum tau txais qhov tseem ceeb tshaj li kev ua haujlwm batch.
Ntawm no Docker tsis muaj qhov tseem ceeb uas peb tuaj yeem siv tau. Tab sis nws los rau peb pab Linux Traffic Control. Peb muaj peev xwm ua tau raws li qhov xav tau nrog kev pab ntawm kev qhuab qhia Hierarchical Fair Service Curve. Nrog nws cov kev pab, peb paub qhov txawv ntawm ob chav tsheb: high-preority prod thiab low-priority batch/idle. Yog li ntawd, lub configuration rau kev khiav tawm yog zoo li no:

One-cloud - data center level OS hauv Odnoklassniki

ntawm no 1:0 yog "hauv paus qdisc" ntawm hsfc kev qhuab qhia; 1: 1 - hsfc tus me nyuam chav nrog tag nrho bandwidth txwv ntawm 8 Gbit / s, nyob rau hauv uas cov menyuam kawm ntawv ntawm tag nrho cov ntim tau muab tso rau; 1: 2 - hsfc cov menyuam kawm ntawv yog ib txwm muaj rau tag nrho cov batch thiab idle cov dej num nrog "dynamic" txwv, uas tau tham hauv qab no. Cov chav kawm hsfc cov menyuam uas tseem tshuav yog cov chav kawm tshwj xeeb rau tam sim no khiav cov thawv ntim khoom nrog cov kev txwv sib xws rau lawv qhov kev tshwm sim - 450 thiab 400 Mbit / s. Txhua chav kawm hsfc raug xa mus rau qdisc queue fq lossis fq_codel, nyob ntawm Linux ntsiav version, kom tsis txhob pob ntawv poob thaum lub tsheb tawg.

Feem ntau, tc kev qhuab qhia ua haujlwm tseem ceeb tsuas yog cov tsheb khiav tawm. Tab sis peb xav ua kom muaj kev lag luam tseem ceeb dhau los - tom qab tag nrho, qee qhov haujlwm batch tuaj yeem yooj yim xaiv tag nrho cov khoom xa tuaj, tau txais, piv txwv li, ib pawg loj ntawm cov ntaub ntawv nkag rau daim ntawv qhia & txo. Rau qhov no peb siv lub module ifb, uas tsim ib qho ifbX virtual interface rau txhua lub network interface thiab redirects cov tsheb khiav los ntawm lub interface mus rau cov tsheb khiav tawm ntawm ifbX. Ntxiv mus, rau ifbX, tag nrho cov kev qhuab qhia tib yam ua haujlwm los tswj cov tsheb khiav tawm, uas qhov kev teeb tsa hsfc yuav zoo sib xws:

One-cloud - data center level OS hauv Odnoklassniki

Thaum lub sij hawm kev sim, peb pom tias hsfc qhia tau qhov zoo tshaj plaws thaum 1: 2 chav kawm ntawm cov tsis muaj qhov tseem ceeb batch / idle tsheb yog txwv rau minion tshuab kom tsis pub ntau tshaj ib txoj kab dawb. Tsis tas li ntawd, kev khiav tsheb tsis tseem ceeb muaj feem cuam tshuam ntau dhau ntawm latency ntawm cov khoom lag luam. miniond txiav txim siab qhov tam sim no tus nqi ntawm cov bandwidth dawb txhua thib ob, ntsuas qhov nruab nrab ntawm kev siv tsheb khiav ntawm txhua qhov khoom-ua haujlwm ntawm tus minion muab. One-cloud - data center level OS hauv Odnoklassniki thiab rho tawm nws los ntawm lub network interface bandwidth One-cloud - data center level OS hauv Odnoklassniki nrog me me paj, i.e.

One-cloud - data center level OS hauv Odnoklassniki

Bands raug txhais ntawm nws tus kheej rau kev nkag mus thiab tawm. Thiab raws li qhov tseem ceeb tshiab, miniond rov kho qhov tsis muaj qhov tseem ceeb hauv chav kawm 1: 2.

Yog li, peb tau siv tag nrho peb qhov kev cais tawm: cov khoom, batch thiab idle. Cov chav kawm no cuam tshuam rau kev ua tau zoo ntawm cov haujlwm. Yog li ntawd, peb txiav txim siab muab cov cwj pwm no nyob rau saum toj ntawm lub hierarchy, yog li ntawd thaum saib lub npe ntawm hierarchical queue nws yuav pom tseeb tam sim ntawd peb tab tom cuam tshuam nrog:

One-cloud - data center level OS hauv Odnoklassniki

Tag nrho peb cov phooj ywg web ΠΈ music cov fronts yog ces muab tso rau hauv lub hierarchy nyob rau hauv prod. Piv txwv li, nyob rau hauv batch, cia peb muab qhov kev pab cuam suab paj nruag catalog, uas ib ntus suav sau ib phau ntawv teev npe ntawm cov ntaub ntawv mp3 upload rau Odnoklassniki. Ib qho piv txwv ntawm kev pabcuam hauv qab tsis ua haujlwm yuav yog suab paj nruag transformer, uas normalizes suab paj nruag theem.

Nrog cov kab ntxiv raug tshem tawm dua, peb tuaj yeem sau peb cov npe kev pabcuam zoo dua los ntawm kev ntxiv cov haujlwm cais tawm mus rau qhov kawg ntawm tag nrho cov npe pabcuam: web.front.prod, catalog.music.batch, transformer.music.idle.

Thiab tam sim no, saib lub npe ntawm cov kev pabcuam, peb nkag siab tsis yog nws ua haujlwm li cas, tab sis kuj yog nws cov chav kawm cais, uas txhais tau tias nws qhov kev thuam, thiab lwm yam.

Txhua yam zoo heev, tab sis muaj ib qho tseeb iab. Nws yog tsis yooj yim sua kom cais tag nrho cov hauj lwm khiav ntawm ib lub tshuab.

Dab tsi peb tswj kom ua tiav: yog tias batch siv ntau heev tsuas CPU cov peev txheej, tom qab ntawd tus tsim-hauv Linux CPU teem sijhawm ua nws txoj haujlwm zoo heev, thiab tsis muaj qhov cuam tshuam rau cov khoom lag luam. Tab sis yog tias cov hauj lwm batch no pib nquag ua hauj lwm nrog kev nco, ces kev sib nrig sib cuam tshuam twb tshwm sim. Qhov no tshwm sim vim hais tias cov hauj lwm prod yog "ntxuav" ntawm lub processor lub cim xeeb caches - vim li ntawd, cache tsis nce, thiab lub processor ua cov khoom lag luam qeeb dua. Xws li ib txoj hauj lwm batch tuaj yeem ua rau kom lub latency ntawm peb cov khoom ntim khoom los ntawm 10%.

Kev sib cais kev khiav tsheb yog qhov nyuaj dua vim qhov tseeb tias niaj hnub network phaib muaj cov kab ke sab hauv ntawm pob ntawv. Yog tias lub pob ntawv los ntawm kev ua haujlwm batch tau txais ua ntej, ces nws yuav yog thawj zaug xa tawm ntawm lub cable, thiab tsis muaj dab tsi tuaj yeem ua rau nws.

Tsis tas li ntawd, tam sim no peb tsuas yog tswj hwm los daws qhov teeb meem ntawm kev ua ntej TCP kev khiav tsheb: txoj hauv kev hsfc tsis ua haujlwm rau UDP. Thiab txawm tias nyob rau hauv cov ntaub ntawv ntawm TCP tsheb, yog hais tias lub batch ua hauj lwm tsim ib tug ntau ntawm cov tsheb, qhov no kuj muab li 10% nce nyob rau hauv ncua sij hawm ntawm cov khoom ua hauj lwm.

txhaum cai

Ib qho ntawm cov hom phiaj thaum tsim ib-huab yog los txhim kho qhov kev ua txhaum ntawm Odnoklassniki. Yog li ntawd, tom ntej no kuv xav xav txog ntau yam kev ua tau zoo ntawm kev ua tsis tiav thiab kev sib tsoo. Cia peb pib nrog qhov xwm txheej yooj yim - lub thawv tsis ua haujlwm.

Lub thawv nws tus kheej tuaj yeem ua tsis tau ntau txoj hauv kev. Qhov no tuaj yeem yog qee yam kev sim, kab laum lossis kev ua yuam kev hauv qhov tshwm sim, vim tias cov khoom lag luam pib siv cov peev txheej ntau dua li qhia hauv qhov tshwm sim. Peb muaj ib rooj plaub: tus tsim tawm tau siv ib qho kev ua haujlwm nyuaj, rov ua haujlwm ntau zaus, xav txog nws tus kheej thiab dhau los ua tsis meej pem uas thaum kawg qhov teeb meem tau looped hauv txoj kev tsis tseem ceeb. Thiab txij li cov khoom lag luam muaj qhov tseem ceeb dua li lwm tus ntawm tib lub minions, nws tau pib haus tag nrho cov khoom siv muaj. Hauv qhov xwm txheej no, kev cais tawm, lossis theej lub sijhawm CPU sijhawm, tau cawm ib hnub. Yog tias ib txoj haujlwm raug faib rau quota, txoj haujlwm yuav tsis haus ntau dua. Yog li ntawd, batch thiab lwm yam khoom ua haujlwm uas khiav ntawm tib lub tshuab tsis pom dab tsi.

Qhov teeb meem thib ob yog lub thawv poob. Thiab ntawm no rov pib txoj cai cawm peb, txhua tus paub lawv, Docker nws tus kheej ua haujlwm zoo. Yuav luag tag nrho cov hauj lwm prod muaj ib txwm rov pib txoj cai. Qee lub sij hawm peb siv on_failure rau batch ua hauj lwm los yog debugging prod ntim.

Koj tuaj yeem ua li cas yog tias tag nrho cov minion tsis muaj?

Obviously, khiav lub thawv ntawm lwm lub tshuab. Qhov nthuav ntawm no yog dab tsi tshwm sim rau tus IP chaw nyob (es) muab rau lub thawv.

Peb tuaj yeem muab cov thawv ntim tib qhov chaw nyob IP raws li lub tshuab minion uas cov thawv no khiav. Tom qab ntawd, thaum lub thawv tso rau ntawm lwm lub tshuab, nws qhov chaw nyob IP hloov pauv, thiab txhua tus neeg siv khoom yuav tsum nkag siab tias lub thawv tau txav mus los, thiab tam sim no lawv yuav tsum tau mus rau qhov chaw sib txawv, uas yuav tsum muaj kev pabcuam Kev Tshawb Fawb.

Service Discovery yog yooj yim. Muaj ntau ntau txoj kev daws teeb meem ntawm kev ua lag luam ntawm kev sib txawv ntawm kev ua txhaum cai rau kev teeb tsa ib daim ntawv teev npe. Feem ntau cov kev daws teeb meem no siv load balancer logic, khaws cov kev teeb tsa ntxiv hauv daim ntawv ntawm KV cia, thiab lwm yam.
Txawm li cas los xij, peb xav kom zam dhau qhov yuav tsum tau ua raws li kev sau npe sib cais, vim tias qhov no yuav txhais tau tias kev qhia txog qhov tseem ceeb uas siv los ntawm txhua qhov kev pabcuam hauv kev tsim khoom. Qhov no txhais tau hais tias qhov no yog qhov muaj peev xwm ntawm qhov tsis ua haujlwm, thiab koj yuav tsum xaiv lossis tsim cov kev daws teeb meem txhaum cai, uas yog qhov nyuaj heev, siv sijhawm thiab kim heev.

Thiab ib qho teeb meem loj dua: txhawm rau kom peb cov txheej txheem qub ua haujlwm nrog tus tshiab, peb yuav tsum tau rov sau dua txhua txoj haujlwm kom siv qee yam kev pabcuam Discovery. Muaj ntau txoj haujlwm, thiab hauv qee qhov chaw nws yuav luag tsis yooj yim thaum nws los txog rau cov khoom siv qis uas ua haujlwm ntawm OS kernel qib lossis ncaj qha nrog cov khoom siv. Kev siv cov haujlwm no siv cov qauv kev daws teeb meem, xws li sab tsheb yuav txhais tau tias nyob rau hauv qee qhov chaw ntxiv load, nyob rau hauv lwm tus - ib qho teeb meem ntawm kev khiav hauj lwm thiab ntxiv tsis ua hauj lwm scenarios. Peb tsis xav ua kom nyuaj, yog li peb txiav txim siab los siv Kev Pabcuam Discovery xaiv tau.

Hauv ib-huab, tus IP ua raws lub thawv, piv txwv li txhua qhov haujlwm ua haujlwm muaj nws tus IP chaw nyob. Qhov chaw nyob no yog "zoo li qub": nws tau muab rau txhua qhov piv txwv thaum qhov kev pabcuam thawj zaug xa mus rau huab. Yog tias qhov kev pabcuam muaj tus lej sib txawv hauv nws lub neej, tom qab ntawd thaum kawg nws yuav raug muab ntau qhov chaw nyob IP raws li muaj ntau zaus.

Tom qab ntawd, cov chaw nyob no tsis hloov pauv: lawv tau muab tso rau ib zaug thiab txuas ntxiv mus nyob thoob plaws lub neej ntawm kev pabcuam hauv kev tsim khoom. IP chaw nyob ua raws cov ntim thoob plaws hauv lub network. Yog tias lub thawv xa mus rau lwm tus minion, ces qhov chaw nyob yuav ua raws nws.

Yog li, daim ntawv qhia ntawm lub npe kev pabcuam rau nws cov npe ntawm IP chaw nyob hloov pauv tsis tshua muaj. Yog tias koj saib dua ntawm cov npe ntawm cov kev pabcuam uas peb tau hais thaum pib ntawm tsab xov xwm (1.ok-web.group1.web.front.prod, 2.ok-web.group1.web.front.prod, …), peb yuav pom tias lawv zoo li FQDNs siv hauv DNS. Yog lawm, los qhia cov npe ntawm cov kev pabcuam rau lawv qhov chaw nyob IP, peb siv DNS raws tu qauv. Ntxiv mus, qhov DNS no rov qab tag nrho cov chaw nyob IP ntawm txhua lub ntim - ob qho tib si khiav thiab nres (cia peb hais tias peb qhov kev hloov pauv tau siv, thiab peb muaj tsib qhov chaw nyob rau ntawd - tag nrho tsib yuav rov qab los). Cov neeg siv khoom, tau txais cov ntaub ntawv no, yuav sim tsim kom muaj kev sib txuas nrog txhua tsib replicas - thiab yog li txiav txim siab cov uas ua haujlwm. Qhov kev xaiv no rau kev txiav txim siab muaj ntau txhim khu kev qha; nws tsis koom nrog DNS lossis Kev Tshawb Nrhiav Kev Pabcuam, uas txhais tau hais tias tsis muaj teeb meem nyuaj los daws kom ntseeg tau qhov cuam tshuam ntawm cov ntaub ntawv thiab kev ua txhaum ntawm cov tshuab no. Ntxiv mus, hauv cov kev pabcuam tseem ceeb uas ua haujlwm ntawm tag nrho lub portal nyob ntawm, peb tsis tuaj yeem siv DNS txhua, tab sis tsuas yog nkag mus rau IP chaw nyob rau hauv kev teeb tsa.

Kev ua raws li IP hloov pauv tom qab ntim khoom tuaj yeem yog qhov tsis tseem ceeb - thiab peb yuav saib seb nws ua haujlwm li cas nrog cov piv txwv hauv qab no:

One-cloud - data center level OS hauv Odnoklassniki

Wb hais tias tus huab-ib tus tswv muab cov lus txib rau minion M1 kom khiav 1.ok-web.group1.web.front.prod nrog qhov chaw nyob 1.1.1.1. Ua haujlwm ntawm tus minion NKAUJ CUA, uas tshaj tawm qhov chaw nyob no rau cov servers tshwj xeeb txoj kev reflector. Lub tom kawg muaj kev sib tham BGP nrog lub network kho vajtse, uas txoj hauv kev ntawm qhov chaw nyob 1.1.1.1 ntawm M1 tau txhais. M1 khiav cov pob khoom hauv lub thawv siv Linux. Muaj peb txoj kev reflector servers, vim qhov no yog ib feem tseem ceeb ntawm ib-huab infrastructure - tsis muaj lawv, lub network hauv ib-huab yuav tsis ua haujlwm. Peb muab lawv tso rau hauv cov racks sib txawv, yog tias ua tau nyob rau hauv cov chav sib txawv ntawm cov ntaub ntawv chaw, kom txo tau qhov ua tau ntawm peb qhov ua tsis tau zoo tib lub sijhawm.

Tam sim no cia peb xav tias kev sib txuas ntawm ib tus huab huab tswv thiab M1 minion ploj lawm. Tam sim no tus huab-ib tus tswv yuav ua raws li qhov kev xav tias M1 tau ua tsis tiav. Ntawd yog, nws yuav muab cov lus txib rau M2 minion kom tso tawm web.group1.web.front.prod nrog tib qhov chaw nyob 1.1.1.1. Tam sim no peb muaj ob txoj kev tsis sib haum xeeb ntawm lub network rau 1.1.1.1: ntawm M1 thiab ntawm M2. Txhawm rau daws qhov tsis sib haum xeeb, peb siv Multi Exit Discriminator, uas tau teev tseg hauv BGP tshaj tawm. Qhov no yog tus lej uas qhia qhov hnyav ntawm txoj kev tshaj tawm. Ntawm cov kev tsis sib haum xeeb, txoj kev nrog tus nqi qis MED yuav raug xaiv. Tus tswv ib-huab txhawb MED ua ib feem tseem ceeb ntawm cov thawv IP chaw nyob. Thawj zaug, qhov chaw nyob yog sau nrog qhov loj txaus MED = 1 Nyob rau hauv qhov xwm txheej ntawm xws li kev hloov pauv lub thawv xwm txheej ceev, tus tswv txo MED, thiab M000 yuav tau txais cov lus txib kom tshaj tawm qhov chaw nyob 000 nrog MED =. 2 Qhov piv txwv uas khiav ntawm M1.1.1.1 yuav nyob hauv qhov no tsis muaj kev sib txuas, thiab nws txoj hmoo ntxiv txaus siab rau peb kom txog thaum kev sib txuas nrog tus tswv rov qab los, thaum nws yuav raug tso tseg zoo li qub.

xwm txheej

Txhua qhov chaw tswj xyuas cov ntaub ntawv ib txwm ua haujlwm me me ua tsis tau zoo. Thawv overflow yog tus qauv yuav luag txhua qhov chaw.

Cia peb saib yuav ua li cas peb daws qhov xwm txheej ceev, xws li lub zog tsis ua haujlwm hauv ib lossis ntau chav ntawm lub chaw khaws ntaub ntawv.

Dab tsi yog qhov kev huam yuaj txhais tau li cas rau lub chaw tswj xyuas cov ntaub ntawv? Ua ntej tshaj plaws, qhov no yog qhov ua tsis tau zoo ib zaug ntawm ntau lub tshuab, thiab kev tswj hwm yuav tsum tau tsiv teb tsaws ntau lub ntim tib lub sijhawm. Tab sis yog tias qhov kev puas tsuaj loj heev, ces nws yuav tshwm sim tias txhua txoj haujlwm tsis tuaj yeem rov muab faib rau lwm cov minions, vim tias qhov peev txheej ntawm cov ntaub ntawv chaw poob qis dua 100% ntawm cov khoom thauj.

Feem ntau cov xwm txheej yog nrog los ntawm kev ua tsis tiav ntawm cov txheej txheem tswj. Qhov no tuaj yeem tshwm sim vim qhov tsis ua haujlwm ntawm nws cov cuab yeej siv, tab sis ntau zaus vim qhov tseeb tias kev sib tsoo tsis raug kuaj, thiab cov txheej txheem tswj nws tus kheej poob vim qhov nce load.

Koj tuaj yeem ua dab tsi txog tag nrho cov no?

Kev tsiv teb tsaws chaw loj txhais tau hais tias muaj ntau yam kev ua ub no, kev tsiv teb tsaws chaw, thiab kev xa tawm tshwm sim hauv cov txheej txheem. Txhua qhov kev tsiv teb tsaws chaw yuav siv sijhawm qee lub sijhawm uas yuav tsum tau xa thiab ntim cov duab ntim rau cov minions, tso tawm thiab pib lub thawv, thiab lwm yam. Yog li ntawd, nws yog qhov tsim nyog tias cov haujlwm tseem ceeb tshaj tawm ua ntej qhov tseem ceeb tsawg dua.

Cia peb saib dua ntawm cov kev pabcuam hierarchy uas peb paub thiab sim txiav txim siab seb cov haujlwm twg peb xav khiav ua ntej.

One-cloud - data center level OS hauv Odnoklassniki

Tau kawg, cov no yog cov txheej txheem uas ncaj qha rau kev ua cov neeg siv kev thov, piv txwv li prod. Peb qhia qhov no nrog muab qhov tseem ceeb - tus lej uas tuaj yeem muab rau hauv kab. Yog hais tias ib lub queue muaj qhov tseem ceeb dua, nws cov kev pabcuam raug muab tso ua ntej.

Ntawm cov khoom peb muab qhov tseem ceeb dua, 0; ntawm batch - qis me ntsis, 100; ntawm idle - txawm qis dua, 200. Qhov tseem ceeb yog siv hierarchically. Txhua txoj haujlwm qis dua hauv hierarchy yuav muaj qhov tseem ceeb sib xws. Yog tias peb xav tau caches hauv prod yuav tsum tau launched ua ntej frontends, ces peb muab qhov tseem ceeb rau cache = 0 thiab rau pem hauv ntej subqueues = 1. Yog hais tias, piv txwv li, peb xav kom lub ntsiab portal yuav tsum launched los ntawm fronts ua ntej, thiab lub suab paj nruag pem hauv ntej xwb. tom qab ntawd, peb tuaj yeem muab qhov tseem ceeb qis dua rau tom kawg - 10.

Qhov teeb meem tom ntej yog tsis muaj peev txheej. Yog li, ntau cov khoom siv, tag nrho cov chav tsev ntawm cov ntaub ntawv chaw, ua tsis tiav, thiab peb rov pib dua ntau cov kev pabcuam uas tam sim no tsis muaj peev txheej txaus rau txhua tus. Koj yuav tsum txiav txim siab seb cov dej num twg yuav tsum txi txhawm rau ua kom cov kev pabcuam tseem ceeb ua haujlwm.

One-cloud - data center level OS hauv Odnoklassniki

Tsis zoo li qhov tseem ceeb ntawm kev tso npe, peb tsis tuaj yeem txiav txim siab tsis ncaj ncees rau tag nrho cov haujlwm ua haujlwm; qee qhov tseem ceeb rau kev ua haujlwm ntawm lub portal. Yog li ntawd, peb tau nthuav qhia nyias preemption qhov tseem ceeb hauj lwm. Thaum muab tso rau, txoj haujlwm tseem ceeb dua tuaj yeem ua ntej, piv txwv li, nres, txoj haujlwm tseem ceeb dua yog tias tsis muaj cov minions dawb ntxiv. Hauv qhov no, txoj haujlwm uas muaj qhov tseem ceeb tsawg yuav nyob twj ywm tsis muaj chaw, piv txwv li yuav tsis muaj ib tus minion tsim nyog rau nws nrog cov peev txheej txaus txaus.

Nyob rau hauv peb hierarchy, nws yog ib qho yooj yim heev los qhia ib tug preemption preemption xws li prod thiab batch ua hauj lwm preempt los yog tso tseg tsis ua hauj lwm, tab sis tsis yog ib tug, los ntawm kev qhia ib tug tseem ceeb rau idle sib npaug zos rau 200. Ib yam li nyob rau hauv cov ntaub ntawv ntawm kev tso kawm preempt, peb tuaj yeem siv peb cov hierarchy txhawm rau piav qhia ntau txoj cai. Piv txwv li, cia peb qhia tias peb txi cov suab paj nruag ua haujlwm yog tias peb tsis muaj peev txheej txaus rau lub vev xaib tseem ceeb, teeb tsa qhov tseem ceeb rau cov kab sib txuas qis dua: 10.

Tag nrho DC xwm txheej

Vim li cas thiaj yuav tag nrho cov chaw khaws ntaub ntawv tsis ua haujlwm? Element. Yog ib tug ncej zoo nag xob nag cua cuam tshuam rau kev ua haujlwm ntawm cov ntaub ntawv chaw. Cov ntsiab lus tuaj yeem suav tias yog cov neeg tsis muaj tsev nyob uas ib zaug hlawv cov optics hauv manifold, thiab cov ntaub ntawv chaw ua haujlwm tau ploj mus rau lwm qhov chaw. Qhov ua rau tsis ua haujlwm kuj tuaj yeem yog tib neeg: tus neeg teb xov tooj yuav tshaj tawm cov lus txib uas tag nrho cov ntaub ntawv chaw yuav poob. Qhov no tuaj yeem tshwm sim vim muaj kab mob loj. Nyob rau hauv dav dav, cov ntaub ntawv chaw vau yog tsis yooj yim. Qhov no tshwm sim rau peb ib zaug txhua ob peb lub hlis.

Thiab qhov no yog qhov peb ua los tiv thaiv ib tus neeg los ntawm tweeting #alive.

Thawj lub tswv yim yog kev sib cais. Txhua qhov xwm txheej huab cua raug cais tawm thiab tuaj yeem tswj hwm cov tshuab hauv ib lub chaw khaws ntaub ntawv nkaus xwb. Ntawd yog, qhov poob ntawm huab vim yog kab laum lossis tsis raug tus neeg teb xov tooj cov lus txib yog qhov poob ntawm ib qho chaw khaws ntaub ntawv xwb. Peb npaj txhij rau qhov no: peb muaj txoj cai rov ua dua nyob rau hauv uas replicas ntawm daim ntawv thov thiab cov ntaub ntawv nyob rau hauv tag nrho cov ntaub ntawv chaw. Peb siv cov ntaub ntawv tsis raug cai thiab ua ntu zus rau kev ua tsis tiav.
Txij li niaj hnub no peb muaj plaub lub chaw zov me nyuam, uas txhais tau hais tias plaub cais, cais tag nrho ntawm ib-huab.

Txoj hauv kev no tsis tsuas yog tiv thaiv lub cev tsis ua haujlwm, tab sis kuj tuaj yeem tiv thaiv tus neeg ua haujlwm yuam kev.

Dab tsi ntxiv tuaj yeem ua tiav nrog tib neeg qhov xwm txheej? Thaum tus neeg teb xov tooj muab cov huab coj txawv txawv lossis muaj peev xwm txaus ntshai, nws yuav raug nug kom daws qhov teeb meem me me kom pom tias nws xav li cas. Piv txwv li, yog tias qhov no yog qee yam kev txwv ntau ntawm ntau cov replicas lossis tsuas yog cov lus txib coj txawv txawv - txo tus naj npawb ntawm replicas lossis hloov lub npe ntawm daim duab, thiab tsis yog tus lej version hauv qhov kev tshwm sim tshiab.

One-cloud - data center level OS hauv Odnoklassniki

Cov txiaj ntsim tau los

Distinctive nta ntawm ib-huab:

  • Hierarchical thiab pom lub npe tswv yim rau cov kev pabcuam thiab ntim khoom, uas tso cai rau koj kom paub sai sai seb txoj haujlwm yog dab tsi, nws cuam tshuam txog dab tsi thiab nws ua haujlwm li cas thiab leej twg yog lub luag haujlwm rau nws.
  • Peb thov peb cov txheej txheem ntawm kev sib txuas cov khoom- thiab batch-cov haujlwm ntawm minions los txhim kho kev ua haujlwm ntawm kev sib koom tshuab. Hloov ntawm cpuset peb siv CPU quotas, sib koom, CPU teem sijhawm cov cai thiab Linux QoS.
  • Nws tsis tuaj yeem cais cov thawv ntim tag nrho khiav ntawm tib lub tshuab, tab sis lawv cov kev sib raug zoo tseem nyob hauv 20%.
  • Kev teeb tsa cov kev pabcuam rau hauv hierarchy pab nrog kev siv kev puas tsuaj rov qab los kev tso kawm thiab preemption priorities.

FAQ

Vim li cas peb ho tsis muab cov tshuaj npaj ua ntej?

  • Cov chav sib txawv ntawm kev ua haujlwm cais yuav tsum muaj kev sib txawv thaum muab tso rau minions. Yog tias cov khoom lag luam tuaj yeem muab tso los ntawm tsuas yog khaws cov peev txheej, tom qab ntawd cov haujlwm batch thiab idle yuav tsum tau muab tso, taug qab qhov kev siv cov peev txheej ntawm cov tshuab minion.
  • Yuav tsum tau coj mus rau hauv tus account cov peev txheej siv los ntawm cov haujlwm, xws li:
    • network bandwidth;
    • hom thiab "spindles" ntawm disks.
  • Qhov yuav tsum tau qhia txog qhov tseem ceeb ntawm cov kev pabcuam thaum muaj xwm txheej ceev, cov cai thiab quotas ntawm cov lus txib rau cov peev txheej, uas yog daws tau siv hierarchical queues hauv ib-huab.
  • Yuav tsum muaj tib neeg lub npe ntawm cov thawv kom txo tau lub sij hawm teb rau cov xwm txheej thiab cov xwm txheej
  • Qhov tsis tuaj yeem ntawm kev siv ib zaug dav dav ntawm Kev Tshawb Fawb Kev Tshawb Fawb; qhov yuav tsum tau muaj nyob rau lub sijhawm ntev nrog cov haujlwm tuav ntawm cov khoom siv kho vajtse - ib yam dab tsi uas tau daws los ntawm "zoo li qub" IP chaw nyob tom qab ntim khoom, thiab, vim li ntawd, qhov xav tau rau kev sib koom ua ke nrog lub network loj.

Tag nrho cov haujlwm no yuav xav tau kev hloov pauv tseem ceeb ntawm cov kev daws teeb meem uas twb muaj lawm kom haum rau peb, thiab, tau soj ntsuam cov haujlwm ua haujlwm, peb pom tau tias peb tuaj yeem txhim kho peb tus kheej cov kev daws teeb meem nrog kwv yees li cov nqi zog tib yam. Tab sis koj qhov kev daws teeb meem yuav yooj yim dua rau kev khiav lag luam thiab txhim kho - nws tsis muaj qhov tsis tsim nyog abstractions uas txhawb kev ua haujlwm uas peb tsis xav tau.

Rau cov neeg uas nyeem cov kab kawg, ua tsaug rau koj ua siab ntev thiab mloog!

Tau qhov twg los: www.hab.com

Ntxiv ib saib