Kettamaht ning paralleeltöö ühikud

Aprillis kaasnevate veebimajutusteenuste pakettide muudatustega seoses torkavad tähelepanelikumale kasutajale silma kaks numbrit, mis kõnelevad ressursside suurenemisest. Kui kettamaht võib IT-kaugele inimesele isegi tuttav tunduda, siis paralleeltöö ühik enam mitte. Selgitamegi alljärgnevalt mõlemat lähemalt.

Ütleme siin alguses kohe ära, et kumbki ei vasta otseselt küsimusele „Kui palju mu leheküljel külastajaid võib käia?” või „Kas ma oma serverisse e-poodi saan panna?”

Nendele küsimustele tegelikult otsest vastust ei olegi, küll aga püüame käesoleva blogipostitusega pisut mingitki kõhutunnet tekitada, mis aitaks kasutajal neis küsimustes paremini selgusele jõuda.

Valides veebimajutusteenust oma uuele portaalile, kodulehele või e-poele, on eeltoodud küsimused kindlasti omal kohal. Kui aga valik on juba tehtud ja olemasoleva veebi külastatavus tõuseb ja kasutajal on ressursse juurde vaja, siis enamasti tõstetakse ressursse ja mahtusid juba koos klientide arvuga.

Aga kuidas teha esimest sammu ehk millest alustada?

Kettamaht

Lühidalt kirjeldab kettamaht seda, kui palju andmeid sinu veebimajutusteenusega seotud teenustesse mahub. Asjasse täpsemalt keskendudes saame teada, et see koosneb mitmest osast

  • Failid (need samad failid, mis sul veebiserveris on)
  • Andmebaasid (MySQL andmed ja indeksid)
  • E-post (postkastis asuvad e-kirjad ja manused)
  • Varukoopiad

Tehniliselt on andmete paigutamise mooduseid veebimajutuses erinevaid. Levinud on isegi mudel, kus e-postid, andmebaasid, varukoopiad ning failid asuvad kõik samas veebiserveris, mis tähendab seda, et kui jätta sisuhaldusrakenduse versioon uuendamata või kasutada mõnda katkist pluginat, siis pääsetakse automaatselt ligi ka sinu (või sinu ettevõtte töötajate) e-postide sisule, halvemal juhul ka nende varukoopiatele.

Zone’s on seni olnud rusikareegel, et andmed peavad olema kõik isoleeritud!

  • Failid asuvad veebiserveris.
  • Andmebaasid asuvad eraldiseisvas andmebaasi serveris.
  • E-post’i postkastide sisud asuvad eraldi e-posti klastris.
  • Varukoopiad mitte ei asu ainult eraldi serveris, vaid ka eraldi andmekeskuses, mis tagab näiteks võimaluse taastada andmeid siis, kui andmekeskus peaks maha põlema.

Küsimust „kui palju mingid asjad ruumi võtavad?” analüüsides võib sellele peale vaadates arvata, et kõik on ju arusaadav. Tehnilisema taibuga kasutajal võib aga tekkida kohe täiendav küsimus: kuidas arvestatakse varukoopia mahtu siis, kui varukoopiaid tehakse igapäevaselt ning hoitakse alles kaks nädalat.

Kas siis näiteks 10GB mahuga fail veebiserveris tähendab varukoopias ühtekokku 140GB mahtu? Lihtne vastus sellele küsimusele on loomulikult „ei!”, sest varukoopiad tehakse nö incremental kujul, mis tähendab seda, et kui fail vahepeal muutunud ei ole, siis võtab see ruumi ainult nii palju, kui fail ise ka veebiserveris ruumi võtab.

Keerulisemaks läheb olukord aga siis, kui failis on toimunud muutus, mis tähendab, et tegemist ei ole enam sama failiga ning varukoopiasse tehakse muudetud failist seetõttu täiskoopia. Üldiselt selliseid olukordi tihti ei tule, aga probleemsete kohtadena tasuks kindlasti ära märkida suured logifailid. Kui logifaili suurust võib lugeda juba gigabaitides ning iga päev sinna pisut otsa kirjutatakse, siis arvestataksegi seda kui uut faili, mistõttu võib see allesjäänud kettamahu kiiresti ära süüa. Sellises olukorras tuleks kriitiliselt üle vaadata oma veebirakendus ning seadistada logifailid roteeruma.

Levinumatel raamistikel näiteks laravel ja symfony piisab lihtsast rakenduse seadistamisest. Zone loodud veebiserveri- ja PHP logisid roteeritakse juba automaatselt.

