Elektronika.lt
 2024 m. gruodžio 23 d. Projektas | Reklama | Žinokite | Klausimai | Prisidėkite | Atsiliepimai | Kontaktai
Paieška portale
EN Facebook RSS

 Kas naujo  Katalogas  Parduotuvės  Forumas  Tinklaraščiai
 Pirmas puslapisSąrašas
 NaujienosSąrašas
 StraipsniaiSąrašas
 - Elektronika, technika
 - Kompiuterija
 - Telekomunikacijos
 - Įvykiai, visuomenė
 - Pažintiniai, įdomybės
 Vaizdo siužetaiSąrašas
 Nuolaidos, akcijosSąrašas
 Produktų apžvalgosSąrašas
 Naudingi patarimaiSąrašas
 Vykdomi projektaiSąrašas
 Schemų archyvasSąrašas
 Teorija, žinynaiSąrašas
 Nuorodų katalogai
 Įvairūs siuntiniai
 Bendravimas
 Skelbimai ir pasiūlymai
 Elektronikos remontas
 Robotų kūrėjų klubas
 RTN žurnalo archyvas






 Verta paskaityti
Gruodžio 23 d. 17:33
Mobilieji ir kompiuteriniai žaidimai: būdas kovoti su šventiniu stresu?
Gruodžio 23 d. 11:31
Dirbtinio intelekto sprendimai kibernetiniam saugumui užtikrinti VU Kauno fakultete
Gruodžio 22 d. 11:24
Energetikos sektoriaus laukia pokyčiai – alternatyvų yra, bet ar užteko laiko pasiruošti?
Gruodžio 21 d. 11:33
Kokį elektronikos įrenginį dovanoti, kad jis vėliau neišaugintų elektros sąskaitos?
Gruodžio 20 d. 17:12
KTU mokslininkai sukūrė nanolazerį – sidabro nanokubus panaudojo šviesos generavimui
Gruodžio 20 d. 14:28
Lietuvių kalba ir technologijos: VU mokslininkų projektas LIEPA-3 atvers naujas galimybes
Gruodžio 20 d. 11:49
Stacionarūs kompiuteriai: koks jų vaidmuo nešiojamųjų kompiuterių eroje?
Gruodžio 20 d. 08:14
„DS Automobiles“ pristato naujausią savo elektrinį flagmaną – „DS N°8“ kupė
Gruodžio 19 d. 20:18
Naudingi patarimai, kurie padės maksimaliai padidinti jūsų elektrinio automobilio priemonės įveikiamą atstumą
Gruodžio 19 d. 17:27
Žaidybinimas: efektyvus švietimo įrankis ar bėgimas nuo tikrovės?
FS25 Tractors
Farming Simulator 25 Mods, FS25 Maps, FS25 Trucks
ETS2 Mods
ETS2 Trucks, ETS2 Bus, Euro Truck Simulator 2 Mods
FS22 Tractors
Farming Simulator 22 Mods, FS22 Maps, FS25 Mods
VAT calculator
VAT number check, What is VAT, How much is VAT
LEGO
Mänguköök, mudelautod, nukuvanker
Thermal monocular
Thermal vision camera,
Night vision ar scope,
Night vision spotting scope
FS25 Mods
FS25 Harvesters, FS25 Tractors Mods, FS25 Maps Mods
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija
FS25 Mods
FS25 Maps, FS25 Cheats, FS25 Install Mods
GTA 6 Weapons
GTA 6 Characters, GTA 6 Map, GTA 6 Vehicles
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps
ATS Trailers
American Truck Simulator Mods, ATS Trucks, ATS Maps
Reklama
 Straipsniai » Kompiuteriai, IT Dalintis | Spausdinti

Tinklalapių augimas – ką daryti, jei jiems pasidaro ankštoka?

Publikuota: 2007-12-08 07:13
Tematika: Kompiuteriai, IT
Skirta: Pradedantiems
Autorius: Sergej Kurakin
Aut. teisės: ©Sergej Kurakin
Inf. šaltinis: Pixel.lt

