From da9f27ef1f5ed127f5d57834c506defebbbadad2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torma=20Krist=C3=B3f?= Date: Fri, 6 Dec 2019 23:56:50 +0100 Subject: [PATCH] all charts added --- src/.kile/thesis.kilepr.gui | 10 +- src/content/closing.tex | 3 - src/content/results.tex | 121 ++++++++++++------ src/figures/docker-chart.png | Bin 0 -> 9932 bytes src/figures/grafana-isprime-jmeter-chart.png | Bin 0 -> 12989 bytes .../hatodik-hello-knative-climb-chart.png | Bin 0 -> 11941 bytes .../hatodik-isprime-knative-climb-chart.png | Bin 0 -> 11698 bytes .../hatodik-isprime-knative-for-chart.png | Bin 0 -> 14598 bytes src/figures/istio-nginx-chart.png | Bin 0 -> 10047 bytes src/figures/jmeter-for-otodik-chart.png | Bin 0 -> 12901 bytes src/figures/jmeter-hatodik-py-chart.png | Bin 0 -> 10413 bytes ...meter-kubeless-hello-hatodik-rps-chart.png | Bin 0 -> 17436 bytes src/figures/jmeter-pillanat-junky-chart.png | Bin 0 -> 13262 bytes src/figures/knative-for-negyedik-chart.png | Bin 0 -> 13859 bytes src/figures/kubeless-isprime.png | Bin 0 -> 12453 bytes 15 files changed, 88 insertions(+), 46 deletions(-) create mode 100644 src/figures/docker-chart.png create mode 100644 src/figures/grafana-isprime-jmeter-chart.png create mode 100644 src/figures/hatodik-hello-knative-climb-chart.png create mode 100644 src/figures/hatodik-isprime-knative-climb-chart.png create mode 100644 src/figures/hatodik-isprime-knative-for-chart.png create mode 100644 src/figures/istio-nginx-chart.png create mode 100644 src/figures/jmeter-for-otodik-chart.png create mode 100644 src/figures/jmeter-hatodik-py-chart.png create mode 100644 src/figures/jmeter-kubeless-hello-hatodik-rps-chart.png create mode 100644 src/figures/jmeter-pillanat-junky-chart.png create mode 100644 src/figures/knative-for-negyedik-chart.png create mode 100644 src/figures/kubeless-isprime.png diff --git a/src/.kile/thesis.kilepr.gui b/src/.kile/thesis.kilepr.gui index 83f4f61..92fd142 100644 --- a/src/.kile/thesis.kilepr.gui +++ b/src/.kile/thesis.kilepr.gui @@ -216,16 +216,16 @@ TextFolding=[] ViMarks=.,116,0,[,116,0,],116,0 [view-settings,view=0,item:content/results.tex] -CursorColumn=888 -CursorLine=91 +CursorColumn=19 +CursorLine=112 Dynamic Word Wrap=false JumpList= TextFolding=[] -ViMarks=.,91,887,[,91,876,],91,887 +ViMarks=.,112,0,[,112,0,],112,0 [view-settings,view=0,item:content/theory.tex] -CursorColumn=374 -CursorLine=122 +CursorColumn=0 +CursorLine=38 Dynamic Word Wrap=false JumpList= TextFolding=[] diff --git a/src/content/closing.tex b/src/content/closing.tex index 151e46c..0d80d8b 100644 --- a/src/content/closing.tex +++ b/src/content/closing.tex @@ -13,6 +13,3 @@ Az elkészített Python programok és bash szkriptek felhasználhatók akár a K \section{Tapasztalataim} Számomra kifejezetten érdekes és hasznos volt a féléves munka. Nem csak egy új rendszerről tanultam sokat, de megtanultam, hogy érdemes automatizálni egy komplex munkafolyamatot. Én a továbbiakban legszívesebben ebbe az irányba dolgoznék a továbbiakban. - -%TODO remove -Ez csak az\'ert van itt, hogy leforduljon ez a fos: \cite{Jeney} diff --git a/src/content/results.tex b/src/content/results.tex index 41dae16..6380e72 100644 --- a/src/content/results.tex +++ b/src/content/results.tex @@ -1,71 +1,112 @@ \chapter{M\'er\'esi eredm\'enyek ismertet\'ese} Mielőtt elkezdtem a Knative és Kubeless rendszerek mérését, annak érdekében, hogy a mérőeszközök, illetve a Knative-hoz készített függvények teljesítményét kimérjem, mindkét mérőeszközzel megmértem mindkét függvényt Docker konténerként indítva. Itt a függvények a harmadik, a Kubernetes klaszterbe be nem csatlakoztatott számítógépen futottak a függvények, a mérések pedig az Kubernetes Masteren futottak. Mind a négy mérés esetében a használt connection objektumok száma negyvenöt. -%TODO - +Az \ref{fig:docker-chart} ábrából látszik, hogy a várakozásokkal ellentétben a Jmeter jobban teljesített, mint a hey. Ez azért van, mert a hey-re megszabtam connection objektumomként ötszáz kérés per másodperces korlátot. Erre a számra úgy jutottam, hogy a hey által használt connection objektumok számát egyre állítottam. Ez esetben a generált kérések száma másodpercenként 510 és 530 között ingadozott, viszont stabilan mindig 500 felett volt. A generált forgalom stabilizálása érdekében az 500-nál húztam meg a határt, melynek szükségességét a korábbi tapasztalatok alapján éreztem, ugyanis a hey teljesítménye megfigyeléseim szerint instabil, mikor nagy sebességgel kell generálja a kéréseket. Továbbá, úgy ítéltem, hogy két különbözően viselkedő mérőeszköz többet fed fel a skálázódási mechanizmusokról. -%TODO - +\begin{figure}[!ht] +\centering +\includegraphics[width=120mm, keepaspectratio]{figures/docker-chart.png} +\caption{Docker kont\'enerben fut\'o f\"uggv\'enyek teljes\'itm\'eny\'enek m\'er\'ese } +\label{fig:docker-chart} +\end{figure} -A két ábrából látszik, hogy a várakozásokkal ellentétben a Jmeter jobban teljesített, mint a hey. Ez azért van, mert a hey-re megszabtam connection objektumomként ötszáz kérés per másodperces korlátot. Erre a számra úgy jutottam, hogy a hey által használt connection objektumok számát egyre állítottam. Ez esetben a generált kérések száma másodpercenként 510 és 530 között ingadozott, viszont stabilan mindig 500 felett volt. A generált forgalom stabilizálása érdekében az 500-nál húztam meg a határt, melynek szükségességét a korábbi tapasztalatok alapján éreztem, ugyanis a hey teljesítménye megfigyeléseim szerint instabil, mikor nagy sebességgel kell generálja a kéréseket. Továbbá, úgy ítéltem, hogy két különbözően viselkedő mérőeszköz többet fed fel a skálázódási mechanizmusokról. - -Az ábrákról szintén látszik, hogy a prím számoló függvény teljesítménye alulmarad a kis számításigényű függvényhez képest. Ez az előzetes várakozások szerint alakult. Mivel a Kubeless egy teljes Function as a Service rendszer, az oda telep\'it\'esre sz\'ant f\"uggv\'enyeket csak a rendszerbe telep\'itve lehet futtatni. +Az ábráról szintén látszik, hogy a prím számoló függvény teljesítménye alulmarad a kis számításigényű függvényhez képest. Ez az előzetes várakozások szerint alakult. Mivel a Kubeless egy teljes Function as a Service rendszer, az oda telep\'it\'esre sz\'ant f\"uggv\'enyeket csak a rendszerbe telep\'itve lehet futtatni. %TODO Coldstart Érdekes jelenség, hogy a Jmeter által mért teljesítmény sokkal stabilabb. Igaz, hogy ez esetben nincs szükség a mérést fél perces szegmensekre bontani. Különösen furcsa a hey viselkedése, ugyanis a hiszterézis akkor nem volt megfigyelhető, ha a függvényt közvetlen Dockerben futtattam. Emiatt használatát nem vetettem el, de az általa mért feldolgozott kérési rátát fenntartással kezeltem. -%TODO - +Az \ref{fig:jmeter-for-otodik-chart} \'es \aref{fig:knative-for-negyedik-chart} ábrákon látható a Knative-ba telepített echo típusú függvény skálázódása. A kettő közül először az alsó mérést végeztem el, ahol a hey instabil viselkedése szintén megfigyelhető. A mérés körülbelül felénél látható megemelkedett ráta konzisztensen megismételhető volt több, független Kubernetes klaszteren is. Az ábrák elején jól megfigyelhető a Knative pánik skálázása, amely gyorsan létrehoz öt Podot, majd a hatvan másodperces panic windows lejárta után a már nem szükséges podokat leállítja. Az ezután a Podok számában megfigyelhető hiszterézis a Jmeteres ábrán és egyéb Jmeteres mérések során nem volt tapasztalható. Ez betudható annak, hogy az ObservedStableConcurrency érték a döntési határértéken van. Szintén megfigyelhető, hogy a Podok kiszámításának korábban ismertetett formulája úgy tűnik nem volt helyes. Ez nem helyes következtetés, ugyanis a hey ábrán látható három, valamint a Jmeter ábrán látható kettő kiszámított Podszámhoz hozzáadódik az egy mindig létező Pod. Az ObservedStableConcurrency érték esése a Jmeter ábra esetén is látható, amire a Podok számának csökkentésével reagál a rendszer. Érdekes, hogy itt mind a Podok száma, mint az ObservedStableConcurrency sokkal stabilabbak, cserébe alacsonyabbak. Szintén különbség, hogy a hey esetében a mérés elején tapasztalható alacsony teljesítményű időszak időben hasonló, viszont nincs benne ugrás. Mindkét ábrán látszik, hogy az ObservedStableConcurrency érték mozgó átlag, emiatt lassan változik. Ennek következménye, hogy a terhelés megszűnése után nem szűnnek meg a létrehozott Podok. -%TODO - +\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} +\label{fig:jmeter-for-otodik-chart} +\end{figure} -A fenti ábrákon látható a Knative-ba telepített echo típusú függvény skálázódása. A kettő közül először az alsó mérést végeztem el, ahol a hey instabil viselkedése szintén megfigyelhető. A mérés körülbelül felénél látható megemelkedett ráta konzisztensen megismételhető volt több, független Kubernetes klaszteren is. Az ábrák elején jól megfigyelhető a Knative pánik skálázása, amely gyorsan létrehoz öt Podot, majd a hatvan másodperces panic windows lejárta után a már nem szükséges podokat leállítja. Az ezután a Podok számában megfigyelhető hiszterézis a Jmeteres ábrán és egyéb Jmeteres mérések során nem volt tapasztalható. Ez betudható annak, hogy az ObservedStableConcurrency érték a döntési határértéken van. Szintén megfigyelhető, hogy a Podok kiszámításának korábban ismertetett formulája úgy tűnik nem volt helyes. Ez nem helyes következtetés, ugyanis a hey ábrán látható három, valamint a Jmeter ábrán látható kettő kiszámított Podszámhoz hozzáadódik az egy mindig létező Pod. Az ObservedStableConcurrency érték esése a Jmeter ábra esetén is látható, amire a Podok számának csökkentésével reagál a rendszer. Érdekes, hogy itt mind a Podok száma, mint az ObservedStableConcurrency sokkal stabilabbak, cserébe alacsonyabbak. Szintén különbség, hogy a hey esetében a mérés elején tapasztalható alacsony teljesítményű időszak időben hasonló, viszont nincs benne ugrás. Mindkét ábrán látszik, hogy az ObservedStableConcurrency érték mozgó átlag, emiatt lassan változik. Ennek következménye, hogy a terhelés megszűnése után nem szűnnek meg a létrehozott Podok. +\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} +\label{fig:knative-for-negyedik-chart} +\end{figure} A mérések alapján kíváncsi voltam, mi történik, ha alacsonyabb áteresztőképességű függvényre generált terhelés esetében vizsgálom meg a Knative belső működését. -%TODO - +Az \ref{fig:hatodik-isprime-knative-for-chart} \'es \aref{fig:jmeter-hatodik-py-chart} ábrákon látható függvény teljesítményének karakterisztikája teljesen más, mint az echo típusú függvényé. Olyan szempontból hasonlítanak, hogy kell idő mindkét függvénynek, hogy a teljesítménye elérje a stabil értéket, viszont ellentétben az echo típusú függvénnyel, ezt nem egyik másodpercről a másikra teszi a prímszámoló függvény, hanem folyamatosan. Az ObservedStableConcurrency viszont a várakozásoknak nem megfelelően alakult. Intuíció alapján azt vártam el, hogy hasonló terhelés és kisebb áteresztő képesség miatt ez az érték megemelkedik, aminek következtében aztán a Podok száma is megnő. Ennek viszont az ellenkezője történt. Az alacsonyabb áteresztő képesség ellenére az ObservedStableConcurrency is alacsonyabb volt, így a Podok száma is alacsonyabb maradt. Ez betudható annak, hogy amíg a függvény vissza nem tér, foglalja az adott connection objektumot, amely meghívta. -%TODO - +\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} +\label{fig:hatodik-isprime-knative-for-chart} +\end{figure} -A fenn látható két ábrán látható függvény teljesítményének karakterisztikája teljesen más, mint az echo típusú függvényé. Olyan szempontból hasonlítanak, hogy kell idő mindkét függvénynek, hogy a teljesítménye elérje a stabil értéket, viszont ellentétben az echo típusú függvénnyel, ezt nem egyik másodpercről a másikra teszi a prímszámoló függvény, hanem folyamatosan. Az ObservedStableConcurrency viszont a várakozásoknak nem megfelelően alakult. Intuíció alapján azt vártam el, hogy hasonló terhelés és kisebb áteresztő képesség miatt ez az érték megemelkedik, aminek következtében aztán a Podok száma is megnő. Ennek viszont az ellenkezője történt. Az alacsonyabb áteresztő képesség ellenére az ObservedStableConcurrency is alacsonyabb volt, így a Podok száma is alacsonyabb maradt. Ez betudható annak, hogy amíg a függvény vissza nem tér, foglalja az adott connection objektumot, amely meghívta. +\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} +\label{fig:jmeter-hatodik-py-chart} +\end{figure} -%TODO - +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. -A fenti á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. +\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} +\label{fig:hatodik-hello-knative-climb-chart} +\end{figure} -%TODO - +A korábbi mérések alapján számítottam rá, hogy a prímszámoló függvény újból máshogy fog viselkedni, Nem csal\'odtam, ugyanis ez\'uttal az ObservedStableConcurrency \'ert\'ek gyorsabban n\"ovekedett, mint a terhel\'es, viszont a f\"uggv\'eny teljes\'itm\'enye nehezebben alkalmazkodott a terhel\'eshez. Az is megfigyelhető, hogy ez esetben nem j\"ott l\'etre m\'asodik Pod. -A korábbi mérések alapján számítottam rá, hogy a prímszámoló függvény újból máshogy fog viselkedni, de a csalódnom kellett, ugyanis a gyengébb csúcsteljesítményen kívül egyéb különbség nem figyelhető meg a két függvény típusa között. +\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} +\label{fig:hatodik-isprime-knative-climb-chart} +\end{figure} -%TODO - +Mivel a Knative és Kubeless rendszerek másik Ingress Controllert használtak, szerettem volna kimérni ezek áteresztőképességét is. Ezt úgy vittem véghez, hogy a mérőeszközzel mindkét Ingress Controller végpontját megcéloztam, mint ahogyan azt a függvények teljesítményének mérésénél is tettem, viszont ez esetben általuk nem ismert hosztnév fejlécet adtam meg. Ez által minden kérésre 404-es http kóddal válaszoltak. Az \ref{fig:istio-nginx-chart} ábrákon látható teljesítmény az adott Ingress Controllerek által elérhető legjobb teljesítmény. A Kubeless által használt Nginx Ingress Controller teljesítménye majdnem négyszeresen meghaladja a Knative által használt Isitio. -Mivel a Knative és Kubeless rendszerek másik Ingress Controllert használtak, szerettem volna kimérni ezek áteresztőképességét is. Ezt úgy vittem véghez, hogy a mérőeszközzel mindkét Ingress Controller végpontját megcéloztam, mint ahogyan azt a függvények teljesítményének mérésénél is tettem, viszont ez esetben általuk nem ismert hosztnév fejlécet adtam meg. Ez által minden kérésre 404-es http kóddal válaszoltak. A fenti ábrákon látható teljesítmény az adott Ingress Controllerek által elérhető legjobb teljesítmény. A Kubeless által használt Nginx Ingress Controller teljesítménye majdnem négyszeresen meghaladja a Knative által használt Isitio. +\begin{figure}[!ht] +\centering +\includegraphics[width=120mm, keepaspectratio]{figures/istio-nginx-chart.png} +\caption{Istio \'es Nginx Ingress Controllerek teljes\'itm\'eny\'enek m\'er\'ese Jmeter eszk\"ozzel} +\label{fig:istio-nginx-chart} +\end{figure} -%TODO - +Ahogy \aref{fig:kubeless-isprime} ábrán látszik, a Kubeless skálázódása teljesen máshogy működik. Ez esetben a kötelezően meghatározott cpu használati limit miatt a skálázódáson a teljesítményben is érzékelhető a több Pod használata. Szintén látszik, hogy a csúcsteljesítmény, amit elért magasabb, mint a Knative esetében. Cserébe, viszont a skálázódás lassabb, a Horizontal Pod Autoscaler hatvan másodperces átlagolása miatt. -Ahogy az az ábrán látszik, a Kubeless skálázódása teljesen máshogy működik. Ez esetben a kötelezően meghatározott cpu használati limit miatt a skálázódáson a teljesítményben is érzékelhető a több Pod használata. Szintén látszik, hogy a csúcsteljesítmény, amit elért magasabb, mint a Knative esetében. Cserébe, viszont a skálázódás lassabb, a Horizontal Pod Autoscaler hatvan másodperces átlagolása miatt. +\begin{figure}[!ht] +\centering +\includegraphics[width=120mm, keepaspectratio]{figures/kubeless-isprime.png} +\caption{Kubeless rendszerbe telep\'itett pr\'imsz\'amol\'o f\"uggv\'eny sk\'al\'az\'od\'asa} +\label{fig:kubeless-isprime} +\end{figure} -%TODO - +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 Evictelődik, mert túl sok tárterületet használ. +\begin{figure}[!ht] +\centering +\includegraphics[width=120mm, keepaspectratio]{figures/jmeter-kubeless-hello-hatodik-rps-chart.png} +\caption{Kubeless rendszerbe telep\'itett echo t\'ipus\'u f\"uggv\'eny hib\'as műk\"od\'ese} +\label{fig:jmeter-kubeless-hello-hatodik-rps-chart} +\end{figure} Erre a problémára több megoldási lehetőség létezik, viszont egyik sem tökéletes. Egy lehetőség a konténerek kézi (vagy akár automatizált) naplójainak rotációja. Ez azért nem jó megoldás, mert nem csak a függvény podok kerülnek evicted állapotba, hanem akár a network plugin által használt Pod, hiszen a monitorozó rendszer minden Podtól lekérdezi az adatait, valamint a Kubernetes minden Podot evicted állapotba tesz, ha túl sok ephemeral storage-ot használ. Ennél létezik egyszerűbb megoldás, ami jobb lehetőségnek tűnik. Ez a Docker logrendszerének átkonfigurálása, hogy ne a konténer fájljai között, json formátumban naplózzon, hanem például használja a gazda gép journald rendszer szolgáltatását. Ez meg is oldotta ezt a problémát, viszont felvetett egy másikat. Bár a naplóbejegyzések már nem kerülnek a konténerek mellé, valahol a fájlrendszeren kerülnek tárolásra, ahol egy idő után ugyan tömörítésre kerülnek, de addig jelentős helyet foglalnak a mérésből és a monitorozásból adódó bejegyzések. Ennek eredményeként a Kubernetes worker node-okon DiskPreassure állapot léphet fel, amely azt jelenti, hogy az adott Node fájlrendszerén kevés a fennmaradt szabad hely. Ez a szabály vonatkozik a Node root partíciójára, valamint a Docker konténereket tároló partícióra is. Ekkor a Node-on lévő Podok kerülhetnek evicted állapotba, a Kubernetes megpróbálja azokat újraindítani, viszont ez már új konténer létrehozását jelenti. Erre két megoldási lehetőség létezik. Vagy a problémás Node kubelet konfigurációját átállítjuk, hogy a DiskPreassure állapot később lépjen fel, ezzel viszont csak elnapoltuk a problémát. Másik lehetőség a naplófájlok gyorsabb rotációja, illetve a Docker konténerek külön partíción tárolása, de ez esetben csak lelassítottuk a problémát. Az igazi megoldás a kettő módszer ötvözése. Naplóbejegyzések mindenképpen generálódni fognak, ezt megakadályozni nem tudjuk és nem is érdekünk, hiszen bármi probléma adódik, a naplóbejegyzések jelentős segítséget nyújtanak a diagnózisban, valamint akár a probléma megoldásában is segíthetnek. Annak érdekében, hogy a Knative-ba telepített függvények skálázódása az általuk nyújtott teljesítményben is meglátszódjon, szerettem volna limitálni egy-egy Pod teljesítményét. Erre viszont a Knative által létrehozott objektum típusok esetében nincs lehetőség. Emiatt úgy döntöttem, hogy a Knative által létrehozott Kubernetes Deployment objektumot módosítom, ott hozom létre a limiteket. Ez sikerült is, a függvény működött tovább, a megadott korlátozások érvénybe léptek. Viszont az elvárások nem teljesültek, a Podok létrejöttével nem emelkedett meg a függvény teljesítménye. A lenti diagrammon látszik, hogy a függvény végig ezer kérést volt képes kiszolgálni másodpercenként. -%TODO - +Korábbi mérések során a prímszámoló függvény egy Python folyamatot használva nyolcszáz kérést szolgált ki másodpercenként. Tehát a mérés során létrejött öt Pod nagyjából négyezer kérést kellene kiszolgálnia másodpercenként az elvárásaink alapján. Ezzel szemben, ahogy \aref{fig:jmeter-pillanat-junky-chart} \'abr\'an l\'atszik, az egész mérés során olyan teljesítményt nyújt a függvény, melyet két Pod is ki tudna szolgálni. Emellett a ny\'ujtott teljes\'itm\'eny a szok\'asosn\'al instabilabb volt. -Korábbi mérések során a prímszámoló függvény egy Python folyamatot használva nyolcszáz kérést szolgált ki másodpercenként. Tehát a mérés során létrejött öt Pod nagyjából négyezer kérést kellene kiszolgálnia másodpercenként az elvárásaink alapján. Ezzel szemben az egész mérés során olyan teljesítményt nyújt a függvény, melyet két Pod is ki tudna szolgálni. +\begin{figure}[!ht] +\centering +\includegraphics[width=120mm, keepaspectratio]{figures/jmeter-pillanat-junky-chart.png} +\caption{Processzorhaszn\'alatban limit\'alt pr\'imsz\'amol\'o, Knative rendszerbe telep\'itett f\"uggv\'eny sk\'al\'az\'od\'asa} +\label{fig:jmeter-pillanat-junky-chart} +\end{figure} Kíváncsi voltam, egyes mérések során milyen belső állapotai vannak a Knative egyes alegységeinek. Azért, hogy ezeket megfigyelhessem, telepítettem a Knative Monitoring egységét. Ez után újra elvégeztem bizonyos méréseket. Először a prímszámoló függvény viselkedését vizsgáltam meg. Érdekes, hogy a Workeren elérhető húsz magból összesen hetet sem használnak. @@ -87,7 +128,7 @@ Látszik, hogy a Knative Serving komponense használja leginkább a processzort. \label{fig:grafana-isprime-controlplane-namespaces} \end{figure} -Az \ref{fig:grafana-isprime-panik} \'es \aref{grafana-isprime-jmeter} \'abr\'akon l\'atszik, hogy a p\'anik m\'od sor\'an l\'etrej\"ottek r\"ovid idő alatt a Podok, majd ut\'ana v\'egig k\"ozel annyi sz\'am\'u Pod volt. Az is megfigyelhető, hogy b\'ar a hosztg\'ep nincs kihaszn\'alva, a f\"uggv\'eny teljes\'itm\'enye degrad\'al\'odott. +Az \ref{fig:grafana-isprime-panik} \'es \aref{fig:grafana-isprime-jmeter} \'abr\'akon l\'atszik, hogy a p\'anik m\'od sor\'an l\'etrej\"ottek r\"ovid idő alatt a Podok, majd ut\'ana v\'egig k\"ozel annyi sz\'am\'u Pod volt. Az is megfigyelhető, hogy b\'ar a hosztg\'ep nincs kihaszn\'alva, a f\"uggv\'eny teljes\'itm\'enye degrad\'al\'odott. \begin{figure}[!ht] \centering @@ -96,8 +137,12 @@ Az \ref{fig:grafana-isprime-panik} \'es \aref{grafana-isprime-jmeter} \'abr\'ako \label{fig:grafana-isprime-panik} \end{figure} -%TODO - +\begin{figure}[!ht] +\centering +\includegraphics[width=120mm, keepaspectratio]{figures/grafana-isprime-jmeter-chart.png} +\caption{Pr\'imsz\'amol\'o f\"uggv\'eny teljes\'itm\'enye Monitoring rendszer mellett} +\label{fig:grafana-isprime-jmeter} +\end{figure} A Knative rendszer sz\'amos m\'odon sz\'amontartja a f\"uggv\'enybe \'erkező konkurens k\'er\'esek sz\'am\'at. P\'eld\'aul, mint ahogy az \aref{fig:grafana-isprime-observedconcurrency} \'abr\'an l\'athat\'o, az Average Panic Concurrency egy r\"ovidebb idő alatt sz\'amolt \'atlag, mint ahogy a p\'anik sk\'al\'az\'ashoz sz\"uks\'eges. Az Average Concurrency egy sokkal lassabban v\'altoz\'o \'ert\'ek, ez az, ami az eddigi m\'er\'esek sor\'an ki lett nyerve az autoscaler napl\'of\'ajljaib\'ol. A Target Concurrency \'ert\'ek a YAML \'allom\'anyban be\'all\'itott \'ert\'ek. Az Excess Burst Capacity \'ert\'ek reprezent\'alja a k\"ul\"onbs\'eget a f\"uggv\'eny tartal\'ek kapacit\'asa - mennyi t\"obblet terhel\'est k\'epes a f\"uggv\'eny feldolgozni, mielőtt t\'ulterhelődik - \'es a be\'all\'itott c\'elkonkurencia k\"oz\"ott. Amennyiben ez a sz\'am negat\'iv, az Activator komponensen is \'atmennek a be\'erkező k\'er\'esek. diff --git a/src/figures/docker-chart.png b/src/figures/docker-chart.png new file mode 100644 index 0000000000000000000000000000000000000000..46c2bc2420ebf5e0e1cfb936b6bf188d32b37297 GIT binary patch literal 9932 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 literal 0 HcmV?d00001 diff --git a/src/figures/grafana-isprime-jmeter-chart.png b/src/figures/grafana-isprime-jmeter-chart.png new file mode 100644 index 0000000000000000000000000000000000000000..605c6032e1fbfb702b528ec1dc96265cc644e279 GIT binary patch literal 12989 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 V$|di2NeYaBCIF&^&vBc+%Gq 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 Xo3j#avHKBOyMUscs%)9G$>;wC%db`0 literal 0 HcmV?d00001 diff --git a/src/figures/hatodik-isprime-knative-for-chart.png b/src/figures/hatodik-isprime-knative-for-chart.png new file mode 100644 index 0000000000000000000000000000000000000000..aaa88fd1fd0dbc2c7dd9503fce7e70cf7da15cb5 GIT binary patch literal 14598 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

