Програмирање за Веб. Скалабилност. Програмирање за Веб. Саша Малков [Р338] Саша Малков. Тема 17. Универзитет у Београду Математички факултет 2014/2015

Σχετικά έγγραφα
Анализа Петријевих мрежа

Теорија електричних кола

1.2. Сличност троуглова

налазе се у диелектрику, релативне диелектричне константе ε r = 2, на међусобном растојању 2 a ( a =1cm

7. ЈЕДНОСТАВНИЈЕ КВАДРАТНЕ ДИОФАНТОВE ЈЕДНАЧИНЕ

Tестирање хипотеза. 5.час. 30. март Боjана Тодић Статистички софтвер март / 10

2.3. Решавање линеарних једначина с једном непознатом

СИСТЕМ ЛИНЕАРНИХ ЈЕДНАЧИНА С ДВЕ НЕПОЗНАТЕ

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА МАТЕМАТИКА ТЕСТ

г) страница aa и пречник 2RR описаног круга правилног шестоугла јесте рац. бр. јесу самерљиве

предмет МЕХАНИКА 1 Студијски програми ИНДУСТРИЈСКО ИНЖЕЊЕРСТВО ДРУМСКИ САОБРАЋАЈ II ПРЕДАВАЊЕ УСЛОВИ РАВНОТЕЖЕ СИСТЕМА СУЧЕЉНИХ СИЛА

Једна од централних идеја рачунарства Метода која решавање проблема своди на решавање проблема мање димензије

2. EЛЕМЕНТАРНЕ ДИОФАНТОВЕ ЈЕДНАЧИНЕ

6.2. Симетрала дужи. Примена

РЕШЕЊА ЗАДАТАКА - IV РАЗЕД 1. Мањи број: : x,

Положај сваке тачке кружне плоче је одређен са поларним координатама r и ϕ.

2. Наставни колоквијум Задаци за вежбање ОЈЛЕРОВА МЕТОДА

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

ЛИНЕАРНА ФУНКЦИЈА. k, k 0), осна и централна симетрија и сл. 2, x 0. У претходном примеру неке функције су линеарне а неке то нису.

ОБЛАСТИ: 1) Тачка 2) Права 3) Криве другог реда

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ И НАУКЕ ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

b) Израз за угиб дате плоче, ако се користи само први члан реда усвојеног решења, је:

ЗАШТИТА ПОДАТАКА Шифровање јавним кључем и хеш функције. Diffie-Hellman размена кључева

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ И НАУКЕ ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

Предмет: Задатак 4: Слика 1.0

Погодност за одржавање, Расположивост, Марковљеви ланци

КРУГ. У свом делу Мерење круга, Архимед је први у историји математике одрeдио приближну вред ност броја π а тиме и дужину кружнице.

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

Универзитет у Београду, Саобраћајни факултет Предмет: Паркирање. 1. вежба

8. ПИТАГОРИНА ЈЕДНАЧИНА х 2 + у 2 = z 2

Семинарски рад из линеарне алгебре

Количина топлоте и топлотна равнотежа

Теорија електричних кола

Аксиоме припадања. Никола Томовић 152/2011

ИЗВОД ИЗ ИЗВЕШТАЈА О ЦЕНАМА КОМУНАЛНИХ УСЛУГА - УДРУЖЕЊЕ ЗА КОМУНАЛНЕ ДЕЛАТНОСТИ -

ТРАПЕЗ РЕГИОНАЛНИ ЦЕНТАР ИЗ ПРИРОДНИХ И ТЕХНИЧКИХ НАУКА У ВРАЊУ. Аутор :Петар Спасић, ученик 8. разреда ОШ 8. Октобар, Власотинце

5.2. Имплицитни облик линеарне функције

4.4. Паралелне праве, сечица. Углови које оне одређују. Углови са паралелним крацима

Закони термодинамике

1. 2. МЕТОД РАЗЛИКОВАЊА СЛУЧАЈЕВА 1

Скупови (наставак) Релације. Професор : Рака Јовановић Асиситент : Јелена Јовановић

Упутство за избор домаћих задатака

Вектори vs. скалари. Векторске величине се описују интензитетом и правцем. Примери: Померај, брзина, убрзање, сила.

6.5 Површина круга и његових делова

Факултет организационих наука Центар за пословно одлучивање. PROMETHEE (Preference Ranking Organization Method for Enrichment Evaluation)