Daugelis tinklalapių pradeda nuo mažos ir pigios „shared“ prieglobos. Santykinai mažai vietos, jokių ypatingų sąlygų, resursų apribojimai, jokių papildomų modulių. Visi resursai yra viename serveryje – ir HTTP serveris, ir duomenų bazė. Vieną dieną jo savininkai gaus pranešimą iš talpinimo kompanijos, kad jiems laikas keltis kitur arba pirkti sau dedikuotą serverį.

 Rodyti komentarus (2)
Įvertinimas:  1 2 3 4 5 

Daugelis tinklalapių pradeda nuo mažos ir pigios „shared“ prieglobos. Santykinai mažai vietos, jokių ypatingų sąlygų, resursų apribojimai, jokių papildomų modulių – beveik gyvenimas studentų bendrabutyje. Visi resursai yra viename serveryje – ir HTTP serveris, ir duomenų bazė. Jei tinklalapis yra populiarus, vystomas, auga lankytojų skaičius, tai vieną dieną jo savininkai gaus pranešimą iš talpinimo kompanijos, kad jiems laikas keltis kitur arba pirkti sau dedikuotą serverį. Kodėl? Didėjant lankomumui toks tinklalapis pradės reikalauti vis daugiau resursų iš serverio ir Jūsų „kaimynai“ pradės dėl to nerimauti. Vėlgi kaip bendrabutyje, jeigu jūs per ilgai užsibūsite duše, dažnai užimsite viryklę ar per garsiai klausysite muzikos, į jūsų duris ankščiau ar vėliau pasibels kaimynai (kuriems irgi reikia šių resursų) ar bendrabučio administracija (kuri bus nepatenkinta didele sąskaitą ar dar kuo nors).

Savaime aišku, kad šiuo atveju daugelis pasistengs peržiūrėti savo kodą, optimizuoti užklausas į duomenų bazę, pasinaudoti įvairiais kešavimo metodais, bet tai nebus panacėja nuo šios problemos. Anksčiau ar vėliau, beaugant lankomumui bei tinklalapio funkcionalumui jūs vėl susidursite su šia problema.

Taigi sprendžiant iš to, kad projektas auga, jis jums atneša pelną ir jūs jo atsisakyti nenorite, apsisprendžiate persikelti į naujutėlį, dedikuotą, tik jūsų projektui skirtą serverį. Jis bus įdiegtas ir sukonfigūruotas tik jūsų reikmėms, niekas kitas išskyrus jus nenaudos šio serverio resursų. Tam tikrą laiką jūs, kaip ir tūkstančiai jūsų vartotojų, būsite labai patenkinti, kaip veikia tinklalapis. Bet ar ilgam? Naujas galingas serveris – tai naujos galimybes, nauja plėtra, nauji vartotojai. Ir vėl jūs susidursite su ta pačia problema – resursų stoka. Žinoma, jūs galite nusipirkti dar vieną greitą kietąjį diską, įdėti dar kelis GB atminties ar nusipirkti galingesnį mikroprocesorių. Bet kiekvienas „geležies“ gabalas turi savo plėtros ribas. Juk persikrausčius iš bendrabučio į naują butą jūs jį būtinai apstatysite, bet iki tam tikros ribos. Tačiau Jūsų tinklalapis ir lankytojai nežino (ir nenori žinoti) apie apribojimus.

Be to čia būtinai susidursite su viena iš šių problemų – resursų stoka duomenų bazei arba resursų stoka HTTP serveriui (kadangi mes kalbame apie dinaminį tinklalapį). Kodėl?

Duomenų bazės atžvilgiu, kuo daugiau duomenų turite, tuo daugiau resursų reikia jų rūšiavimui, agregavimui, indeksavimui. Galų gale reikia resursų tiesiog jų skaitymui ir perdavimui klientams bei atnaujinimams.

