diff --git a/src/.kile/thesis.kilepr.gui b/src/.kile/thesis.kilepr.gui index 8add3c0..a316d58 100644 --- a/src/.kile/thesis.kilepr.gui +++ b/src/.kile/thesis.kilepr.gui @@ -2,7 +2,7 @@ kile_livePreviewEnabled=true kile_livePreviewStatusUserSpecified=true kile_livePreviewTool=LivePreview-XeLaTeX -lastDocument=content/results.tex +lastDocument=content/introduction.tex [document-settings,item:../../thesis-template-latex/src/thesis.tex] Bookmarks= @@ -160,12 +160,12 @@ TextFolding=[] ViMarks= [view-settings,view=0,item:content/abstract.tex] -CursorColumn=0 -CursorLine=24 +CursorColumn=45 +CursorLine=37 Dynamic Word Wrap=false JumpList= TextFolding=[] -ViMarks= +ViMarks=.,37,164,[,37,157,],37,164 [view-settings,view=0,item:content/acknowledgement.tex] CursorColumn=0 @@ -184,8 +184,8 @@ TextFolding=[] ViMarks=.,181,0,[,181,0,],181,9 [view-settings,view=0,item:content/closing.tex] -CursorColumn=0 -CursorLine=12 +CursorColumn=253 +CursorLine=14 Dynamic Word Wrap=false JumpList= TextFolding=[] @@ -200,28 +200,28 @@ TextFolding=[] ViMarks=.,3,171,[,3,167,],3,171 [view-settings,view=0,item:content/introduction.tex] -CursorColumn=4 -CursorLine=7 +CursorColumn=126 +CursorLine=13 Dynamic Word Wrap=false JumpList= TextFolding=[] -ViMarks=.,0,0,[,0,0,],0,26 +ViMarks=.,13,125,[,13,57,],13,125 [view-settings,view=0,item:content/preparation.tex] -CursorColumn=0 -CursorLine=103 +CursorColumn=61 +CursorLine=134 Dynamic Word Wrap=false JumpList= TextFolding=[] -ViMarks=.,102,1191,[,102,1150,],102,1191 +ViMarks=.,123,551,[,123,542,],123,551 [view-settings,view=0,item:content/results.tex] -CursorColumn=0 -CursorLine=11 +CursorColumn=19 +CursorLine=164 Dynamic Word Wrap=false JumpList= TextFolding=[] -ViMarks=.,49,0,[,49,0,],49,0 +ViMarks=.,140,74,[,140,62,],140,74 [view-settings,view=0,item:content/theory.tex] CursorColumn=0 diff --git a/src/bib/mybib.bib b/src/bib/mybib.bib index 326ab47..8f729aa 100644 --- a/src/bib/mybib.bib +++ b/src/bib/mybib.bib @@ -1,13 +1,3 @@ -@report{Jeney, - author = {G{\'a}bor Jeney}, - institution = {Budapesti M{\H u}szaki {\'e}s Gazdas{\'a}gtudom{\'a}nyi Egyetem, H{\'\i}rad{\'a}stechnikai Tansz{\'e}k}, - location = {Budapest}, - note = {\url{http://www.mcl.hu/~jeneyg/kinezet.pdf}}, - title = {Hogyan n{\'e}z ki egy ig{\'e}nyes dokumentum? {N}{\'e}h{\'a}ny sz{\'o}ban az alapvet{\H o} tipogr{\'a}fiai szab{\'a}lyokr{\'o}l}, - type = {techreport}, - year = {2014} -} - @misc{dockervirt, author = {Nick Janetakis}, howpublished = {\url{https://nickjanetakis.com/blog/comparing-virtual-machines-vs-docker-containers}}, @@ -364,3 +354,9 @@ title = {Resource Types} } +@misc{cloudlab, + howpublished = {https://cloudlab.us/technology.php}, + note = {Megtekintve 2019-12-04}, + title = {Cloudlab - Software Technology} +} + diff --git a/src/content/abstract.tex b/src/content/abstract.tex index dd40287..f19e7ce 100644 --- a/src/content/abstract.tex +++ b/src/content/abstract.tex @@ -12,7 +12,7 @@ Napjainkban egyre elterjedtebb a webes alkalmazások fejlesztése során kisebb Fennáll viszont a probléma, hogy az egyes részek akkor is készen állnak kérések fogadására, ha nincs rájuk szükség, ezzel feleslegesen foglalva erőforrásokat. Szintúgy gyakori probléma a váratlanul megjelenő, nagy terhelésre a lassú válaszreakció. Ez a probléma legtöbbször nem egy rosszul elkészített alkalmazásból adódik, hanem a futtató környezet adottsága. -A Knative ezeket a problémákat aldja meg. Lehetővé teszi az egyes részegységek nullára skálázását, valamint képesek szolgáltatások gyors skálázására a megjelenő konkurens kérésekkel arányosan. +A Knative ezt a problém\'at oldja meg. Lehetővé teszi az egyes részegységek nullára skálázását, valamint képesek szolgáltatások gyors skálázására a megjelenő konkurens kérésekkel arányosan. A szakdolgozat keretein belül a Knative ezen funkciójának működését vizsgálom. Ehhez kidolgoztam m\'er\'eseket, melyek betekint\'est ny\'ujtanak a rendszer belső műk\"od\'es\'ebe. Feladatom r\'eszek\'ent a kidolgozott m\'er\'eseket, valamint azok eredm\'enyeinek al\'izis\'et automatiz\'altam, ami felgyors\'itja az eredm\'enyek \'ertelmez\'es\'et. diff --git a/src/content/introduction.tex b/src/content/introduction.tex index b5e4012..53716da 100644 --- a/src/content/introduction.tex +++ b/src/content/introduction.tex @@ -3,11 +3,11 @@ \chapter{\bevezetes} %---------------------------------------------------------------------------- -Feladatom a Knative keretrendszer automatiz\'alt telep\'it\'ese, majd sk\'al\'az\'asi k\'epess\'eg\'enek vizsg\'alata, aminek r\'eszek\'ent l\'etre kell hozzak f\"uggv\'enyeket, melyek seg\'its\'eg\'evel a vizs\'g\'alat elv\'egezhető. Nincs specifik\'alva milyen infrastrukt\'ur\'at haszn\'aljak, viszont nem rendelkezem a feladathoz sz\"uks\'eges nagy teljes\'itm\'enyű sz\'am\'it\'og\'epekkel, ez\'ert a Cloudlab \'altal biztos\'itott szervereken kell dolgozzak. +Feladatom a Knative keretrendszer automatiz\'alt telep\'it\'ese, majd sk\'al\'az\'asi k\'epess\'eg\'enek vizsg\'alata, aminek r\'eszek\'ent l\'etre kell hozzak f\"uggv\'enyeket, melyek seg\'its\'eg\'evel a vizs\'g\'alat elv\'egezhető. Nincs specifik\'alva milyen infrastrukt\'ur\'at haszn\'aljak, viszont nem rendelkezem a feladathoz sz\"uks\'eges nagy teljes\'itm\'enyű sz\'am\'it\'og\'epekkel, ez\'ert a Cloudlab \cite{cloudlab} \'altal biztos\'itott szervereken kell dolgozzak. Mivel 2017-\'ota tagja vagyok a Sch\"onherz Koll\'egiumban műk\"odő Koll\'egiumi Sz\'am\'it\'astechnikai K\"ornek, ahol k\"ul\"onf\'ele Linux alap\'u rendszerek, valamint a koll\'egiumi h\'al\'ozat \"uzemeltet\'es\'evel foglalkozom, ez\'ert Linuxos \'es h\'al\'ozatos alaptud\'asom a szakdolgozat kezd\'esekor jelentős volt. -Kont\'eneriz\'aci\'oval \'es a Dockerrel a T\'emalaborat\'orium tant\'argy keretein bel\"ul ismerkedtem meg, az\'ota napi szinten haszn\'alom. Mivel k\"ul\"on\"osen \'erdekel a szoftverfejleszt\'essel kapcsolatos folyamatok automatiz\'aci\'oja, ez\'ert igyekszem olyan folyamatokat is automatiz\'alni, melyeket a feladatom nem specifik\'alt, ilyen p\'eld\'aul a m\'er\'esi eredm\'enyekből kezdetleges grafikonok gener\'al\'asa. Az erre kialak\'itott rendszer m\'eg kezd\'es előtt megfogalmaz\'odott bennem. Az automatiz\'aci\'ohoz Python \'es bash nyelven \'irt programokat \'es szkripteket haszn\'altam, ugyanis ezeket a nyelveket ismerem. +Kont\'eneriz\'aci\'oval \'es a Dockerrel a T\'emalaborat\'orium tant\'argy keretein bel\"ul ismerkedtem meg, az\'ota napi szinten haszn\'alom. Mivel k\"ul\"on\"osen \'erdekel a szoftverfejleszt\'essel kapcsolatos folyamatok automatiz\'aci\'oja, ez\'ert igyekszem olyan folyamatokat is automatiz\'alni, melyeket a feladatom nem specifik\'alt, ilyen p\'eld\'aul a m\'er\'esi eredm\'enyekből kezdetleges grafikonok gener\'al\'asa. Az erre kialak\'itott rendszer m\'eg a munka kezd\'ese előtt megfogalmaz\'odott bennem. Az automatiz\'aci\'ohoz Python \'es bash nyelven \'irt programokat \'es szkripteket haszn\'altam, ugyanis ezeket a nyelveket ismerem. A Knative-val m\'eg nem dolgoztam, ez\'ert a munk\'at irodalomkutat\'assal kezdtem, eg\'esz pontosan a sk\'al\'az\'od\'asi lehetős\'egek megismer\'es\'evel, valamint a belső rendszerek felt\'erk\'epez\'es\'evel. Ez ut\'an l\'attam neki a telep\'it\'es automatiz\'al\'as\'anak \'es a f\"uggv\'enyek l\'etrehoz\'as\'anak \'es a m\'er\'esek kidolgoz\'as\'anak. diff --git a/src/content/results.tex b/src/content/results.tex index b45d592..b731a5f 100644 --- a/src/content/results.tex +++ b/src/content/results.tex @@ -24,14 +24,14 @@ Az \ref{fig:jmeter-for-otodik-chart} \'es \aref{fig:knative-for-negyedik-chart} \begin{figure}[!ht] \centering \includegraphics[width=120mm, keepaspectratio]{figures/jmeter-for-otodik-chart.png} -\caption{Konstans terhel\'ese echo t\'ipus\'u f\"uggv\'enynek Jmeter eszk\"ozzel} +\caption{Echo t\'ipus\'u f\"uggv\'eny konstans terhel\'ese Jmeter eszk\"ozzel} \label{fig:jmeter-for-otodik-chart} \end{figure} \begin{figure}[!ht] \centering \includegraphics[width=120mm, keepaspectratio]{figures/knative-for-negyedik-chart.png} -\caption{Konstans terhel\'ese echo t\'ipus\'u f\"uggv\'enynek Hey eszk\"ozzel} +\caption{Echo t\'ipus\'u f\"uggv\'eny konstans terhel\'ese Hey eszk\"ozzel} \label{fig:knative-for-negyedik-chart} \end{figure} @@ -42,14 +42,14 @@ Az \ref{fig:hatodik-isprime-knative-for-chart} \'es \aref{fig:jmeter-hatodik-py- \begin{figure}[!ht] \centering \includegraphics[width=120mm, keepaspectratio]{figures/hatodik-isprime-knative-for-chart.png} -\caption{Konstans terhel\'ese pr\'imsz\'amol\'o f\"uggv\'enynek Hey eszk\"ozzel} +\caption{Pr\'imsz\'amol\'o f\"uggv\'eny konstans terhel\'ese Hey eszk\"ozzel} \label{fig:hatodik-isprime-knative-for-chart} \end{figure} \begin{figure}[!ht] \centering \includegraphics[width=120mm, keepaspectratio]{figures/jmeter-hatodik-py-chart.png} -\caption{Konstans terhel\'ese pr\'imsz\'amol\'o f\"uggv\'enynek Jmeter eszk\"ozzel} +\caption{Pr\'imsz\'amol\'o f\"uggv\'eny konstans terhel\'ese Jmeter eszk\"ozzel} \label{fig:jmeter-hatodik-py-chart} \end{figure} @@ -76,12 +76,12 @@ Az \ref{fig:go-start-chart} \'abr\'an l\'athat\'o az echo t\'ipus\'u f\"uggv\'en \section{Knative rendszerbe telep\'itett f\"uggv\'enyek sk\'al\'az\'od\'asa n\"ovekedő terhel\'es alatt} -Az \ref{fig:hatodik-hello-knative-climb-chart} ábrán látható az echo típusú függvényre egyre növekvő terhelés, valamint a Knative Autoscaler rendszer e mérés alatti belső állapota. A terhelés növelését a hey mérőeszközben egyre több connection objektum használta által értem el. Jól látszik, hogy az ObservedStableConcurrency egy lassan változó érték, a mérés végére töredékét érte el annak az értéknek, amit az egyenletes terhelésű mérések során elért. Szintén látható a Podok számából, hogy pánik állapotot sem váltott ki a mérés. Erre nem is lehetett számítani, hiszen a használt konkurencia érték sosem növekedett duplájára hat másodperces időtartam alatt. +Az \ref{fig:hatodik-hello-knative-climb-chart} ábrán látható az echo típusú függvényre egyre növekvő terhelés, valamint a Knative Autoscaler rendszer e mérés alatti belső állapota. A terhelés növelését a hey mérőeszközben egyre több connection objektum használata által értem el. Jól látszik, hogy az ObservedStableConcurrency egy lassan változó érték, a mérés végére töredékét érte el annak az értéknek, amit az egyenletes terhelésű mérések során elért. Szintén látható a Podok számából, hogy pánik állapotot sem váltott ki a mérés. Erre nem is lehetett számítani, hiszen a használt konkurencia érték sosem növekedett duplájára hat másodperces időtartam alatt. \begin{figure}[!ht] \centering \includegraphics[width=120mm, keepaspectratio]{figures/hatodik-hello-knative-climb-chart.png} -\caption{Emelkedő terhel\'ese echo t\'ipus\'u f\"uggv\'enynek Hey eszk\"ozzel} +\caption{Echo t\'ipus\'u f\"uggv\'eny emelkedő terhel\'ese Hey eszk\"ozzel} \label{fig:hatodik-hello-knative-climb-chart} \end{figure} @@ -90,7 +90,7 @@ A korábbi mérések alapján számítottam rá, hogy a prímszámoló függvén \begin{figure}[!ht] \centering \includegraphics[width=120mm, keepaspectratio]{figures/hatodik-isprime-knative-climb-chart.png} -\caption{Emelkedő terhel\'ese pr\'imsz\'amol\'o f\"uggv\'enynek Hey eszk\"ozzel} +\caption{Pr\'imsz\'amol\'o f\"uggv\'eny emelkedő terhel\'ese Hey eszk\"ozzel} \label{fig:hatodik-isprime-knative-climb-chart} \end{figure} @@ -116,7 +116,7 @@ Ahogy \aref{fig:kubeless-isprime} ábrán látszik, a Kubeless skálázódása t \label{fig:kubeless-isprime} \end{figure} -Sajnos, a Kubeless esetében többször előfordult, hogy csak egy Podot hozott létre az egész mérés során. Ez nem függött attól, hogy mennyi ideig tartott a mérés. Miután véget ért a terhelés, rövid időn belül létre jött a következő Pod. Ennek okát próbáltam kideríteni, egyik hipotézisem az volt, hogy nincs elég cpu ideje a számítógépnek létrehozni a Podot, de ezt kézi megfigyeléseim során elvetettem. Másik probléma a Kubeless esetében, hogy az Nginx Ingress Controller minden beérkező kérésről naplóbejegyzést ír. Ennek következményeképp a Podja Evictelődik, mert túl sok tárterületet használ. A degrad\'al\'odott teljes\'itm\'eny, melyet ez esetben lehetett tapasztalni, \aref{fig:jmeter-kubeless-hello-hatodik-rps-chart} \'abr\'an l\'athat\'o. +Sajnos, a Kubeless esetében többször előfordult, hogy csak egy Podot hozott létre az egész mérés során. Ez nem függött attól, hogy mennyi ideig tartott a mérés. Miután véget ért a terhelés, rövid időn belül létre jött a következő Pod. Ennek okát próbáltam kideríteni, egyik hipotézisem az volt, hogy nincs elég cpu ideje a számítógépnek létrehozni a Podot, de ezt kézi megfigyeléseim során elvetettem. Másik probléma a Kubeless esetében, hogy az Nginx Ingress Controller minden beérkező kérésről naplóbejegyzést ír. Ennek következményeképp a Podja Evicted \'allapotba ker\"ul, mert túl sok tárterületet használ. A degrad\'al\'odott teljes\'itm\'eny, melyet ez esetben lehetett tapasztalni, \aref{fig:jmeter-kubeless-hello-hatodik-rps-chart} \'abr\'an l\'athat\'o. \begin{figure}[!ht] \centering