3.1. Однос тачке и праве, тачке и равни. Одређеност праве и равни

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ И НАУКЕ ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

10.3. Запремина праве купе

8.5 ЛАБОРАТОРИЈСКА ВЕЖБА 5 Задатак вежбе: PI регулација брзине напонски управљаним микромотором једносмерне струје

6. ЛИНЕАРНА ДИОФАНТОВА ЈЕДНАЧИНА ах + by = c

7.3. Површина правилне пирамиде. Површина правилне четворостране пирамиде

Први корак у дефинисању случајне променљиве је. дефинисање и исписивање свих могућих eлементарних догађаја.

Универзитет у Крагујевцу Факултет за машинство и грађевинарство у Краљеву Катедра за основне машинске конструкције и технологије материјала

ЗАШТИТА ПОДАТАКА. Шифровање јавним кључем и хеш функције. Diffie-Hellman размена кључева

Пешачки мостови. Метални мостови 1

4. ЗАКОН ВЕЛИКИХ БРОЈЕВА

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ И НАУКЕ ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

Хомогена диференцијална једначина је она која може да се напише у облику: = t( x)

TAЧКАСТА НАЕЛЕКТРИСАЊА

4. Троугао. (II део) 4.1. Појам подударности. Основна правила подударности троуглова

Примена првог извода функције

ВИСОКА ТЕХНИЧКА ШКОЛА СТРУКОВНИХ СТУДИЈА У НИШУ

6.1. Осна симетрија у равни. Симетричност двеју фигура у односу на праву. Осна симетрија фигуре

Школска 2010/2011 ДОКТОРСКЕ АКАДЕМСКЕ СТУДИЈЕ

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

ВОЈИСЛАВ АНДРИЋ МАЛА ЗБИРКА ДИОФАНТОВИХ ЈЕДНАЧИНА

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

Ваљак. cm, а површина осног пресека 180 cm. 252π, 540π,... ТРЕБА ЗНАТИ: ВАЉАК P=2B + M V= B H B= r 2 p M=2rp H Pосн.пресека = 2r H ЗАДАЦИ:

Увод у архитектуру рачунара. Увод у архитектуру. Саша Малков. Тема 14 Процесори - Имплементација инструкција. (наставак)

Теорија електричних кола

РЈЕШЕЊА ЗАДАТАКА СА ТАКМИЧЕЊА ИЗ ЕЛЕКТРИЧНИХ МАШИНА Електријада 2004

Cook-Levin: SAT је NP-комплетан. Теодор Најдан Трифунов 305M/12

Динамика. Описује везу између кретања објекта и сила које делују на њега. Закони класичне динамике важе:

1. Стандард бинарног кодовања ненумеричких података је: а) BCD код б) ASCII код в) PCI код г) Не знам

Математички факултет у Београду

ЕНЕРГЕТСКИ ПРЕТВАРАЧИ 2 (13Е013ЕП2) октобар 2016.

У н и в е р з и т е т у Б е о г р а д у Математички факултет. Семинарски рад. Методологија стручног и научног рада. Тема: НП-тешки проблеми паковања

1. Функција интензитета отказа и век трајања система

РЕШЕНИ ЗАДАЦИ СА РАНИЈЕ ОДРЖАНИХ КЛАСИФИКАЦИОНИХ ИСПИТА

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА ТЕСТ МАТЕМАТИКА

Могућности и планови ЕПС на пољу напонско реактивне подршке. Излагач: Милан Ђорђевић, мастер.ел.тех.и рачунар. ЈП ЕПС Производња енергије

КАТЕДРА ЗА ЕНЕРГЕТСКЕ ПРЕТВАРАЧЕ И ПОГОНЕ ЛАБОРАТОРИЈА ЗА ЕНЕРГЕТСКЕ ПРЕТВАРАЧЕ ЕНЕРГЕТСКИ ПРЕТВАРАЧИ 1

МАТЕМАТИЧКИ ЛИСТ 2017/18. бр. LII-3

ТЕСТ МАТЕМАТИКА УПУТСТВО ЗА ПРЕГЛЕДАЊЕ

2.1. Права, дуж, полуправа, раван, полураван

I Наставни план - ЗЛАТАР

ПРИЈЕМНИ ИСПИТ. Јун 2003.

ПОВРШИНа ЧЕТВОРОУГЛОВА И ТРОУГЛОВА

