Iz­man­to­jot slodzes iz­lī­dzi­nā­ša­nu, piekļuve serverim tiek vien­mē­rī­gi sadalīta starp dažādiem ap­ara­tū­ras resursiem, iz­man­to­jot tehnisko ri­si­nā­ju­mu, ko sauc par slodzes iz­lī­dzi­nā­tā­ju. Tas nodrošina stabilu piekļuves ātrumu, kas ir ļoti svarīgi po­ten­ciā­lo klientu un klientu pie­sais­tī­ša­nai.

Kas ir slodzes iz­lī­dzi­nā­ša­na?

Slodzes iz­lī­dzi­nā­ša­na ir īpaši populāra serveru teh­no­lo­ģi­ju jomā un apraksta metodi, kurā pie­pra­sī­ju­mi tiek sadalīti starp dažādiem serveriem fonā, lie­to­tā­jiem to nemanot. Šim nolūkam iz­man­to­tais slodzes iz­lī­dzi­nā­tājs var būt īstenots kā aparatūra vai prog­ram­ma­tū­ra. Tas vienam domēnam pie šķir vairākus serverus, neradot adrešu kon­flik­tus, un ir pieejams pub­lis­ka­jā domēnā.

Pa­kār­to­ta­jiem tīmekļa serveriem tiek piešķirti nosaukumi, pie­vie­no­jot domēna pa­pla­ši­nā­ju­mus www1, www2, www3 utt. Tas ļauj, iz­man­to­jot slodzes iz­lī­dzi­nā­ša­nu, no­dro­ši­nāt tīmekļa vietnes pie­eja­mī­bu ar vienu un to pašu URL, pat ja aiz tās darbojas vairāki serveri. Tādējādi tiek novērsta serveru pārslodze, jo ārējie pie­pra­sī­ju­mi tiek sadalīti starp dažādām fi­zis­ka­jām iekārtām klasterī. Lietotāji parasti to nepamana, jo pie­pra­sī­ju­mu sadale notiek fonā, pa­ma­to­jo­ties uz sa­rež­ģī­tiem al­go­rit­miem.

Slodzes iz­lī­dzi­nā­ša­na var būt nozīmīga ne tikai tīmekļa serveru kontekstā, bet arī, piemēram, datoriem, kas darbojas ar vairākiem pro­ce­so­riem. Šādos gadījumos slodzes iz­lī­dzi­nā­tājs nodrošina, ka pie­pra­sī­ju­mi tiek vien­mē­rī­gi sadalīti starp dažādiem pro­ce­so­riem, tādējādi pa­lie­li­not aprēķinu jaudu. Slodzes iz­lī­dzi­nā­tā­ji ir pie­pra­sī­ti arī, iz­man­to­jot kon­tei­ne­ru prog­ram­ma­tū­ru, piemēram, Ku­ber­ne­tes. Šajā gadījumā tie nodrošina, ka darba slodzes tiek efektīvi sadalītas starp dažādiem podiem.

Kā darbojas slodzes iz­lī­dzi­nā­ša­na?

Pie­pra­sī­ju­mi tīmekļa serverim, piemēram, lapu skatījumu veidā, sākotnēji tiek ap­strā­dā­ti slodzes iz­lī­dzi­nā­tā­jā. Tas pārņem slodzes sadali, pārsūtot piekļuves mē­ģi­nā­ju­mus uz dažādiem serveriem. Slodzes iz­lī­dzi­nā­tājs var būt īstenots kā aparatūra vai prog­ram­ma­tū­ra, taču darbības princips paliek nemainīgs: pie­pra­sī­jums nonāk slodzes iz­lī­dzi­nā­tā­jā, un atkarībā no iz­man­to­tās metodes ierīce vai prog­ram­ma­tū­ra pārsūta datus uz attiecīgo serveri.