Erinevalt failidest tehakse andmebaasidest varukoopiad täisseisust dump’ina, mis välistab olukorra, kus failisüsteemis on olukord poolik ning andmebaasi ei ole võimalik enam seetõttu sisse lugeda. See tähendab, et 100MB andmebaas võtab 14 päeva jooksul varukoopias mahtu 1400MB. Kuna aga veebiserveri andmebaasid ei ole mõeldud tohutult suurte andmemahtude hoidmiseks, siis antud juhul ei tohiks see probleeme tekitada.

Zone klienditugi aitab kliendil tuvastada suuri ebavajalikke faile ning seeläbi vähendada kettamahtu.

Paralleeltöö ühikud

Lühidalt kirjeldades näitab paraleeltööühik seda, mitu päringut võib samal hetkel sinu veebiserveri pihta teha.

Metafoorina võib hea näite tuua ühistranspordist, kus bussi mahub 50 inimest. Kui üks inimene on kohale viidud, siis pääseb pardale järgmine. Ehk et korraga saab teenindada vaid 50 sõitjat. See, kui palju inimesi ühe „ringiga” kohale viiakse, sõltub sellest, mitu peatust mõni reisija sõidab ja seetõttu ei saa ka täpselt öelda, et buss viib ühe ringiga kohale 50 inimest.

Täpsemalt kirjeldades lähevad paralleeltööühikute alla kõik sellised päringud, mis toimuvad sinu veebilehe külastaja brauserist veebiserveri suunal. Näiteks esimeses paketis välja toodud 250 ütleb, et ühel ja samal hetkel võib toimuda 250 päringut. Sinna alla lähevad kõik päringud. Esmane päring veebilehe pihta, sellele järgnevad stiilifailide, piltide ja javascripti failide päringud.

Tehnilisem kirjeldus: toome näiteks veebi, mille esilehel on kakskümmend pilti, kaks CSS stiilifaili ning kaks faili. See tähendab, et külastaja teeb veebiserveri pihta korraga päringuid 1+20+2+2=25. Veebi esilehte võib seega samaaegselt laadida 250 paralleeltöö ühiku korral 10 klienti.

„Aga kas see tähendab, et mu koduleheküljel võib käia 10 klienti?”, küsite. Vastus on taaskord “ei”.

Kui veebilehe kood on kiire, pildid optimeeritud veebi tarvis piisavalt väikeseks ning css/javascript on minimaliseeritud, siis toimub lehekülje laadimine kiiresti – ütleme 0,2 sekundit. Sellises olukorras saab veebilehte 0,2 sekundi jooksul laadida 10 klienti. Kui aga veebileht on optimeerimata – näiteks pildid käivad igal päringul läbi PHP, kus muudetakse nende suurust läbi koodi ning veebi esilehel tehakse tuhandeid MySQL päringuid, siis võib lehe laadimine ka aega võtta kokku mitmeid sekundeid. See aga tähendab seda, et sama külastajate arv võtab aega pikemalt ning ülejäänud külastajad peavad seetõttu järjekorras ootama.

Ehk siis – mida paremini tehtud veebileht, seda vähem serveriressursse see kasutab ning seda väiksemat paketti see vajab.

Mis siis täpsemalt pakettide juures muutub?

• Virtuaalserveri teenuspakett I
Kettamaht suureneb 2 korda 128 GiB pealt 256 GiB peale ning paralleeltöö ühikud suurenevad 5 korda 50 ühiku pealt 250 peale.

• Virtuaalserveri teenuspakett II
Kettamaht suureneb 2 korda 256 GiB pealt 512 GiB peale ning paralleeltöö ühikud suurenevad 4 korda 100 ühiku pealt 400 peale.

• Virtuaalserveri teenuspakett III
Kettamaht suureneb 2 korda 512 GiB pealt 1 TiB peale ning paralleeltöö ühikud suurenevad peaaegu 4 korda 200 ühiku pealt 750 peale.

Lõpetuseks,

Sa väärid häid asju! Liitu nende saamiseks meie uudiskirjaga Minu Zone keskkonnas „konto seaded” aknas. Tihti saadame uudiskirjaga liitujatele soodustusi, mida mujalt ei leia.

Author: Ingmar Aasoja

Ingmar vastutab Zones tarkvaraarenduse eest. Lisaks meeldib talle Zone platvormi proovile panna katsetades erinevate rakenduste toimivust virtuaalserveris.