HTTP serveriui reikia resursų ruošiant informaciją vartotojams, HTML puslapių generavimui (kaip pavyzdys, vienas PHP5 „FastCGI“ procesas užima apie 25 MB atminties, norint per sekundę sugebėti aptarnauti 200 užklausų prireiks apie 2,5 GB atminties, jei atsako generavimo laikas yra 0,5 sekundės 25 MB * 200 * 0,5 = 2500 MB, taip pat dar čia nepriskaičiuota atmintis, kurią sunaudos pats PHP skriptas vartotojo duomenims).

Atminties reikia ir pačiai operacinei sistemai, ir failų kešavimui, ir duomenų bazei (o ji irgi labai mėgsta atmintį).

Taigi jūsų tinklalapiui vėl trūksta resursų (arba jūsų butas jums tapo ankštokas ir jame netelpa naujas plazminis televizorius). Kadangi daugelis tinklalapių sudaryti iš 2 pagrindinių komponentų, dažniausiai yra perkamas dar vienas serveris ir atskiriama duomenų bazė nuo HTTP serverio (senus baldus išnešate į ką tik iš kaimyno nupirktą rūsį). Taip laimimi resursai tinklalapiui. Jei jūsų gera „geležis“ ir tinklalapis skirtas Lietuvai, ir pas jus viskas gerai suplanuota (naudojamas įvairus kešavimas, normali duomenų bazės struktūra, puiki palaikymo komandą), šios struktūros užtektų. Tačiau, jeigu projektas yra populiarus naujienų portalas ar kitas jaunimui skirtas resursas – blogai, pažinčių portalai, reikia galvoti plačiau.

Pastaba: aš nekalbu apie tuos atvejus, kai informacija kartais imama realiuoju laiku iš trečių šaltinių ir tinklalapio greitis priklauso nuo jų.

Kas gi būna su tais ypač populiariais projektais? Jie vėl susiduria su resursų problema. Ką jie daro? Vėl perka serverius. Tik dabar jiems svarbu padaryti viską teisingai. Šio atveju reikia labai atsargiai nustatyti, kas yra tas „kaklelis“, kuris neleidžia tinklalapiui greitai veikti ir kiek bei kokių serverių reikia.

Jei problema slypi HTTP serveryje, prireiks mažiausiai 2 naujų serverių. Viena iš jų teks sukonfigūruoti panašiai kaip turimą (arba tiesiog nuklonuoti), o iš kito padaryti apkrovimo paskirstymo serverį (angl. load balancing). Nuo šio momento apkrovimo paskirstymo serveris spręs, kuriam iš esamų HTTP serverių perduoti ateinančios HTTP užklausos aptarnavimą. Savaime aišku, kad atliekant tokius pakeitimus tinklalapio struktūroje reikia nepamiršti apie tykančius pavojus – sesijas, kešavimus, vartotojo užkraunamus failus, tinklalapio failų / skriptų sinchronizavimą – visa tai gali tekti pakeisti ar perdaryti.

Jei jums įdomu, kam reikalingas papildomas apkrovimo paskirstymo serveris, kai viską galima atlikti paprasčiausiai nukreipus dalį vartotojų į naują serverį su kitokiu trečio lygio domenu, atsakymas paprastas – vartotojai neturi nieko pastebėti. Man nepatinka, kai atėjus į tinklalapį mane nukreipia tai į www1.pavyzdys.lt, tai į www5.pavyzdys.lt, o vėliau ir www256.pavyzdys.lt, aš noriu visada lankytis www.pavyzdys.lt, kaip tai darau lankydamasis www.google.com ar www.youtube.com.

Turint tokią struktūrą lengvai, bet kuriuo metu, galima pridėti naują HTTP serverį, juos sukeisti, atnaujinti niekam nieko nepastebint – tereikia nusipirkti naują serverį, jį sukonfigūruoti, pajungti ir pranešti apkrovimo paskirstymo serveriui, kad toks yra.