Teh­nis­kais pamats ir DNS procedūra: lietotāji piekļūst tīmekļa vietnei tikai, iz­man­to­jot URL. Tas tiek pārvērsts IP adresē, iz­man­to­jot DNS, kas pēc tam norāda uz slodzes iz­lī­dzi­nā­tā­ju. Ideālā gadījumā šis process lie­to­tā­jiem paliek ne­pa­ma­nīts.

Image: Diagram of how load balancing works
A load balancer dis­tri­bu­tes the load of client accesses over the internet or web to various servers.

Kādas ir līdz­sva­ro­tas slodzes sadales priekš­ro­cī­bas?

Trīs galvenās priekš­ro­cī­bas, ko sniedz pareizi ieviests slodzes iz­lī­dzi­nā­tājs, ir šādas:

  • Op­ti­mi­zē­ti piekļuves laiki: satiksmes sadale starp vairākiem serveriem var no­dro­ši­nāt īsākus piekļuves laikus, pat ja vien­lai­kus tiek saņemti daudzi pie­pra­sī­ju­mi.
  • Augstāka kļūdu to­le­ran­ces pakāpe: slodzes ba­lan­sē­tājs palielina kļūdu to­le­ran­ces pakāpi, jo datplūsma no lēna servera tiek au­to­mā­tis­ki novirzīta uz citiem klastera serveriem. Ja kāds serveris nav pieejams, hostētā tīmekļa vietne paliek pieejama.
  • Vien­kār­šo­ta sistēmas uz­tu­rē­ša­na: slodzes iz­lī­dzi­nā­ša­na ie­vē­ro­ja­mi atvieglo serveru sistēmas uz­tu­rē­ša­nu. Kon­fi­gu­rā­ci­jas un at­jau­ni­nā­ju­mus var veikt, kamēr serveri darbojas, bez ie­vē­ro­ja­ma veikt­spē­jas zuduma. Slodzes iz­lī­dzi­nā­tājs atpazīst uz­tu­rē­ša­nas statusu un attiecīgi pāradresē pie­pra­sī­ju­mus.

Kādi ir dažādie slodzes iz­lī­dzi­nā­ša­nas veidi?

Ienākošo pie­pra­sī­ju­mu sadale ir atkarīga no izvēlētā algoritma. Po­pu­lā­rā­kie slodzes iz­lī­dzi­nā­ša­nas algoritmi ir: „Round Robin“, „Weighted Round Robin“, „Least Connec­tions“ un „Weighted Least Connec­tions“.

Round Robin

„Round Robin“ apraksta procedūru, kurā ienākošie servera pie­pra­sī­ju­mi tiek ap­strā­dā­ti rindā ar slodzes iz­lī­dzi­nā­tā­ja palīdzību un sadalīti starp vairākiem serveriem. Katrs jauns pie­pra­sī­jums tiek piešķirts nākamajam serverim secībā. Rezultātā piekļuves pie­pra­sī­ju­mi var tikt vien­mē­rī­gi sadalīti pa slodzes iz­lī­dzi­nā­ša­nas klasteri. Ne­at­ka­rī­gi no pie­pra­sī­ju­ma stei­dza­mī­bas vai servera slodzes in­ten­si­tā­tes, Round Robin visus procesus apstrādā vienādi. Slodzes ba­lan­sē­tā­ji, kas darbojas pēc Round Robin principa, ir īpaši piemēroti vidēm, kurās visām instancēm ir pieejami aptuveni vienādi resursi.

Svērtais apļveida algoritms

Klasiskā „round-robin“ algoritma trūkumus he­te­ro­gē­nos serveru klasteros var kompensēt, iz­man­to­jot svērto „round-robin“ sadali. Ienākošie pie­pra­sī­ju­mi tiek sadalīti, ņemot vērā katra servera statisko svērumu. Šo svērumu iepriekš nosaka ad­mi­nis­tra­tors.