Писмени испит из Теорије површинских носача. 1. За континуалну плочу приказану на слици одредити угиб и моменте савијања у означеним тачкама.

Увод у организацију и архитектуру рачунара 2

Математички модел осциловања система кугли око равнотежног положаја под утицајем гравитационог поља

Енергетски трансформатори рачунске вежбе

МАСТЕР РАД УНИВЕРЗИТЕТ У БЕОГРАДУ МАТЕМАТИЧКИ ФАКУЛТЕТ. Тема: ГОРЊА И ДОЊА ГРАНИЧНА ВРЕДНОСТ НИЗА И НИЗА СКУПОВА И ЊИХОВЕ ПРИМЕНЕ У РЕЛНОЈ АНАЛИЗИ

ТАНГЕНТА. *Кружница дели раван на две области, једну, спољашњу која је неограничена и унутрашњу која је ограничена(кружницом).

Скрипта ријешених задатака са квалификационих испита 2010/11 г.

Ротационо симетрична деформација средње површи ротационе љуске

6.3. Паралелограми. Упознајмо још нека својства паралелограма: ABD BCD (УСУ), одакле је: а = c и b = d. Сл. 23

Теорија одлучивања. Циљеви предавања

Слика 1. Слика 1.2 Слика 1.1

Transcript:

[Р338] Програмирање за Веб 7 Саша Малков Универзитет у Београду Математички факултет 2014/2015 [Р338] Програмирање за Веб Саша Малков Тема 17 Скалабилност [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 1 1

Скалабилност Скалабилност је способност система да поднесе велики пораст обима послова, без угрожавања функционалности и поузданости система [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 2 Ниво скалабилности Ниво скалабилност система се одређује на основу количине административно/оперативних послова, неопходних ради прилагођавања порасту обима послова количине развојних послова, потребних ради одржавања функционалности система при повећаном оптерећењу очекиваног трајања периода неактивности система током прилагођавања високом нивоу оптерећења степена опадања перформанси у околностима повећаног обима послова [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 3 2

Ниво скалабилности (2) На основу количине административно / оперативних послова, неопходних ради прилагођавања порасту обима послова скалабилан ако је довољно повезати нове уређаје (сервере, процесоре, дискове), без додатних административних послова умерено скалабилан ако је потребно предузимати одређене промене конфигурације, као што је мануелна репликација софтвера и/или података није скалабилан ако је потребно мењати архитектуру система [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 4 Ниво скалабилности (3) На основу количине развојних послова, потребних ради одржавања функционалности система при повећаном оптерећењу систем је скалабилан колико и његова најмање скалабилна компонента систем је високо скалабилан ако нису потребне никакве развојне активности ради прилагођавања повишеном обиму послова тј. архитектура је добро прилагођена високом обиму послова систем је умерено скалабилан ако су потребне само мање модификације систем је слабо скалабилан ако је потребно мењати архитектуру софтвера [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 5 3

Ниво скалабилности (4) На освнову очекиваног трајања периода неактивности система током прилагођавања високом нивоу оптерећења ниска скалабилност ако је за додавање нових уређаја (процесора, дискова, сервера) потребно искључити систем умерена скалабилност ако је при додавању нових уређаја потребно да се на кратко (неколико секунди или минута) искључи систем, док се изврши преконфигурисање мреже висока скалабилност ако се нови уређаји и софтверске компоненте могу додавати без искључивања система [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 6 Ниво скалабилности (5) На основу степена опадања перформанси у околностима повећаног обима послова сублинеаран пораст времена одзива линеаран пораст времена одзива експоненцијалан пораст времена одзива отказивање система [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 7 4

Мерење скалабилности Трајање извршавања посла је време за које n уређаја (процесора, чворова) изврши посао чија је сложеност реда x T(n,x) Релативно убрзање система је мера смањивања трајања извршавања послова при повећавању рачунарске снаге S(n,x) = T(1,x) / T(n,x) [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 8 Мерење скалабилности (2) Пропусност система је максималан број послова одређене сложености који се могу извршити у јединици времена X max (n) пропусност система са n уређаја Заузеће уског грла је трајање заузећа ресурса који представља уско грло система D b (n) = 1 / X max (n) Скалирање (релативни капацитет) је мера повећавања броја послова који могу да се изврше у јединици времена C(n) = X max (n) / X max (1) = D b (1) / D b (n) [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 9 5

Мерење скалабилности (3) Ако претпоставимо да систем има само једно уско грло и да се убрзавање односи на управо то уско грло, онда апроксимирамо да је заузеће уског грла пропорционално трајању извршавања: D b (n) T(n,1) * const C(n) S(n,x) [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 10 Категорије скалабилности Линеарна скалабилност релативни капацитет је једнак броју уређаја C(n,x) = n достижна када се послови добро паралелизују нпр. велики број малих захтева који су међусобно независни Суб-линеарна скалабилност релативни капацитет је мањи од броја уређаја C(n,x) < n када паралелизација захтева додатне ресурсе комуникацију међу процесима дељиве ресурсе Супер-линеарна скалабилност релативни капацитет је већи од броја уређаја C(n,x) > n наизглед немогућа, али у неким случајевима достижна и реална додавање посматраног уређаја често додаје и друге ресурсе на пример, када се додаје сервер, додаје се и меморија... [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 11 6

Амдалов закон Нека су σ просечан део сваког посла који мора да се обавља секвенцијално ts трајање секвенцијалног извршавања tp трајање извршавања на 1 уређају дела посла који се може паралелизовати При томе је: ts = T1 * σ tp = T1 * (1 σ) T1 = ts + tp Трајање извршавања послa на n уређаја је: T(n,x,σ) = ts + tp / n = T1 * (σ + (1- σ)/n) = T1 * (nσ + (1- σ)) / n = T1 * (1 + (n-1)σ) / n [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 12 Амдалов закон (2) Убрзање је SА(n,x,σ) = T1 / T(n,x,σ) = T1 / [T1 * (1 + (n-1)σ) / n] = n / (1 + (n-1)σ) Уз претпоставку о једном уском грлу, скалирање је: CА(n,x) = SА(n,x) = n / (1 + (n-1)σ) Одатле важи CА(n,x) < 1/σ тј. убрзање никада не може да пређе 1/σ [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 13 7

Амдалов закон (3) 35 скалирање 30 25 20 15 10 5 Линеарно σ = 0.01 σ = 0.02 σ = 0.05 σ = 0.1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 број уређаја [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 14 Амдалов закон (4) Вредност σ зависи од делова система на чије убрзавање не утиче повећавање броја посматраних уређаја На пример, ако динамичка Веб локација интензивно користи услуге СУБП, повећавањем броја Веб сервера не можемо да превазиђемо ограничење које се односи на перформансе СУБП Слично важи и за заштитни зид, распоређивач оптерећења (више речи ускоро) и сл. Вредност σ у пракси не зависи само од непаралелизујућих делова, већ делимично описује и секундарна уска грла [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 15 8

Амдалов закон (5) Амдалов модел не може да се примењује када паралелно извршавање захтева додатну комуникацију међу процесима, која није обухваћена овим моделом када има више равноправних (или скоро равноправних) уских грла, зато што је онда: CА(n,x) SА(n,x) [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 16 Супер-серијски модел Супер-серијски модел (или Гинтеров модел) описује случајеве када компоненте система које извршавају паралелизоване послове морају да сарађују на пример, синхронизација кеша или проверавање катанаца Ако се додатно трајање комуникације између два процеса представи као tc, онда се у случају већег броја процеса израчунава као tc * (n-1) Трајање извршавања постаје T = ts + tp / n + tc * (n-1) Нека је γ релативно трајање комуникације, у односу на серијски део: tc = ts * γ [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 17 9

Супер-серијски модел (2) Онда је трајање паралелизованог извршавања T(n,x,σ,γ) = T1 * (σ + (1 σ) / n + σ * γ * (n-1)) = T1/n * (1 + σ (n-1)(1 + γ n)) Скалирање и убрзање се рачунају као код Амдала: CА(n,x) = SА(n,x) = T1 / T(n,x) = n / (1 + σ (n-1)(1 + γ n)) Након преласка одређеног броја уређаја достижу се максималне перформансе Са даљим повећавањем броја уређаја перформансе опадају [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 18 Супер-серијски модел (3) 9 8 скалирање 7 6 5 4 3 2 1 σ = 0.1, γ=0 σ = 0.1, γ=0.01 σ = 0.1, γ=0.02 σ = 0.1, γ=0.05 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 број уређаја [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 19 10

Густавсонов закон Претходни модели претпостављају да се са повећавањем броја послова увећава обим израчунавања да се са повећавањем ресурса се смањује трајање израчунавања Међутим, није увек тако у неким случајевима повећавање обима израчунавања (до неких граница) не производи повећавање трајања израчунавања на пример, масивно паралелно израчунавање, CUDA тада повећавање броја уређаја не скраћује време израчунавања......али повећава пропусну моћ [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 20 Густавсонов закон (2) Претпоставимо да део посла који се израчунава паралелно увек има исто трајање tp, без обзира на увећање броја процесора Ако је трајање извршавања на n процесора T(n) = ts + tp Онда се трајање извршавања на 1 процесору може представити као T1 = ts + tp * n (приметимо да у овом контексту обично не посматрамо случајеве са 1 процесором, али нам је потребна нотација ради релативних мерења) Убрзање и скалирање су: CА(n,x) = SА(n,x) = T1 / T(n,x) = n + σ (1-n) Приметимо да сада σ представља део посла који се серијски извршава на n процесора [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 21 11

Густавсонов закон (3) 35 скалирање 30 25 20 15 10 5 Линеарно σ = 0.02 σ = 0.05 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 број уређаја [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 22 Густавсонов закон (4) Како важи: CА(n,x) = n + σ (1-n) очигледно је да за σ>0 и n>1 мора да важи CA < n Ипак, у неким случајевима се скалирање понаша као да је σ<0, па може чак да буде CA > n до тога долази када додавањем посматраног уређаја имамо и додавање секундарних уређаја, који отклањају секундарна уска грла на пример, додавањем процесора додаје се и кеш меморија, па се већим степеном дељења посла повећава локалност коришћених података и степен погодака кеша, а то доводи до додатног убрзавања слично, додавањем сервера се може повећати број дискова или проточност мреже, са сличним последицама наравно, када и важи CA > n, то није велика разлика [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 23 12

Врсте скалирања Вертикално скалирање Остварује се додавањем нових ресурса постојећим чворовима система На пример, додавање процесора, дискова или меморије постојећим чворовима Хоризонтално скалирање Остварује се додавањем нових чворова систему На пример, додавање нових сервера, или нових система за складиштење података [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 24 Вертикално скалирање Остварује се додавањем нових ресурса постојећим чворовима система на пример, додавање процесора, дискова или меморије постојећим чворовима Веће очекивано трајање периода неактивности Нижи ниво административних послова (скоро никакав) Једноставнија и ефикаснија архитектура Преко неке границе постаје далеко скупље решење од хоризонталне скалабилности [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 25 13

Вертикално скалирање (2) Има смисла до неких граница и за одређене проблеме Купити јачи рачунар је често једноставније и јевтиније него развијати нови софтвера Централизоване базе података су много лакше за пројектовање, имплементирање и одржавање Постаје неисплатива преко неких граница број процесора количина меморије Не доноси суштиниски нове проблеме надаље се углавном нећемо бавити вертикалним скалирањем [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 26 Хоризонтално скалирање Остварује се додавањем нових чворова систему на пример, додавање нових сервера, или нових система за складиштење података Краће очекивано трајање периода неактивности Већи обим и сложенији административни послови Сложенија софтверска архитектура Ипак, после неке границе постаје далеко економичније решење од вертикалног скалирања [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 27 14

Хоризонтално скалирање (2) Скоро да не постоје горње границе Сложенија архитектура софтвера Виша цена за мале конфигурације Веома исплативо за велике системе Данас се бавимо скоро искључиво хоризонталним скалирањем [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 28 Скалирање сервера Најједноставније је да се изврши подела по функцијама посебан сервер за Веб посебан сервер за базу података посебан сервер за кеш посебан сервер за РЕСТ сервисе Број функција је ограничен, па и овакво дељење [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 29 15

Решење са једним сервером [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 30 Решење са функцијама раздељеним по серверима [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 31 16

Скалирање Веб сервера Ако груба подела по функцијама није помогла......следећи корак је хоризонтално скалирање апликативних / Веб сервера Додаје се посебан прокси сервер који служи као посредник / балансер [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 32 Хоризонтално скалирање Веб сервера [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 33 17

Прокси сервер Прокси сервер служи као посредник у комуникацији између клијента и сервера Постоје две суштински различите врсте прокси сервера: прослеђујући прокси, на страни клијента реверзни прокси, на страни сервера [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 34 Клијентски прокси сервер Тзв. "прослеђујући прокси На страни клијента прокси служи као приступна тачка за већи броја клијената пружа јединствену излазну тачка кроз заштитни зид клијентске мреже понаша се као посебан сервис, а не као Веб сервер иако ради по протоколу HTTP, њемуклијенти шаљу посебну врсту захтева [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 35 18

Реверзни прокси сервер Различити називи: серверски прокси реверзни прокси капија (енгл. gateway) Реверзни прокси представља усмеравајућу приступну тачку према већем броју сервера из угла клијента изгледа као обичан Веб сервер (прима уобичајене HTTP захтеве) може да има више улога да служи као кеш на страни сервера да бира сервере на основу УРИ-ја, у случају фрагментације да врши распоређивање захтева (балансирање оптерећења), у случају репликације [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 36 Скалирање Веб сервера (2) Хоризонтално скалирање Веб сервера Репликација више сервера са потпуно истом улогом Фрагментација нпр. различити делови Веб локације су на различитим серверима Неопходно је увођење проксија, који примљене захтеве прослеђује до одговарајућег Веб сервера У случају репликације прокси обично има улогу распоређивача оптерећења надзире сервере и захтеве шаље мање оптерећеним серверима У случају фрагментације прокси анализира захтеве на основу УРИ-ја или тела захтева бира одговарајући сервер [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 37 19

Скалирање Веб сервера (3) Начелно се одвија лако и ефикасно велики број независних сасвим једноставних послова додавањем сервера се може остварити веома висок ниво ефикасности У пракси је основни проблем дељење сесија најбоље је када уопште нема сесија добро је ако су сесије централизоване лоше је ако су сесије локалне за Веб сервер [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 38 Локалне сесије Могу да буду на диску Могу да буду у меморији Оба случаја су проблематична нису расположиве на другим серверима не могу да преживе отказе појединачних сервера отежано распоређивање захтева сви захтеви једне сесије морају да иду на исти сервер (sticky sessions) зато што други сервери немају податке о сесији обично се остварује тако што се у колачићима, који се користе за идентификацију сесије, кодира и идентификација сервера отежано планирање и балансирање оптерећења на почетку сесије се не зна колико ће она бити захтевна сервери се не смеју оптерећивати до крајњих граница зато што се не зна унапред које сесије ће бити захтевне, па ако неком серверу падне велики број захтевних сесија може да опадне одзивност [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 39 20

Централизоване сесије Обично у посебној бази података, која служи само за то обично меморијска база, због виших перформанси ако је неопходно, може и да се дистрибуира Добре стране Не захтевају премештање података од сервера до сервера Нема потребе да сви захтеви сесије иду на исти сервер Нема опасности од неравномерног балансирања Потенцијално лоше стране Може да буде потребно да се и та база података скалира ипак, ту је много нижи ниво оптерећења него на саме Веб сервере, па је и проблем једноставнији [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 40 Решење без сесија Чување свих података у колачићима Потенцијално једноставно Угрожавање безбедности и приватности Чување свих података у бази података практично рад без сесије, иако се користи колачић назива се и "решење са супер-танком сесијом РЕСТ сервиси [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 41 21

Скалирање сервиса Веб апликације почивају на сервисима Већина сервиса су хоризонтално скалабилни чак и лакше него апликативни Веб сервери обично пружају јасно обликоване и заокружене услуге по један захтев по услузи нема интерног стања било који сервер може да прими наредни захтев Потенцијалан проблем је скалабилност базе података дистрибуиране базе података прилично сложена тема није предмет овог курса [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 42 Распоређивање оптерећења Ако постоји више сервера, потребан је додатни ниво у архитектури - компонента која ће да прима захтеве и да их распорећује по серверима Назива се распоређивач оптерећења или балансер (load balancer) Прима захтеве на једној адреси / порту Шаље их на различите Веб сервере Посао распоређивача оптерећења могу да обављају неки реверзни прокси сервери [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 43 22

Хардверски балансери Хардверски уређаји који обављају распоређивање Веб захтева прилично скупи имају високе перформансе бољи рутери имају могућност балансирања обично иду у пару због високе расположивости [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 44 Софтверски балансери Раде исто што и хардверски Више различитих решења: Apache модул mod_proxy Perlbal... За високу расположивост се дуплирају сервери на којима су балансери Wackamole - софтвер за виртуализацију IP адреса [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 45 23

Балансирање захтева Обично се различито планира и имплементира балансирање статичких и динамичких садржаја Статички захтеви захтевају мању процесорску снагу обично их је много више просечна величина одговора је већа не захтевају додатне сервисе Динамички захтеви захтевају већу процесорску снагу обично их је мање него статичких просечна величина одговора је мања често захтевају друге сервисе база података апликативни сервиси [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 46 Редови за чекање Алтернатива балансирању захтева је прављење редова за чекање Уобичајено Веб апликације раде синхроно Асинхрони рад Веб сервера омогућава раздвајање логике пријема захтева од логике обраде захтева Праве се нови слојеви и механизми Апликативни сервер по пријему захтева задатак се записује у реду клијент се обавештава да је задатак примљен обично му се испоручује нека референца (УРИ) да може да провери стање посла Посебни сервери проверавају да ли има нових послова и узимају и извршавају послове Нису потребни посебни балансери осим ако је и сам број захтева сувише велики, па ни смештање захтева у ред не може да ради један сервер [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 47 24

Скалирање релационих БП Најтежи део система за хоризонтално скалирање Ако је икако могуће, пожељно је вертикално скалирање додавање процесора додавање меморије додавање простора за податке Ако није могуће завршити посао једним сервером, потребно је анализирати оптерећење уобичајено је да на Вебу 80-95% свих приступа бази података представља читање лакше је скалирати само читање него и писање [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 48 РБП и скалирање читања Идеја је да и даље остаје само један "главни" сервер базе података Његови подаци се реплицирају на додатне помоћне сервере - "реплике Сви захтеви за писање се упућују главном серверу Сви захтеви за читање се упућују репликама тзв. репликација "master-slave једноставно решење, али не и универзално [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 49 25

РБП и скалирање читања (2) Нека је W релативан обим операција писања R релативан обим операција читања нека су те вредности нормиране, тј. однос W/R представља однос оптерећења сервера, а не однос бројева операција Онда један сервер капацитета C1 може да поднесе W * C1 писања и R * C1 читања Колики је релативни капацитет система са n сервера (1 главни и n-1 помоћних)? [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 50 РБП и скалирање читања (3) Колики је релативни капацитет система са n сервера (1 главни и n-1 помоћних)? Важи једнакост: n * C1 = C(n) * W * n + C(n)* R = C(n) (W * n + R) (n * C1 је укупан, а C(n) је искоришћен капацитет система) па је: C(n) = n * C1 / (W * n + R) Релативни капацитет се рачуна као RC(n) = C(n) / C1 = n / (W * n + R) [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 51 26

РБП и скалирање читања (4) На пример, ако је W=0.2, R=0.8, онда је са 5 сервера скалирање 2.78 горња граница скалирања је 5 ако је W=0.15, R=0.85, онда је са 5 сервера скалирање 3.125 горња граница скалирања је 6.67 [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 52 РБП и скалирање читања (5) Да ли добијена формула личи на нешто познато? RC(n) = n / (W * n + R) = n / (W * n + (1-W)) = n / (1 + W * (n-1)) Скалирање читања из базе података се понаша по Амдаловом закону, при чему је σ = W Приметимо да смо занемарили цену комуникације међу серверима ради усклађивања измена У реалности скалирање читања се понаша по Гинтеровом моделу, обично са врло малим вредностима γ [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 53 27

Дистрибуиране базе података Ако не помогне репликација читања, полако се залази у домен дистрибуираних база података Прилично сложена тема Излази из оквира овог курса [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 54 Кеширање Кеширање чини да скалирање буде мање потребно или бар једноставније Кеш се може постављати на више места кеш динамичких садржаја кеш резултата базе података... Кеш динамичких садржаја може да имплементира сам Веб сервер Кеш базе података може да служи само за читање или и за писање кеш за читање кеш за писање са пропуштањем нема много смисла у случају база података не доприноси перформансама кеш за писање са преписивањем користи асинхроно писање и омогућава бржи одзив није могућ у случају сложенијих трансакција осим ако се сведе на примену редова Кеш базе података може да се имплементира у облику прокси-сервиса који се користи као посредник у раду са базом као саставни део СУБП-а [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 55 28

Скалирање статичких садржаја Реплицирање Веб сервера Сви сервери испоручују исте садржаје Балансира се оптерећење Фрагментација Веб сервера Различити сервери испоручују различите садржаје Реверзни прокси на основу УРИ-ја бира сервер Комбинација реплика и фрагментације Прокси са много меморије за кеш Мали број популарних садржаја чине већину оптерећења [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 56 Испоручивање статичких садржаја Веб сервер у односу на статичке садржаје има улогу реверзног проксија кешира датотеке у меморији може да представља реплику система датотека може да се умножи и балансира Ако се сервери датотека одвоје од Веб сервера Веб сервер може да бира сервере са датотекама кеш може да буде и на диску Значајан пад перформанси при мењању реплицираног садржаја због усклађивања садржаја мора да се означава као неисправан кеш на свим репликама [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 57 29

Испоручивање статичких садржаја (2) Један ефикасан приступ мењању садржаја свака промена је додавање нове инстанце садржаја статички садржаји се тако никада не мењају промена садржаја мења и његов УРИ није потребно експлицитно пражњење кеша кеш се временом имлицитно празни Ако је потребно проверавати ауторизацију неке верзије проксија могу да проверавају ауторизацију на основу колачића на основу токена [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 58 Скалирање система датотека У случају великог обима садржаја није практично везивати систем датотека за Веб сервер Најпре се раздвајају системи датотека од Веб сервера Практична фрагментација по функцији Додатно, сваки Веб сервер може да служи као меморијски или диск кеш Вертикално скалирање додавање дискова повећавање дискова Хоризонтално скалирање додавање сервера репликација фрагментација [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 59 30

Повезивање Веб сервера и система датотека Mрежни систем датотека (NFS, SMB) HTTP нпр. Apache Суштина је у дељењу обраде захтева на више корака анализа УРИ-ја и препознавање фрагмента (сервера) кеширање читање датотеке Сваки од корака може да се обавља на посебном серверу Сваки од корака може да се реплицира и балансира [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 60 Висока расположивост Висока расположивост система (енгл. High Availability HA) је карактеристика система да може да одржи унапред одређен ниво перформанси и функционалности у случају ванредних околности За различите ванредне околности се планира одговарајуће реаговање Уобичајено се планира понашање у околностима отказа диска отказа процесора отказа рачунара отказа мрежног уређаја (рутер и сл.) отказа другог важног уређаја прекида у снабдевању ел. енергијом елементарних непогода (пожар, поплава, земљотрес,...) и друго [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 61 31

Висока расположивост (2) ВР је посебна тема и нећемо се њом много бавити Начин обезбеђивања ВР има везе са скалирањем Одржавање функционалности и перформанси у случају отказа уобичајено се остварује реплицирањем одговарајућих компоненти Репликација је један од основних начина хоризонталног скалирања Примена репликације скоро аутоматски обезбеђује и повишену расположивост [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 62 Висока расположивост података Не може да почива на репликацији "master-slave Ако откаже главни сервер, даље мењање података није могуће Следећи ниво је репликација "master-master Две варијанте "hot-hot оба система могу да се користе равноправно сва писања се реплицирају на други сервер "hot-warm само један систем сме да се користи за писање други служи само за читање у случају отказа једног сервера, други преузима све обавезе на себе Друге сложеније архитектуре [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 63 32

Висока расположивост система датотека Умножавање дискова (RAID) Умножавање сервера Системи за складиштење података (Storage System) [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 64 Нека софтверска решења Apache mod_proxy Прокси сервер Apache mod_cache, mod_disk_cache, mod_mem_cache Кеш Danga Perlbal Perl HTTP распоређивач оптерећења Кеширање Балансирање Подржава ауторизацију Danga Memcached Систем за меморијско кеширање објеката Може да се користи за различите намене Првенствено за кеш статичких садржаја Али и за убрзавање рада са динамичким садржајима [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 65 33

Нека софтверска решења (2) Danga MogileFS Дистрибуирани систем датотека Високо расположив Squid Прокси сервер кеширање балансирање Контрола права приступа ауторизација привилегије дневници приступања Wackamole Виртуализација IP адреса Значајно за остваривање високе расположивости [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 66 Литература Williams, L.G., Smith, C.U., Web Application Scalability: A Model-Based Approach, Proceedings, 30th Int.Com.Measurement Group Con., Las Vegas, USA, 2004. [Р338] Програмирање за Веб - Саша Малков - 2014/15 - час 7 67 34