Nepriklausomai nuo programavimo kalbos „Unix“ / „Linux“ platformoje tam naudojami „Lighttpd“, NGINX arba „Apache 2.2“ serveriai (na gal yra ir kitų, bet apie jų žinomų naudojimo atvejų nesu girdėjęs). Yra įvairios konfigūracijos, kurios leidžia pasiekti įvairių rezultatų, viską galima rasti šių programinių produktų vartotojo instrukcijose.

Kaip tai daroma po „Windows“ platforma man dar nėra žinoma.

Augant HTTP serverio galimybėms vis daugiau skaitymo ir rašymo užklausų atitenka duomenų bazei. Berods iki šio momento ji buvo vienam serveryje. Didėjant užklausų kiekiui, serveris gali nespėti jų patenkinti. Kaip sakė vienas žinomas „MySQL“ specialistas – vis dėlto mus apriboja šviesos greitis.

Taigi ateis ta diena, kai prireiks kelių duomenų bazių serverių, kai tarp jų reikės sinchronizuoti duomenis. Ar tai bus paprasta konfigūracija – vienas tėvinis serveris (kur vykdomas tik duomenų rašymas) ir keli dukteriniai serveriai (kur vykdomas tik skaitymas, o duomenys sinchronizuojami replikacijos būdu), ar tai bus kažkoks sudėtingas „klasteris“ – vėl spręsit jūs, jūsų turimi resursai ir palaikymo komanda.

Mano nuomone, paprasčiausiais būdas yra būtent vienas tėvinis serveris (skirtas tik duomenų rašymui) ir keli dukteriniai, kurie yra sinchronizuojami su tėviniu serveriu ir skirti tik duomenų skaitymui (kadangi skaitymas vyksta žymiai dažniau nei rašymas).

Įgyvendinant tokius projektus reikia nepamiršti ir apie kitas galimybes bei faktorius – tinklo pralaidumą, kešavimo (kaip kliento / naršyklės pusėje, taip ir tinklalapio dalių su „Memcached“ ar „Squid“) galimybes, tamsiąsias elektros dvasias. Taip pat reikėtų nepamiršti, kad kiekvienas tinklalapis yra individualus ir nėra universalių sprendimų.

Tyčia neparodžiau jokių konfigūravimo pavyzdžių. Juos rasite tik realioje aplinkoje, t. y. per bandymus, klaidas, bemieges naktis. Sėkmės jums auginant tinklalapius.


Pixel.lt



Draudžiama platinti, skelbti, kopijuoti
informaciją su nurodyta autoriaus teisių žyma be redakcijos sutikimo.

Global electronic components distributor – Allicdata Electronics

Electronic component supply – „Eurodis Electronics“

LOKMITA – įvairi matavimo, testavimo, analizės ir litavimo produkcija

Full feature custom PCB prototype service

Sveiki ir ekologiški maisto produktai

Mokslo festivalis „Erdvėlaivis Žemė

LTV.LT - lietuviškų tinklalapių vitrina

„Konstanta 42“

Technologijos.lt

Buitinė technika ir elektronika internetu žemos kainos – Zuza.lt

www.esaugumas.lt – apsaugok savo kompiuterį!

PriedaiMobiliems.lt – telefonų priedai ir aksesuarai

Draugiškas internetas


Reklama
‡ 1999–2024 © Elektronika.lt | Autoriaus teisės | Privatumo politika | Atsakomybės ribojimas | Reklama | Turinys | Kontaktai LTV.LT - lietuviškų tinklalapių vitrina Valid XHTML 1.0!
Script hook v, Openiv, Menyoo
gta5mod.net
FS25 Mods, FS25 Tractors, FS25 Maps
fs25mods.lt
Optical filters, UV optics, electro optical crystals
www.eksmaoptics.com
Reklamos paslaugos
SEO sprendimai

www.addad.lt
Elektroninių parduotuvių optimizavimas „Google“ paieškos sistemai
www.seospiders.lt
FS22 mods, Farming simulator 22 mods,
FS22 maps

fs22.com
Reklama


Reklama