We are in the process of migrating this forum. A new space will be available soon. We are sorry for the inconvenience.

Spartesnis hostingas (toks 2 mėnesių darbo rezultatas)


Levasc
04-23-2013, 03:11 PM
Sveiki,
Trumpa ataskaita apie pokyčius, įvykusius mūsų hostingo platformoje per pastaruosius 2 mėnesius.

Naudojame 7 klasterius. Kalbu apie klasterius cluster002 arba cluster007. Kiekvieną jų sudaro dubliuota apkrovos paskirstymo sistema, 1000 serverių (HG tipo), 20-50 bylų serverių ir SQL serveriai.

Apkrovos paskirstymo sistema nukreipia tą patį vartotoją į kitą klasterio serverį. Nesvarbu, kokia tai svetainė.

Lankytojų srautas padalinamas visam klasteriui. Kiekvieną savaitę į kiekvieną klasterį įtraukiami dešimtys naujų serverių. Bendra apkrova išlieka mažesnė nei < 50%.

Tačiau naudojant naujas PHP TVS sistemas (wordpress, prestashop ar kt.) svetainių našumas nepakankamas, todėl lankytojai nenukreipiami į tuos pačius serverius, o jų užklausos paskirstomos po visą klasterį. Pasekmė: lankytojas mato svetainę tokią, kokia buvo sugeneruota prieš tai apsilankiusio lankytojo.

Sprendimas: nukreipti visus svetainės lankytojus į tą patį serverį. Taip lankytojai kurs šių svetainių spartinančiąsias atmintines, kurios pagreitins svetainių įkrovą naujiems lankytojams.

Todėl mes parašėme skriptą klasteriui, kuris nukreipia kiekvienos svetainės lankytojus į tam tikrą serverį.

Naujas sunkumas: atlikus diegimą, dėl didelių kelių svetainių sukeltų apkrovų, sutrikoma serverių veikla. Svetainės naudoja tiek daug pajėgumų, kad nepakako HG serverių !!
Sutrinka vieno serverio veikla, sutrinka ir kitų mažesnių svetainių, esančių tame pačiame serveryje, veikla. Tačiau ne visų prieglobos svetainių veikla.. Sąlyginai ..

Todėl mes perrašėme programinę įrangą tam, kad realiu laiku įvertintume užklausų skaičių, kiekvienos svetainės naudojamus CPU ir RAM resursus (ačiū BigData), tuomet realiu laiku nusprendžiama, ar užklausos nusiunčiamos į vieną serverį, ar į didelių svetainių subklasterį. Taip pat atsižvelgiama į staigius apkrovų padidėjimus. Pavyzdžiui, jeigu įprastai svetainėje apsilanko 100 žmonių per dieną, srautas nukreipiamas į vieną serverį, o jeigu 10000 per vieną valandą, tuomet į didelių svetainių subklasterį.

Pasekmė:
Mažos svetainės ir nuolatos nukreipiamos į savo serverį. Jos yra įkraunamos greitai visiems lankytojams, nes jie yra nukreipiami į tą patį serverį. Serveris nėra per daug apkraunamas, nes mes nuolatos stebime, kiek yra naudojama ir kiek yra laisvų CPU resursų, ir kiek statistiškai vienai užklausai suvartojama CPU resursų. Todėl mes iš anksto pasirūpiname, kad serveriui persiunčiama užklausa bus įvykdyta tinkamai.

Didelės svetainės yra persiunčiamos į didelių svetainių subklasterį, automatiškai. Šis subklasteris padeda izoliuoti dideles svetaines, kurios gali pakenkti mažų svetainių našumui. Mes įvertinome, jeigu svetainė patenka į didelių svetainių subklasterį, jai reikėtų migruoti į VPS, Cloud ar skirtąjį serverį.

Tačiau ji vis dėl to gali likti priegloboje. Mes siūlome neribotą srautą, tačiau tokiu atveju neužtikriname geriausio svetainės pasiekiamumo. Tokiu atveju galioja best-effort principas.

Sutrikus vienam klasterio serveriui, mažos svetainės, esančios šiame serveryje, išlieka pasiekiamos. Klasteris automatiškai persikonfigūruoja ir nukreipia srautą jau į naują serverį.

Taip užtikrinamas stabilus svetainių veikimas, jos būna nuolatos pasiekiamos.

Kas dar lieka:
- informuoti klientą, kad jo svetainė pateko į subklasteri, ir kad teikiamų paslaugų kokybė yra best-effort lygio, ir kad jam vertėtų užsisakyti naują paslaugą: VPS arba Cloud arba dedikuotą serverį.

- mažoms svetainėms mes pagerinsime kiekvieno serverio spartinančiosios atmintinės tarnybą, pakeisime php vykdymo mechanizmą ir nukelsime jį į spartinančiąją atmintinę. Tai dar labiau paspartins mažesnes svetaines.

- Mes pradėsime privačios prieglobos bandymus. Tai bus skirtasis subklasteris su daugybe funkcijų. Subklasterių kūrimui mes naudosime VPS, Cloud arba dedikuotus serverius. Klientas galės lengvai naudotis šia aplinka ir skirtaisiais resursais, kaip dabartine priegloba. Ir kodėl gi neturėti resursų, skirtų RoR, Java ar Python..

Pagarbiai
Octave