tBYs|q4BK?!!&00 zwXMHJ_Izr(QQE#p%qqNbrRViaL>E~(Lwk^x?2Ph^)sW2T9|m$TH0BAsK(2kW3Henz zkq)ZNkR0my_!V*@>av09gKUmeV!G)1IjmBF9%-8EV`Ww#FCM2A=!+MHg_zs5*EcxLf%(pO}5XnH;}NU9gWMKatpWu52A%h|<{;Mswr*Yn|C7jql@hk`XiQ{u9E3GWPgObsXl@ds10 znCU8q-StXLR;qZbm6jEkIjL*m)u4YLasGC9dF^H`t{i2*t}nc^^%-^vh8xW(^@zj8 znm3&_0_%)pFWPOuxjF{Fex}>KDYI+%0r(8vPNL8oFg0IxU7x_+78dnvWlQ4s`_Del z?DBK3Q+4TKUKJ|5vfdya{_}C|MRUIE5q*v?AtY1$)ew7$K*8L^hQ@XCv(qU9?*B6Fep%ipW6G#!zY z>qVJEHK=omG@T9uETs)y1A6__%2i>EtASFs;MTe1m_F(6DsKvahSF8(iF$ayUo4hpl0~koQN1+EUkM1g)Zy#o9rMN!rT;7%!>qHD0VxNz-M^ zM#gaHsBGMWYHkS0Lb%*sv5@4&85QGFZJ^~RJ9RAg((7-{A9ATUZq=fdMG(CX6*-sG zFdnVjcHsr~FXa=7QR-}1b@JLHOP6ch)kq@YX5z|LubRR{w-96%><5krfC!|pAoLj#UWrcpj9^ZoPCezy+yu!d8 z(%Dor(sLj=iG6al)D1}$4|H!7nevq$B_!ai;R>Iajccg&sF9wUBz&7ayJd%A+Z95t|ZqE_J$fNqsuKwct==T?qdSEDiMPQ?-vuma&j;{EMvrTy) zjGftUUU-exs(R$$=XznffHOU_#mQ--{O6+@ z*kQ(s4<dGLdwf$%2al(mCbNZ9;Twe;f1gc!hnoCBN2+!Q z_mC5~E zw4l4ot^#i1Za5W5^EQ)^ml`uOOQLEvCX~StCW*`gE2DL~ZwsDpNgj^R^*KpY-u`mS zESg#bl0+|(aSG?b?E^7ivW(-|s&_lr0d|IBTw%T_mJ;lCO5RcE)wSdrGnhguUeo^`hJ`-+)igZ5+OuUPV|Y%I4<5M&~B+q`P(_+b>FDhud=g#RUEL69`$&} ztuQr3SefA!S+yuvFT4JkF~K6rQou1$~JDO+J8*w$-VSxzy$bTP5k=({W=%b}-FW{LQ$KH6Ucc+ z^fMGC|40dn+&W(zx9hxHHy)NHlp#PT@K&BmI6=?I;GBW!a%Mtf)NxG2Z3-Uo=va(n zNvq&>QvrWm4d^`;;I>rN22^o4hca819Y9paw8;ElB!ZKEUl#c`7RBPGBBn!-vb74(1pw~kb2rWj@4W9IfUo5K4gEP-B?%%ZK86x)Jq#`8L z8g+!4ATl`DrZNzfC_`}j)8I}m)nDr79RN$k4@Q(xHR16;WifSEVh5TqgSVVtgz^laB z5~x?$?iBD75M;VKITj#+b+WFqW_f@7@O8|CQ4|po+LH1q7s_#pF7>VY^mX?)q1pw0 zR0Jh+0h>36LWNUqBc}SZawF$3`(HCPD&mN?EOu^6?$vUHk~t7<&>G;mrvb@-hJNHG zmsWn5y{i5SdMy(Smyu+uviLfK$oQQ%&)Yrw&Z3K(jEg_B*^)bb?5<_cp8G2tEXZ{I zuh$-ag>A6=rWoLNE>ek>*c`VWzL0r>_9C*sDN`O63}EkFZG1b3z4`iDn%P?~Aa^nu z#%ho_m1MOq+gpfC(y8~EC_qjm?9UNL@?s~8!!)i7zGRZ34P=G`W`XodiRazkj;YF6 z=wThF__p46wQ$jKu8H8babGS-{;hmHTdlO^+ow=U8^VS*^2-)n%N*PJ*NoE&8^)HO zT&O<4dNyreM8`xW*YwDz?oT#ZN<9o?@ubcBlrvb`P3nZkJt_p$=dI`2L2qlmLK;R5 zG3?MVGP^O5(C|(@I}fPaX4nLJ!zgMianuXtD&I50QadUYz>99Rpig2gw!+MdyuMwz z)ZYuv;6-}G#gEHx73|lpedmRh%>x~V(Xx7|a&cQmNWz4ce%GM5h{uuo3&XO78cEGL zF_$@iOrq~m85%~C&eY>!d^62rGJXWwqF2|WnK95){<8njwRIrAcM=6QD^#eQ8btxm0Ow(K3M9|yGav?=(Iv5MTxP6N#>&m6ME3a?-&9`FB8a0j8eA4_BXmvX-n-$@NHDCCmvqqZkx4(ble8?oE;#Fxm2K9LIL?L5LD3P=+(p-IT zmD7%IoB*DLtgZ zQiB@jl@S#=Sk`rz!g)U$&@wFXbBvWMt<_BT0mr$c*Bd#A&{FU-%40^ka@+Ci?7?n` ziAIzurkh&6=Tcr-QbpYKv3$9s#>*BAo$3?meTmIvpROy#EmxKRvDF9mi@ z9FRHs($~=+DaDC3gGhBkB57)s{{beq5gk-kFgX2ZcCB%mRqVYp?XI&|P8=_j3A<{} z>aRd-1)>nDg)JL+%7e-`Z}cT-6lpqu>Zk%5$6V6px00j|?PC|RZ*JUim0G(WbWYu2 zaJyK@cyx(9I`H#-IWIJ5AZh4qcj_8G#2*J6rM@4-Q`chGcA4@6|1eY|?;9m}iQs>} zye~FW-&G_rpkGafRpYbhi(Ch5Xxe@2L(kh}aGMnPCUq0m|99oGYX3WVreVY`9Ef1D zSSajMtye6xfagdwCP1P{Hoq~X&|$2tK5gb6C{b`VP50*Cq%dVWw$&1V=bZ@B^KD~~ zx~Nxf{yrR(O~`B91^JGfa)6-t#3(M4zbUm`tW0cq76}2sCaU>fj%`{1?NTiv0!{=n z8}pv8*mKOS}4nFhsmk$$MZM3TUW=WS<%xw zeE>0V3nyON+hi^cf-A4Q+LA6ks$+2T`WzbC+MeVA#MA#|WA4!~%%^ z3_dmy^5YUt$Ex3})@B8mseP0FP+VUcqXBKVXcax`^H1H{DDOG&H9jN(DRm8jbqu@6 z+sD2-S8b523&F^VCVU5%hO!9iW6a!88Z8Dn9C&TPsZ^9X5FzYEr?(uF!&NmE#2-Qa zK`s*kZfF)*Uz88jQV=U)=NRis+t(v>%-K0@K68&8sQayAY}l40p^ZS0W?2b;Yf23I z#`2m*OCA*~?1M=5!p@Gp2PP@7B!$e8V z@a{3uO-2ir;e8i1DC2%25F^Oj%}ctq<$ea%G&lDOWCE3iWKs!u`vk9&hdU!7uD5$G z`1;6vz;gLPlyBE~eWQQs3|eph1`oo7$J{ef%NX1s>K2|?{%zVI?DLo#tYP;paB1LZ zeOK)07Y45mIvkqN4;MPviG6l{9fl74ls#q~tE;pmattoE*MsQHJ*Tc|hi_Res| z8(hl@o~QW)78~MkNpyB{-d_*1fuPtdUDk~HfYm+*THrq!f*NQPfLMJi_5^2Vh&fcy zjvx3Ne#KTcr8hOqWSV&jkjLa$0wJ6V9f%>@X;08}XX1XunY z%G`1SAS@0HCW_hn^bynWkk>|hO}KkcIgd*!%{=ccb-cocztcE@k|qJndwh zD{c31rGeF1MqxFNA*#5ppyXMSL`+^I^YdrJF-|FWe~_h`LOysSpGEis6aJGycz6A~ zN+w;HYL5#l8_0-82BJk5B7 zGXkTkr7%H8WG<5d3c;Fh42$aFAMW^*{@3-@FKh2>U;V<|7lW$0e3Bl#Yq{gTpQggy zQzX%)uFz6G2c$jv6r&DxUZR2CBV?es3^@iq#0AgQ2xaLs8R{wLR8IeC)E6#+>gf7NjLyfUHi)v zf#;hguQx8sF|O6deqwEZR22`Yu6JgW2>|c^V)%p%LGLWeL8e{_vE)2=i9lc1T6L*z zGBE?tVqD7?1r(4GU5Xqkk9b~U-5f_g?F!H_LFaCM*1+An3wGS2;rSo8>?=X>cAfb# z@^YH@;Z(BG{tHI>=L?6tb?^^UD^X#b8USlx1WvyJDnAELY2zKrnqv2%AINg`vk&BM z3NcpSIg|lddombstzz7r+?@$8)9zSHky}(>iM+V_=b6)LbqS zQWeny`Ez}SThYMdeFtzQOb0K&Cj0~ENuNCvlZ zBlB5V4Qj^Y1*q!{67`7Ou!c=Aoc#RQ+4{gG2>kFc`lt=f((+IQ#xBm)g^*A@L{b0) zk`})HB4)|iE{Qze`JtO#QaI}{9?!U_gndo31;tujJG9$3q zpWK(T_8PlUoZr3!m2sqgwek2z-qrQq?~1=YQnEvVhRl97vAy;H0Qs8| z0^G!2T&{hRRANg|iXSkp-b6^>n~-2zqO^p_yrdrf|-AsH-#%P z)r|jJY62>oRjCVdAzj)}i}Ihih*G!WH2-Xsetl%AvWDl-qOBC1np&!9JD*#wX#?;& zx+%jE|2=I&c#M{lvV{|q@)Ji?#>GQ5tHJ-ne2?+eR~NlLqSpC}Z#VK9D378Y^9p*7 zT^6kXRgqq|$6YD=_{G<(mF9o@Dh>OeUA>t;@)}w=efpfhS6d9Nl<&PXf}UlLiY-n| z3VjbN%kAbbUMGEeO|ozv$#naV1Of+a6Oc$s@p2R45Lox*wKHIwBV@d`63(`uoYxG` z^n6rzi)4V=a2#)9{RTz-{iy40k;DlQVyY*~g)orSEr?&q?d!~k%?c8ba#Ad zflXPAh2nueMF>HiPuJdSLpwVjxM_1fx)jyR6|+ljcELe0ewpoB-mvZKDbe z48ZjAE;NlB@Jp%0T@a$C?f{C5?b@{fEjxavn<$<;P=s?~fiMM6c9u0xJ)^vU8VN%x zdsslEh`GD6A$PctA7cT?go?r|q5=8V)p--C0%!f$sfkJ;p{FXY2aK(mDLd4~j|R<5 zk4VPYkex?JrfPXyAxb%>Zmr@c85$6oTcYX6xfqy-CowUx!FJ*6tw*!n6f>To*8b1P z!doI`awb+}FsK)8uy*h38@QD#<z3gBy_Woi1G|nsm{*5zJ-+rt0p3qF`*C3(k zdF5VYJ1<-fCYbiP^J0ID9z{**?_SLIbcFG?IyN1@EAcu0Q)H(U;O1XS$#STR`s6j} zXLaaSjl)}*)oqXVDID+Igs}5U82p$??gmzibG1`_58LD1CKv6}dm`W)mSnS0i9#ztZ9Fb~ymCNB!re${RMVF4MGYyyPxZuG69M2oqD2J%4{k;NnX zjpCsC*y#QE(8}I}Pso)ia#kdNoSt`{rH!hE)*P3)kW|}9eMOO^bShJbapKI z?PGD%vV4Q3C*>O@6N6aA8{t+kC(obo)YGqO_NZzHmU>kYZ79j7kS(G}m0i(0u}UWg zE6=B;Gi|DS;$}o39s3Y?voAY*xo|!Grl!WP>7t*!GC&}?&j6zg0c%;!TwdiL2vgzz zZ)OO`YySl#6TX7~3zlG-Cgv%))`f7bW;F^RIrrtP7!cFxl|o4 z8+&*wB5t_J-8~1cFMTk~(%YiMMPa+ON&2jVhzc?a1#*)(rUnW3p|zq@!UwwTpWsbL%ig;xpJy^nWY64^!Dk$PP_GN;h;Pj5WwjciQpD#O$=x06=9Rf8`Wpi21p? ztFP(ITG5Bf#XA&nx9caie<7c|mIlT*==Lz89dZ&7CHRt@)MPe{3j~2*MI)g?g4Ji4 zIF`Q50)F~cq6+C;U9vv_8f1Kf=#PXH%sl`Xhft|QJ?%-0gaof(qJXFoE`SNCowUR^ z*gx_^NU(i(z@qZ>{dXbk8Y$KWz|Ue8QLa>=@ngfu?_>OZk^O>e2}Gz`v*E<=h!{hI zhG9OP;;bLuS{~;N@>nfbzM^`T$Mh+gLJ> zzeTRoyezAwdRE5tI*2|_!n4erA#HU(P0WV_nfnI@g1PVMtyWrNFpGtjY|sh;`Xqhy zF{i;lPA6Z5>w;K~NX}c!{kG_tJq;+mz$QTWd^YiN453=g7yAGUeM0|Vrzfz|gm?op z4Ue>->KSVtmvlPX0Mjz`m5;JnU-Z=lGbm~Ah>E=QvY)Vnob?|IRE!*^;H|3l9r?IX z`7=8I%ul{TIG>FU?vz&`kSJLVu1n#6XD*86SpWiR(62YhR{(3t4B(}{f#7593HqEB zjDSG?9v@LN42YR$R%pS5uT+XNI=pf{o9$SyZx zO#&DO$bem7!rRr$;ztTK`e|bUho3wbZIW2tLke7{*=zSvfYi)Cgf+m8c8VG1<41`L z0@3*ccJYrM8^-{?bZF#P|HX*&`i#B7&ga~~9&5Vu;N4=x-md2F;NQaHRV(lRlWEHfh3>LPi6h;q{{ zhgz4?pYxaD7ew@ z$o7fMC3FNdV3?!82=T~uotG-sk>R$L#lzI76Yn=Kw9;?CTn>VG6=$>a_8=9x84#Ra z6rH-QvJ&D08)8LJ%RTc8!Bw+Wb?#3EFX)Edo#Jc$0!{7De;i%~} zjU^xP;Ew!4*(qYir++_=5*cBIy=R*1wN&Su#Ky%Eo)zn5I-QXIc6L}vN9l8qZvUi8 zXcvn4-kUO`F~vdYia*K80ucLG$FW;UZ(>OB7Yr~4a@f0xl&e{;4}ao}KycET%ypnv z;}4IE$A2Z}CJw#_MCEia4YaF!x5;T{Ol64FPMPw}Fc}ZHlC1x!ELd}PQ#03wT1DmY zE*!hAvYYYhMxjP+5U0j>d$+9%+zvAfDnFDq&{C9pn;oakHAhQNYY!>FO>W0a2FK5& zJhk0OXA|WJWEmW$OVH$d=c{L+((`xmI8&9oI4zVPq$3m>Z@Ut+)-u5E6H}Jh>vTs1 zM!US3hLx5AW>vQKN|6;U3b`YOb33gM<#ctl(N(+HmYetjSe4%UWlV*d%QB;vdqe63?i`kEbc}jdXead|Ez+KB%LMkyKRbY_IU$*-dW51C^(< za@jsTi+Krx9vc0u;nwsS91L07HKSbWX4Cg`(Ag_nY!Pey8K5q0slMB-G9+XEP|kWB z!Io1;AkI1zz}gu?gK<(i7MNDjMo_#a77w;y9bp*?=vTIY5N#uNN^llAPlT8JlT{-` z%{#}-L2!&Ur0ML*$d3~Gd0jh0W_Um(zM{09t1=%aQ}9Qzfd={J)#t(zrMG2Dau}`! ze}7CDG9+6n?*`x-pTw^o$O(6`6cbR=b6IE9HwD09sR%xwW{ zr{M1Wbd;pcl~h@HwZeR2Ij-yrL$4mgN}XmI<%pT8>EvmoX+~REon4Wys9E9f<&i{2 z@Zy1PR@{H)4>95g*G_%;)WyatpP02AgRpDm+7(XmUW*JiCEPsp?$e9WMPXsl)cZ($ z8ONMZf;8M{>exRN1^(SQ;S}@b@;u*T)nmjcy1u}}@pA=vVC|$So!k|Ea+cWo$uut} zMk43C2wsrc(VYJn`^VOdhTQ1@7{Ei>B`_(cPf3*Cl_8Q5++U@K1{5 z?B<-PnW5xQ_eT2o*aZSvQUU$15xjmX9nSFD(?#ad1Xu<6MYd3R9Cf{fJ4UE}K;}^D z&|__gm41DQA_5it=X9h+=%lbRqv<|2t5IBvVexSQCjln@|CX2jzbEdKeZ7bpZSF_5 zj7?wth`^THCu*oNvd89?T#2@G&kh2p{baZ@nM*Y)1LWcdi!z^N6Q_g5z%9X8U1t!X z?^>2*u>5fS6)!EacLWGRP+{i? zh#xX5W-Y~O-f1kjN0o^mvESa=%}_O|xtNk;Qf#0BAtAB-1b>9(8N|xPGsQ3_)#xM^ z5GzosS~(B(Ut*!j#Re`GqEiKj#q*46lYp^}+!`JK)csYQwmAnx_D?-5 zXwE1Wu?)JuQ)GF|{+O}s=G2&C8Ntz}(D%gb(C8&PwdB3C3mp_63Q!$Lz?DkQVL|x{ z(ME(rGwHHU#xDKQTpqRnvY-wMC^Su>OUqMkD?2I+zxO2ZDjWW4*(^RxSCXKczDn`t zqw4h--7kb!%|H(dm~63;$-(SGK=wEp0vuYwcjN5NUkvI^opzA4(+l%8PrCyM5-l8Us3zixc2m*buXLLq z&M3Lf$KMAJO(WMehOOlN8KZF@vvp+>Xm4wleoHG&?km*tsGrUdC^G3hqaV;HgRF-w z$-$W-=hzWyCOtv$Sul&l&Hine6*T@xJ(g;e$DB1EhAey-YyT5LvocSD?R)9rpXgA= z&2lokW0(4YG^Sr+)NPC@rQsoNW+{OdGv_wRj3c@l6{g=CF++#ZakK*bf+QVM8A zZp-8^83sopQ!nKAx0uS#xduz(W`38&*dyW5R9uCh^-SjInI=ZT%C_d(Q|tv;Rr&LG zzrJ7os7eJ}rTQ3kl4m-{Yd7U@RKdN19pIneyLpqiyIWTZ8h4~s*a=WgXXW#?!V}mOCBGx$W5ayrEi?LfQ{W6K%!A<(MJi4JW ztarlzS&f0FR4A3h?5p+_Cw*uYWuX;bT;i80VfKUJIU+vJb9r=KLWP+A3gSZ6!Z2ru z@%v{q9V@Yo#5xma`Wj)&%q?IdL47igQQ^A(Qv24k#SFuir+tO+P%o2pep;RdWEbPn z2CW)G#*@k7+MebLW8u8F`LE2Ww{N0b53Fa|_N^(;)6-JYWKo!ZeprqN=z=`Fc)L_` zU;L{NlS}pCflhXRFz2`9J&eC?^tqD)EAW3Tcj_Ii(to+YvCTNt18JvLUVk!QK^?Zh(S8Joms7JCdw580j+51~n%OIi-Y|C`jdf@^-zLi(IwHkYC^v80iSOBGqXJ{ed4|k zEt!vHm`CGp?|v2jZ(BGWc#mk0P>zB3IHV?8;AX?F>+tDsUjn7X-6H8ukf+h1XPq1Ve&-U zI4l@3Oc3X@vXLakrHjDD3vN~8@14m>hQ8YI^&fF@ar1y>;nzy&IM<>u?N1sfzcVwx zYeG8p68E(G%%o2X^Zjp8k774y>l{SX`Z9xddXl~st!H$B3$@}Di2ha{lxiq-jJCe3 z@6wpU;J||==Yz3q1NG%8P`z%${xY?YOfqf#5#wWy)b@<+@(9#oJz*w}U8GPY$reg^ z`B-r&fB9DFMMbp=L(#|>%GbjzB&x->kfS^+CR$kwaz4qz>ws8B_AII=Yc?7|r+F5t z;Bq?|jg_*!?W*AXOs zpt9)n9}q5xP}B&;6+RqV3taFd=Ko!3{68<^{U3z?|E)9cL%w=>e%vPoimjsgPQSl@ a5lP5|>)9U-H-Q)6K+@t0Vih7r0sj|>{p2nH literal 0 HcmV?d00001 diff --git a/src/figures/istio-nginx-chart.png b/src/figures/istio-nginx-chart.png new file mode 100644 index 0000000000000000000000000000000000000000..baee837248b294ec0b05ba4187143fceeda8ac51 GIT binary patch literal 10047 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 Ml#*nL`1>#a1I;OUkpKVy literal 0 HcmV?d00001 diff --git a/src/figures/jmeter-for-otodik-chart.png b/src/figures/jmeter-for-otodik-chart.png new file mode 100644 index 0000000000000000000000000000000000000000..5d329a79e454e4f6606b230a8a1949003af75ba0 GIT binary patch literal 12901 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 J6g3Y1KL9RgrX2tP literal 0 HcmV?d00001 diff --git a/src/figures/jmeter-hatodik-py-chart.png b/src/figures/jmeter-hatodik-py-chart.png new file mode 100644 index 0000000000000000000000000000000000000000..fd0e3b2d7083ca82364e9de3d1a9b788c4551c6f GIT binary patch literal 10413 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 literal 0 HcmV?d00001 diff --git a/src/figures/jmeter-pillanat-junky-chart.png b/src/figures/jmeter-pillanat-junky-chart.png new file mode 100644 index 0000000000000000000000000000000000000000..0f731a0f1ba2a3c99004badb86befadb10990e91 GIT binary patch literal 13262 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 literal 0 HcmV?d00001 diff --git a/src/figures/kubeless-isprime.png b/src/figures/kubeless-isprime.png new file mode 100644 index 0000000000000000000000000000000000000000..1e6ce213bd2770a0dd64f0a602607f597ba83c09 GIT binary patch literal 12453 zcmb_@byQqW(C^ontSiuu3J;LyZY&;YQCy`ltV`$L4kpRL4PkVtp)=Fy9sU7NC4;+M!@b2 z^aIvSO->S~a)RtP^aS2YLP-J!rY0Ws(G&UM|V{(>KnHTXRmE9(SW~jSZR8G}hAZw(mNd4FnExM%b4CgVdf>yjE^jZoWUx zi3NfjA_X`oCv<)d6CnZeWrE=4k%o1sP*LsS8N`EreO%{Op5&f%zrDH{n>d{~?KGYP zty^WE{;oPZ{k=AM>Xaq?`GSZ#G$9ez<(cjA@&$=HGzKk_8<>G5Ie_#kWl{bwrXFFp&1Lo_%JL<-f&H%tKV5)A+EVqg|)T?38!lH54uRy79l$07_B|X zEXi8en%hsTI1Hf)<0gdw!(rRFyM3KEACagtyHS9x1aoBP<2CX>pqfHbkn2TwC$Klj zqWf@v2zsET(1j+Xz#zMtB_k%W8iS~Rj`Llkz-_#F6PkcfhGjieB9W}=z+C^t8j4lR zS#E)-1br+op0y+rG1LD_a;e2-r+=haZMYp$I_r3;lj}(fygCr`_Q5O|xpzRfPI!C#RJ=f9{B#~@=&lY@2XFrNNKW`9 z8EnMrE!_2-IO(ewLdErT(L$I%eGKFme+MF8)TIpEOBnTWn<9{6@jqV|oADI?wbM^i zfIA)k<0Q7nBYBs0GI~MeN*B$kkI&>=a7hFS+sm(5zzM&fPhhhhDxBX1WfNyd4eES7 z#N>esZHR0KM)HTJRM1cPn@%gIU<)b88k>3h-+AJ@)xbwj0ZE%o0kOancoJAo2(91d z89OWCs&?7ed8}x|UaBm(3EWkHuiN-4s#a02rS#5Qv(|0d+C<~fUt7Q7i34tHs;FM{ zbDAx&kDjKu)vJiJ_Qr@Ds7fOew<9r1BsJqwEF&viC0 z%7L5g?x6rfFmJ&!;L&iz6D*~5&Pm)C=ZJc(U7$+_kA|vKU6I++H4pRdoHgBsb6+?b zo-vF?DW;JQePErNQlX&X*AJI@*E}Vp2sZ@Ib4`TIziIoyJ0!CEl^ zpsDuQcJyY#(s`%%;{K{t5VcU*>Zd&>RJE@nxNk5AO^H-+kR0=V7f|BD5mh7-S;|)) zsWeZ#Ka0pGoXEa2Ly{TA5^?@!pC5wgu>C`@mN}Tc6EYMKBK!12mQr)YnD|zDr0$B! zO@1kebB*^B$k=?c;LKObMXun66#iu*z0cF>PmoY6PM`HR5A^l19Ax^G3E~f3DqpJy zYkY~}Ke&3>WlmdL&3$Q1{|Xy498;ErA6c32&`pq!C?Cxk#O%8yE44redm>i%^G*FY zAf|O}*;Ho1H#hMU*lhScn%)(m1vYvlK|(Hwid|2Yn zHFhZixizT~<;BZU3j*v)`s^y&tn&~PnK43oHd0#wUg=sPIC%yYEsyKayv*nP6 z?W*D9l=as^9VhjWRz;7CpY`a)v>DhUN3Kq0pO)=ph3kF#AqAP==UO4*baGvwj48*Y zgqAlZ!Vx~9d3gjwensWh;SB7>r6vKeU(f4 zcO5}D3y0o_jt&x5xIRnlkA}K)7|T($v28luoP#vyewG*|SS%li_$F+BHEScfzX_pcAT^dShd1z>Oz^AAm`QChHHgeLkl;D!p!U&l=36M_n|x(+-p@#+XGJi|W52N> zS+tcj#wnEiCEKY4QDtI57f=KUO8%gp0i&`qZ`GtM7;EYB2mr`%LWs>}QwVPr_*nO| zeu#kxd0sf=#aek_znaoZEaW<8Mc;_(A;>EGsS>iHP2>ain%MG96D0OHF@o8Rm+GQa z{M=Y^CJSZ~Y9R=?CGA^r68YpY!4x0EJz#e}*qUN~VH0e?AxZo$X)QRJmwOUNoozxL zs!l?Jf=d6>o81g0tRI{}Kt;NVjGf-1h@KXzB8pev)p{Ke6H;VHUrgUOVQBq@K#T8; zh!1@rUi5u&P*LGhF9vr^S)&IdZsgk}MMuvavM-9$gwaGABRcS{{2|#NqF>Sm$OJIh zaFk5~Rrj0%-P2`JTSy@qVOv+*>1zXi^N~eJS&0myopR zy!=L*l+37o3r2%u}XMk|&ebEfwg6P%A zg$D)HWhU+sba@tWAzVQc5D~K@PgvTS^nEx*$-h^^WDFJoS~TGP_u*;^_PGsl3N~}^ z3;70yzQhkpL! zUb0m9HtZT$b!6=g_2Oh51@TthhFnFUstLUkEFpJYNur zdYXK|QMZ%!*W6c!qK0J)~_O=MSh? zY70FGprl4t@yww{FAPfNGR6xUMMxwWQ4B-DbwLi{DIQI)lD3l1MudB(y+Pp`gRy5ZH7(P3A z?O@hFiLF$={B8T25l4oq3x6#I00XvYN5t*_`rPlG;x3cK`qBFt-&`$ zua zmDG_2tEC=WRqPi>7D4cpp}MPB5{X*TGOVkZD~pE*Cu2ztw9>~nNaG@jw1kF$XWew4 z!jI=R@Zg!p{)0Bs})Ad+=ngAVOuNaTvB6h_Q8mNpr?yyS!Zp%UvDLn)hxcpS&bxpXTVx294D=8oNYL=BJV4R$XI&^F>2!MW! zC@_6t@NCm`FkPQgrBE8{9rq8+GX)CbLYi-*nSuTDzCZuUwoCfRxGP#My1t?>iE?R> zB2|@^Ms5w3zFSZQAzik4B0qJgJwgZykHvHre~@kj2D(yz^mGmYiqi0*Z&`Y}_+m^Q zF~7tk`QMk^=_)a-EnRU9?U>CR7f!x^ka|Ui!mxoCQCPK-T6f>H!xVTu!M~;Aii=8z zc1jgDo>NV%p}-d1OguPTK^EDgb!(~F-gE14cKFq;y$M24EJzI}84UGKB3G9mtN=|osy>(1aY6d1oDRskI;ci@`{jkCRaq#NpyD|4ry ziw{WDZk*-fxKMD3h64R2CfO9YOyTl}ToUTmXjou|6Aq5#Py!kwI7`%0`}uS9`9eq2 zvO;_kb0!%o)DdVbOA=`d$I3=o>*?|um&M#=Tq8ADl0yibAaOXPLNz-NvLQQZjjY+_ zXq?G^4?t63E2^qeMNIC00_I})R^G7fO!Gu@8(hK%VqFk%{(EJ2#*aHJTX4U_C;X7u6)4+tWp%LH;9w>nOrJS2Y~1lwBO+&! z{dg_b5jniWoQS81IKKB!st9ItZ zmj%QXq387HhE3Vu-8ibqLr~l=8Pfv;J0wA)f_*QKD}#9}O&>Juj#IJfAa|n&S%@~S zkXh1Y6&>1lqTC=&O8%RS(NBq+?2L=q5k`U+)0q=I0FJz4q7WWMI}<)oY3vl^1jU~# z0%2s1o5g&S&X@xKeM0Le6b!G!<8`tR?Q-%2F`8EBi=gWSjZAz5mZIQ~)Y1e$=`Vf= z4dMR!!11Em(4qXKa2grp?|7C;L(S_mExjP3GKRJrUqT^TM{9D@N4GkGGPB#6^Y#i0 zIn%3y@Jn)T6VBJv+%Y1ws+_<{-Au@P486s4z;Osk)Gj((+kV)fgi&ly5XCU%bXK85>x<}(cm;roAYVWOS5F+&SFe#mJr_x#G;SepU;%(Hrn<2+M#(-|}%XJ@re?&xVFA>ok*Ol==Q zUL67Bm_)EDG(sJkS->$mH1dw9peeNcHnO04Ea~&U?-(McQ*4+3jgmpEKEEIzGgnC< z6-zdcV&O5Gw7eMXX41qKNBv2RGcEQzJh;7XQ9i-Kj%isBl@)lB-4Ep5mkoyT`FZBu z)ep3=CH+Yf!-&%;2~qbRZDr2;TBws?GkPSHzHCeoOns=jo&uqnVq zL7cqWhxSeKkh&Gne4j?$2uV=lKkN}vOOUFK#;qDi4JNrAV~C`iPRT?sr@ z45;mAhA@eaY_iD+8erGgZHDkCjh^(#4s8D{*$i39rD1j;I{7_^r1LH=>np`~l zki!jPuC<~G@5Ys@#2q&I%@R1XNTB~^BJi#L2aa;*>WCu)y)=<_rYxkq5TCRwUJhKO z!hNT<_XPra9C+fp%??je0zywM5e{zdO7S92NYYCLM$u7dxcacD%*DeqJL9xu0j(*G zBbgMJ-`(Z$9bP`>vwV{Pwt6>#llVi}<0ZzZBZUY!zy8&oCp>Y@LP$3mIBZjPP|l|y z+7|4_>K=udld!T&;H*wfScF12(62F?zJ&l7F&?e7R(%1H2=-502cI!K6?_Z(dEySK z4kI<#pZqon8Z)b1Bc{=W1j*rkt$dP-?AVqNZN*^Yc**92@Bbr90tk<2`vLm~=RJ7A zAwCGX-6fLQBz7uIXEw_iXO@JGR`G(yT^G9WQBS51P83>Q5^DbSd#7fttIuKa$6@g4g^>+u!}c7R?W4$Sh$-LhhiF9Z zd0fKK&y8@4`fP3yb}2rKv2NNLh^qcpByrW5t_7cU_BSrWP43e|fWm24i{X>;O({mw z8{?BffHhURSTDu~D9L0j=R+or33#LFD6(n3TIKNnro>yl|Q^M>lQF;5_Ozc!6(z(3@!>bx9p`xtPz{Il~fCPOya z-$5aqKQI|sNhVmqm5id_4W@7IThCzyIxmXMDercrcptm>5L5GKg`qaQA<_V`47{B^ z>%2Yk#b|#VG!}%suOlR=_}8~Ok>c9Pk|LdM@o;jJ&nuJ9eKXr#cgxiBHw|9GFLK(# z`-YM_32K)x83_$AZZFeL!fqQo5 z>kY&5*haZ{UUoWeEJ_aXh9EkwO^ej8My%B!)jv-)o;F|qkj7MSWffR;zD1>Jh-~*c zHMEMIDw>st2=ANRBZ7;MBSfF7HB6BijxAh;1y@#7T8+c|cRsHwzNEh3YKsN?2e*mOhc=SKCHvefZ>;nh z`<)~>oQOS7cNdOlVWYTXm!YRHL1~5lV562R(n)Kvud-r(+t<*g4ScdHX`+vu_DU=D6;47#m|O-RCCALk?vMh(=Dy&&M$@q@Nk< zd^;vgw&gF){z4=M_k818M^P=sgR?)99H4>6299|CG+N>R1Lita%4J_h4Ijkrv+ks!8zpv3O!hWCgCm|7rIE8(N>P$}x@gzIHn(hfbSLf&;)^;-^X)UlhhT_0fS_Ob`RsP0sZ&at-tQ>kc)NV zT^@GqGdS>JIO64$DaG=wc!`tH;@_c?uH@sVWBUEMFCXze2!nzoZoZb~B;2L&$+Q|Z zik11$V$1YDV{oHinuhfgVQOXN=gR4faeoGaSlI20A{ z-Coy}5&~_nhX7GHUP$t(SR8adkm=M5RS&Uk#r~iMw$2Vm(+l-mHh(kNk93NIPFRHd z;WDc@ip*oSfIGR~pU=0ZPYw*E&j+`(U1(R3T=SRTJ_prSIc<-d`EsHGbNSQfIM0{b z6i*X|5xb>(at}Ez7y5`U*U(vWHzVg7D2?)*bn>$@eR~h{G*HhewD}Hc$lz_azzadT zu*)5z!gEBLSf1C^A1C%$`y(tcmo;UY=%$n7XF$Wl<27PO)Y$IBL$+kkq@fo_;%Cy0 zwgZmo=RGCzR;s8QOMOnT)-uM+UKQpW$B6K!{S#%|-hku4r#?e#*V_<}gcYPb3oWvSwC68Q%%5D+6zr?yM!mIaP?# zOhg@1`<+A*ZV?!PvOBoiuJWlq{zm=={AHX+dow^A>o_ zQrD?megNF`VCHx~dAF4Hhu=a+(Hv~1wSD1~rZ+~9nJ?E}$LuSzJ{srl{^Jan*$1Iz z_>#>$BK4z5_g4V(K?SwFDG%}mcD`f&)tclgouARbT%$SG(%EPLipw$mG-=>&{F>Yy z^3{(ZjaxGBrB52cE1%ESrTM4}PUX5)c@k!N-C#;d} zVvy*vRX^lP=!;$ga+3V=XRy%r>4Zj{1siWG>rZ1JZs@L$Yf18%IAXX!ZF##n-*l+f zeQ!w7X~e1P7D;>Kp~osFZ>a?(U5gLW(1{Kqcl5>yDG8${EwvD&il~>B#^gDc*mc1C zF<@VF2_ERJpIe`}aqe+Z;bQwf8#qMG~M zvztmC<28@7R&Iejt)E_5yvMUc^|GsFL7C-ReZ36&2j$K=V3 zrytJ8g2=#Y*>}v-z@GH8krvKzDMC*P(MRDs(5|ayhDa-!*+(CJoAz0h9^zYvnUZws z<;*EFcTFn^ZK_rIZ)K}G=A?S>_-Xlsit(HldvP6(Dv6I3&VcU5{1o77BJXCV8#2Ll z@FxhiMVOXrzzK*5S-=r>T}Kkv=46>5q|uZZ;i_D5CJ`DI1)UiuNk885M;qa+>t1?b z{t(R;79P)asC+IPrD%aH4@8JO_wr>wZ=T)_v>>XWXL;jrB%3A@f4Uu-5nHbEerL{D)PQzKDALAnA7u%y0X*X9?y;#A%507$i*Ieh^)UhSU;{BR%; zmC_hYkEMWC;OwU$E_TQ$BOL=lttk(M1^Ngw;V(U@GrB($U#WG+5lJ%TgkG+9XMTei zJZ=7@eD3WMC;ce>av_6W->g6N&WA_GWBW)B>qg9m%?^`=JSOeYw0}N=_(#4mQp~wA@iT#SSHO94C+AefoqTVP*^=j#-@zw_z-& zkHoW|bB)`Asf*i$NjbzH9QyFckGNA@kS#u*spOxqbBP>PgG(7`cys1HF8HbV8)}{W zZS8qyK4zk^qBWfr%jz^?gAdg$E~W|FsFp1!&N%b+7B8LKmN)^37BaA8@HxO zP3dLo|Hm_|Yz?gvxUNs`{hPfU3593LSvdC8UG{w7{&x3@xNJ?Z(v4v(=g#RQL__3QZ3;1{V#e;({K3c0Ro^ob)t6B5rEUu2u_b^4uU_(YFg_q%|=p zk@lCfSX{`IAdBMcl|HjzgEFIK`RF1C5YK_!92l2j14q#G{l5q>DU>TRJcSkT;xfz@ zJDt$Kn9o0ewSzW(ss^Rt286E%|4s`(0#4$x>9o`oJ~0fJtEJ+#?7hN~f9OQ1V^D5f zSn0&MAz8x^;Z*S}GnQ?VV5|Y90Rvviupja__v{$7V24*s{!bSu*H|rwZwQb3_Yki& zYK~w@?cksMG}MO=>X8*xNp^ikP~!a`#!v?ynhuYIIwAJNzTtrm%BJ#3oq|fh|In&X z1kbntWeanlm>v4l5iGoePcMJ2Lk|J_gpj|xErL76q6K4oiQ=F7@(NH_`xi2jcWEy_u1P3^1g4rizJy&5p znL21%7gMyY=(*WmX;w5EFsDE3N1;}GyDdzwON{(|#`FK+q^%LrgL!-mBHb7~*r(H; zUo+q(MDie16kT=!n0QMGZGq6kJ^-K(Gs z0LqL{I!xF;@1MAxk##Z|- zYb0Er?RmU4?X>Qz&F&x&f^_9vES{Ff;$FM!yw&nFC4n1Wr~QmNiGyw>_9B!`N5bVc zlR(j@3VXsw=RE8d7rxMS^KjtUPV}CtkC!reE2ryRb&`0ip-dFSEzo7+un44Ll@)E= zPVa?roSKg_yOb*hR!CW+ujV-rN#9@F{oJ~|>D`zQom#g)D&kmt1{yu5r`H3~8XG72 zV^#L7?^hsGzfB=LXyIlSfDXKUGQoWG^rJp&I0BAz7!{tZo9}uKs6pXCwuIkU>pWR6 zV;+onV2G?{fq+X@C2$7p`#AOiQt;UFWF0)V76gB{Qo*AKhnjtmPpubYDkOp?5R1^= zo#5#K8RA9Zp>JRK@;it+ER3)Y5X}*e1aSQY?#Am8JQJ8i82F57EeYmiNfMBmrRoqF1)#zv|nK) z!iT;Po!VFgyyjxx8xE)gsk6d^3Bjf8X>rgjkj}3exP44Z?0vNfK(*{{xm0eD-hCac z?CyT;x`E1Ib<2AD(?vSNL?%2iBSCe>8*2%}M$4TgwnAi{t=*ll5#b-s9`Ao6lWUON z@8nkc`5chuw0(B}m3fH}&sk58WIwv43^NW*HvcEjz$yemVQ2swwWY`k|2wZEOAk%~ z@Be3j%Ey7|S-S1=*Z-@e1sht@B0rJ11Ex8Lf0V(O9753@ep@<*3Ez0nYizoi85){U zVF}%(2EU7(FID=FFeLB!8esewU*nG2|C^lG2SryY;_NDZ`==JiDtNzX30smk;~jxD zq^`6!7FTizy4QS7jMN$e#$V%SdBVFVnG{iHXc^6t{k#qcRdfH+mgsLf;O*mFt)yR zlvcrYoNE5^hy`8IW3GN&Ar+(j7@L{mZqCQ0wnr-4t5U4XuZuWd_WP#?lx%_B$7abq zYbcVae`0GM^-iq~Y%@tlrRhBGX&q}GWL8o1qHQaT0!oB)dQE~tk%cggVh$ZNHz``ZIztl`=e z@5$UU9hlBXDP8R7vGRcW*7u{{eGpCR?U^frJRs_*@%EmvA|Ic70W@SF&_L^a$ zOXe5ZuEsYU+U4JJsIn#M*t3=OWz?ED`_}T14LB`7ku~~FPisAY8DZ1=kpX5)1=TLu zVRuC`u?EgmRG=K<4$ojgEwtWus(Sah9HnYtJHx953=q0FdMFIF5T-5<$(9tnp^P?QH#6kErG?S7JWRKmK|n zl4l>!UrQ011k!N|nQ@rBO`zN)PnCR~($S#pS_4P0^R>E2J7@TLva+mOjP`h3{crR(vDm?%sG!+b!`j`~HYj%O?W!Mf(LG<61&+TbGo&R`cqIqAjJp?XfQ&W=HU?*4zsNUyWFP2-e&C z%~cei=?qF9H_Rt>zkfT64DdSA`YYpVcc&4G|8=7#P9P?;!%{)(J8AktK;vVuerjQ! z>T@6Ykq*SNYK|`Rqo4kX)d*!P@Sae5mAM|JL@0v`!SVcpB_pu@QDH5q=7MD_2$_w_ zRb789X~atQzJb5Nxcu?Z(hR#Ndg?;XQE!keCB6fTMVGHp88oVetGDt|M8T5JrCuFf zCI>l|{kpirtjRw4Jz|l`DqNGiA&ss83I5mSerB9jXk(IfD03od-P6I-fBvpt@QB@H zEjJrrs-_2VcQ9NB%yx zn9VY^F6@>MfC* zlv0mB!myx#&YG`!GLyMDEBR=Y0jh7|xjwN)G~lIY>u6ETO3A&T(}x3Ql%qG4zuPTK zswnb%XMl1&W7m+wx$rqnL05GHlgAD7Y_7S`hsR(~W{2P!N0q_Rvaqk>bp`m=kUL); zuBM5i^Tbl$Rk{#EY)%wS)4#6fJnTls+lS zp8vJ04mwL;sm1L?{d15TbvTCdu&pMqYQDF}x(CI#uYOlLXPThf(_rL97P&AQR&FoKl*g1RP5c*#m6#w;M^*?H8<;*hR zNpHR5b@8#f_0;m~Sgd!<6aN`Z#?m z-w|oVJUgji)do%7XLefJSY8pXjHTHM(Q(I%RyXoo@t^5di#E$+n*Qt5qKulRdOrb? zaW4&(4chrznoHn@++W4Zr9{MSM@f_VjS!QJ{ut@KJ)4{uIXIx868~}3?}E*Y^FQH= z{)L?;YHfCZT&oypGXuWasOqV|QNMFtZS$_1wKF_w9ipQF>uISNg)Lb8EKa%$Z(zYa zZMK+>0rDQLh689F%4#3)a#(x}$@QZz%s$%9#;VAul_*d;!P|1frg^0lTL`l)08!jY zW{#$R3u5#}VsJ)uP;u(aN^Lh3l6}|~Lr~$Ur~}Qxs%duh&>c3$HLypUpCA6bzOmcw z$98F8Hp7{_ao&t-pG9@h6)@N3&+N5z*{dp5ebSc;swZT+*HO2oR?%-X^~?ipyMFa%m*>|7kQN+I&u zDcwtxNL%W1T60v@zRs#i*1sgGKuwdt4Y--7W?Up*l>s}a+p{$J5;rPHBrB7%Lam}E z_-;@^BB9ZS(P*4Ov$wP^6x09j7MBy#2UUITqUr$785~=51Pv=>$`!YQvBfgg66_-M zRgWY5`AY8;Ch&NaT%9dZ$eTJMtt`6Z)}7mt_M;vut!&xkw;lAXI#J@ZrNq4K>LBg$ zd&FCB6d^0`qX`zn`5Mz%Z#FzyJn!CL$}9n~=N7V>*w;^1&X=9)+3gdQulcBv_OhM@ zI-W4EO}&44=-^w|6`tor^+9ghNK6NbCcq(jqh8vULDsx1&uG+wCplJrR+%fre{y|$ z_~>zKo}rTIl6UW|qE^cIY)=hqFs~|;q)ooK6BiNIyMAzWc63&hp)Iqiu2* ztHpJ#<6D@WZTQy6=1l8$Z(UFIJxl+23>0_1vFd3FfXO_RO+bSKw$fg6Im}xG@`*!B zi~fb6|5af0|4XVNU7ha?o?}8c9I7slcjqsda)A