Piemēram, vis­jau­dī­gā­ka­jam serverim var piešķirt vērtību „100“, bet mazāk jaudīgiem serveriem — vērtību „50“. Šādā kon­fi­gu­rā­ci­jā serveris ar svērumu „100“ katrā kārtā saņemtu divus pie­pra­sī­ju­mus no slodzes iz­lī­dzi­nā­tā­ja, savukārt serveris ar svērumu „50“ saņemtu tikai vienu pie­pra­sī­ju­mu. Svērto Round Robin metodi slodzes iz­lī­dzi­nā­ša­nai gal­ve­no­kārt vajadzētu izmantot gadījumos, kad klastera serveriem ir pieejami atšķirīgi resursi.

Vismazāk sa­vie­no­ju­mu

Abi „round-robin“ algoritmi, slodzes iz­lī­dzi­nā­tā­jam secīgi sadalot serveru pie­pra­sī­ju­mus, neņem vērā to, cik daudz sa­vie­no­ju­mu pa­kļau­ta­jiem serveriem ir jāuztur noteiktā laika periodā. Tas var izraisīt vairāku sa­vie­no­ju­mu uz­krā­ša­nos uz viena klastera servera. Rezultātā serveris tiek pār­slo­dzēts, pat ja tas apstrādā mazāk sa­vie­no­ju­mu nekā citi. Algoritms „least-connec­tions” pasargā no šādas si­tuā­ci­jas. Tas sadala pie­pra­sī­ju­mus, pa­ma­to­jo­ties uz katra servera esošajiem sa­vie­no­ju­miem— serveris ar vismazāko aktīvo sa­vie­no­ju­mu skaitu saņem nākamo pie­pra­sī­ju­mu no slodzes ba­lan­sē­tā­ja. Šo slodzes ba­lan­sē­ša­nas metodi ieteicams izmantot vien­da­bī­gās serveru klasteros, kur visiem datoriem ir pieejami sa­lī­dzi­nā­mi resursi.

Metode ar vismazāko sa­vie­no­ju­mu skaitu

Ja serveru klasterī ir at­šķi­rī­gas jaudas, tad vietā al­go­rit­mam, kas balstās uz vismazāko sa­vie­no­ju­mu skaitu, būtu jāizmanto slodzes iz­lī­dzi­nā­ša­na, pa­ma­to­jo­ties uz esošo sa­vie­no­ju­mu svērto sa­da­lī­ju­mu. Šajā gadījumā tiek ņemts vērā gan servera aktīvo sa­vie­no­ju­mu skaits, gan ad­mi­nis­tra­to­ra noteiktie svērumi. Tas nodrošina līdz­sva­ro­tu slodzes sa­da­lī­ju­mu serveru klasterī. Jauni pie­pra­sī­ju­mi tiek au­to­mā­tis­ki novirzīti uz tiem serveriem, kuru aktīvo sa­vie­no­ju­mu attiecība pret attiecīgo servera svērumu liecina par vismazāko pa­šrei­zē­jo slodzi.

Kādas problēmas var rasties, iz­man­to­jot slodzes iz­lī­dzi­nā­ša­nu?

Īpaši e-ko­mer­ci­jas nozarē slodzes iz­lī­dzi­nā­ša­na bieži saskaras ar grūtībām. Lūk, piemērs: tīmekļa vietnes ap­mek­lē­tā­ji pievieno savam iepirkumu grozam preces, kuras vēlas ie­gā­dā­ties. Šīs preces paliek sa­gla­bā­tas visas sesijas laikā, ne­at­ka­rī­gi no tā, uz kuru lapu lietotāji pāriet tiešsais­tes tirdznie­cī­bas vietnē. Tipisks slodzes iz­lī­dzi­nā­tājs sadalītu pie­pra­sī­ju­mus starp dažādiem serveriem. Tas nozīmē, ka groza saturs tiktu zaudēts.

Lai at­ri­si­nā­tu šo problēmu, ir ie­spē­ja­mas divas pieejas. Pirmkārt, slodzes iz­lī­dzi­nā­tājs var reaģēt uz lietotāju IP adresēm. Tādā gadījumā, piemēram, pie­pra­sī­ju­mi no vienas un tās pašas IP adreses vienmēr tiek novirzīti uz to pašu serveri. Otra metode būtu nolasīt sesijas iden­ti­fi­ka­to­ru no paša pie­pra­sī­ju­ma, lai noteiktu, uz kuru serveri pie­pra­sī­jums ir jānosūta.

Kāpēc slodzes iz­lī­dzi­nā­tā­ji ir tik svarīgi?

Ja jūs pelnāt naudu internetā, jūsu uzņēmums nevar atļauties servera darbības pār­trau­ku­mu. Un ja iz­man­to­jat tikai vienu serveri un tas pār­slo­dzes dēļ sabojājas, jūsu tīmekļa vietne vairs nav pieejama po­ten­ciā­la­jiem klientiem. Tas rada vairākas problēmas: pirmkārt, pār­slo­dzes laikā jūs nevarat gūt ieņēmumus. Nav iespējams rezervēt pa­kal­po­ju­mus un veikt pirkumus. Turklāt samazinās (po­ten­ciā­lo) klientu uzticība. Tas ir divkārši slikti lie­to­tā­jiem, kuri pa­sū­tī­ju­ma procesa laikā saskaras ar servera pārslodzi. Bieži rodas liela ne­skaid­rī­ba, un skartie lietotāji nezina, vai pa­sū­tī­jums patiešām ir saņemts un re­ģis­trēts sistēmā.

Pat ja jūs ne­pie­dā­vā­jat pa­kal­po­ju­mus tieši internetā, jūsu tīmekļa vietnei jābūt pieejamai jebkurā brīdī. Tīmekļa vietne ir viens no gal­ve­na­jiem in­for­mā­ci­jas iegūšanas kanāliem. Ja po­ten­ciā­lie klienti meklē in­for­mā­ci­ju par jūsu uzņēmumu internetā un nevar piekļūt jūsu vietnei, viņi, vis­ti­ca­māk, pie­vēr­sī­sies jūsu kon­ku­ren­tiem. Šādus riskus var samazināt, iz­man­to­jot slodzes iz­lī­dzi­nā­tā­ju.

Kā ieviest slodzes iz­lī­dzi­nā­ša­nu savā uzņēmumā

Slodzes iz­lī­dzi­nā­ša­nu var īstenot, iz­man­to­jot gan ap­ara­tū­ras, gan prog­ram­ma­tū­ras ri­si­nā­ju­mus vir­tuā­la­jā serverī. Daudzi pa­kal­po­ju­mu sniedzēji piedāvā pro­fe­sio­nā­lus pilnīgus pa­kal­po­ju­mu kom­plek­tus vai nu kā „in­fras­truk­tū­ru kā pa­kal­po­ju­mu“ (IaaS), vai kā tīkla kom­po­nen­tu jūsu pašu IT in­fras­truk­tū­rai.

Tā kā patentētu slodzes iz­lī­dzi­nā­tā­ju iegāde parasti ir saistīta ar augstām izmaksām, mazāki uzņēmumi bieži vien izvēlas atvērtā koda ri­si­nā­ju­mus, piemēram, NGINX. Tas piedāvā izmaksu ziņā efektīvu veidu, kā no­dro­ši­nāt uzņēmuma tīmekļa vietnes vai citu tīmekļa projektu augstu pie­eja­mī­bu, efektīvi sadalot slodzi serveru tīklā. Tīmekļa hostingu nozarē slodzes iz­lī­dzi­nā­ša­na bieži tiek piedāvāta arī kā papildu funkcija mā­koņ­pa­kal­po­ju­mu serveriem.

Go to Main Menu