diff --git a/public/tuto2/index.html b/public/tuto2/index.html index daed5641157b88a5364aa4f48bca9bc3ef1a9364..de41c546b93c47ae591499618d51680755067fe8 100644 --- a/public/tuto2/index.html +++ b/public/tuto2/index.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> -<!-- 2019-11-29 ven. 00:21 --> +<!-- 2019-11-29 ven. 01:19 --> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>Distributed experiments on Grid'5000 … and beyond !</title> @@ -235,17 +235,24 @@ for the JavaScript code in this tag. <h2>Table of Contents</h2> <div id="text-table-of-contents"> <ul> -<li><a href="#orgc38ce74">1. Benchmarking a real application</a></li> -<li><a href="#org3f66fb1">2. Before you start</a> +<li><a href="#org9bd26d8">1. Benchmarking a real application</a></li> +<li><a href="#org8d16b67">2. Before you start</a> <ul> -<li><a href="#orga16f997">2.1. Grid'5000 stuffs</a></li> -<li><a href="#orgfd9377b">2.2. Setup on Grid'5000</a></li> +<li><a href="#org3e3133c">2.1. Grid'5000 stuffs</a></li> +<li><a href="#org0f73ed8">2.2. Setup on Grid'5000</a></li> </ul> </li> -<li><a href="#orgc0bc76f">3. Deployment time !</a> +<li><a href="#orgb804170">3. Deployment time !</a> <ul> -<li><a href="#org1df303b">3.1. Deploy it</a></li> -<li><a href="#org8a7d969">3.2. Access it</a></li> +<li><a href="#org53db06f">3.1. Deploy it</a></li> +<li><a href="#org4a87400">3.2. Access it</a></li> +</ul> +</li> +<li><a href="#org51cf531">4. Deploy the monitoring stack</a></li> +<li><a href="#orga6debd5">5. Benchmark the system</a> +<ul> +<li><a href="#org04ec531">5.1. Deploy the benchmarking nodes</a></li> +<li><a href="#orgc0a0755">5.2. Observations</a></li> </ul> </li> </ul> @@ -253,18 +260,18 @@ for the JavaScript code in this tag. </div> -<div id="outline-container-orgc38ce74" class="outline-2"> -<h2 id="orgc38ce74"><span class="section-number-2">1</span> Benchmarking a real application</h2> +<div id="outline-container-org9bd26d8" class="outline-2"> +<h2 id="org9bd26d8"><span class="section-number-2">1</span> Benchmarking a real application</h2> <div class="outline-text-2" id="text-1"> <p> In this tutorial we'll cover some aspects of evaluating the performance of a real application. We'll work with <code>overleaf</code>. <code>overleaf</code> is a collaborative -text editor that uses Latex to produce pdf files. Figure <a href="#org3218667">1</a> +text editor that uses Latex to produce pdf files. Figure <a href="#org822339d">1</a> is an overview of the editing part of the software. </p> -<div id="org3218667" class="figure"> +<div id="org822339d" class="figure"> <p><a href="./figs/overleaf-v2-editor.png"><img src="./figs/overleaf-v2-editor.png" alt="overleaf-v2-editor.png" /></a> </p> <p><span class="figure-number">Figure 1: </span>Overview of <code>overleaf</code> editor: on the left users can collaboratively edit the document. On the right the document is rendered.</p> @@ -285,16 +292,16 @@ the official/commercial instance).</li> </div> </div> -<div id="outline-container-org3f66fb1" class="outline-2"> -<h2 id="org3f66fb1"><span class="section-number-2">2</span> Before you start</h2> +<div id="outline-container-org8d16b67" class="outline-2"> +<h2 id="org8d16b67"><span class="section-number-2">2</span> Before you start</h2> <div class="outline-text-2" id="text-2"> <p> Make sure you are ok with the following. </p> </div> -<div id="outline-container-orga16f997" class="outline-3"> -<h3 id="orga16f997"><span class="section-number-3">2.1</span> Grid'5000 stuffs</h3> +<div id="outline-container-org3e3133c" class="outline-3"> +<h3 id="org3e3133c"><span class="section-number-3">2.1</span> Grid'5000 stuffs</h3> <div class="outline-text-3" id="text-2-1"> <div class="note"> <p> @@ -308,8 +315,8 @@ we'll prefer to use higher level tools for now. </div> -<div id="outline-container-orgfd9377b" class="outline-3"> -<h3 id="orgfd9377b"><span class="section-number-3">2.2</span> Setup on Grid'5000</h3> +<div id="outline-container-org0f73ed8" class="outline-3"> +<h3 id="org0f73ed8"><span class="section-number-3">2.2</span> Setup on Grid'5000</h3> <div class="outline-text-3" id="text-2-2"> <p> Connect to a Grid'5000 frontend of your choice (e.g rennes, nancy …) @@ -336,11 +343,11 @@ $<span style="color: #7590db;">frontend</span><span style="color: #4f97d7;">(</s </div> </div> -<div id="outline-container-orgc0bc76f" class="outline-2"> -<h2 id="orgc0bc76f"><span class="section-number-2">3</span> Deployment time !</h2> +<div id="outline-container-orgb804170" class="outline-2"> +<h2 id="orgb804170"><span class="section-number-2">3</span> Deployment time !</h2> <div class="outline-text-2" id="text-3"> <p> -Figure <a href="#org4b6858a">2</a> represents a simplified view of what we'll deploy. In blue +Figure <a href="#orgbf401ab">2</a> represents a simplified view of what we'll deploy. In blue some services of <code>overleaf</code> are represented. First the Web portal is the entry point to all the user requests. The three other services in the picture are involved when compiling a document. The compilation service interacts with the @@ -351,7 +358,7 @@ involved to provide the chat feature, history feature, real-time interaction </p> -<div id="org4b6858a" class="figure"> +<div id="orgbf401ab" class="figure"> <p><a href="./figs/simple_compilation.png"><object type="image/svg+xml" data="./figs/simple_compilation.svg" class="org-svg"> Sorry, your browser does not support SVG.</object></a> </p> @@ -371,8 +378,8 @@ After the deployment you'll be able to: </div> </div> -<div id="outline-container-org1df303b" class="outline-3"> -<h3 id="org1df303b"><span class="section-number-3">3.1</span> Deploy it</h3> +<div id="outline-container-org53db06f" class="outline-3"> +<h3 id="org53db06f"><span class="section-number-3">3.1</span> Deploy it</h3> <div class="outline-text-3" id="text-3-1"> <div class="org-src-container"> <pre class="src src-bash">$<span style="color: #7590db;">frontend</span><span style="color: #4f97d7;">(</span>venv<span style="color: #4f97d7;">)</span>: python overleaf.py deploy --cluster=paravance @@ -389,8 +396,8 @@ After the deployment you'll be able to: </div> </div> -<div id="outline-container-org8a7d969" class="outline-3"> -<h3 id="org8a7d969"><span class="section-number-3">3.2</span> Access it</h3> +<div id="outline-container-org4a87400" class="outline-3"> +<h3 id="org4a87400"><span class="section-number-3">3.2</span> Access it</h3> <div class="outline-text-3" id="text-3-2"> <p> To know where your services is installed you can run: @@ -416,7 +423,7 @@ To know where your services is installed you can run: <div class="note"> <p> -To access the web portal you can create a tunnel from your local machine to +To access the web portal, you can create a tunnel from your local machine to the machine running the web portal as follows </p> @@ -430,6 +437,97 @@ $<span style="color: #7590db;">yourmachine</span>: ssh -NL <span style="color: # </pre> </div> +</div> + +<div class="note"> +<p> +You can access the web portal of your friends by replacing the address of the web portal. +</p> + +</div> +</div> +</div> +</div> + +<div id="outline-container-org51cf531" class="outline-2"> +<h2 id="org51cf531"><span class="section-number-2">4</span> Deploy the monitoring stack</h2> +<div class="outline-text-2" id="text-4"> +<div class="org-src-container"> +<pre class="src src-bash">$<span style="color: #7590db;">frontend</span><span style="color: #4f97d7;">(</span>venv<span style="color: #4f97d7;">)</span>: python overleaf.py monitoring +</pre> +</div> + +<div class="question"> +<ul class="org-ul"> +<li>Create another tunnel and access the monitoring portal</li> +<li>Import the dashboard [TODO]</li> +</ul> + +</div> +</div> +</div> + +<div id="outline-container-orga6debd5" class="outline-2"> +<h2 id="orga6debd5"><span class="section-number-2">5</span> Benchmark the system</h2> +<div class="outline-text-2" id="text-5"> +<p> +Benchmarking will consist in generating some load on the system. +This will be made in two steps: +</p> +<ul class="org-ul"> +<li>First, we'll install a benchmarking portal and some agent responsible +for generating the load</li> +<li>Second, from the portal we'll generate some load</li> +</ul> + +<p> +The load will consist in (many) users creating a project and compiling it once +before destroying it +</p> +</div> + +<div id="outline-container-org04ec531" class="outline-3"> +<h3 id="org04ec531"><span class="section-number-3">5.1</span> Deploy the benchmarking nodes</h3> +<div class="outline-text-3" id="text-5-1"> +<div class="org-src-container"> +<pre class="src src-bash">$<span style="color: #7590db;">frontend</span><span style="color: #4f97d7;">(</span>venv<span style="color: #4f97d7;">)</span>: python overleaf.py bench +</pre> +</div> + +<div class="question"> +<ul class="org-ul"> +<li>Create another tunnel and access the benchmarking portal</li> +<li>Generate a small load (1 user)</li> +</ul> + +</div> +</div> +</div> + +<div id="outline-container-orgc0a0755" class="outline-3"> +<h3 id="orgc0a0755"><span class="section-number-3">5.2</span> Observations</h3> +<div class="outline-text-3" id="text-5-2"> +<p> +Observations can be made on two portals: +</p> +<ul class="org-ul"> +<li>the benchmarking portal: you'll get some information on the requests sent +to the server</li> +<li>the monitorig portal: you'll get some information about the resource +consumption and some application metrics</li> +</ul> + +<div class="question"> +<ul class="org-ul"> +<li>Can you see the effect of the load ?</li> +<li>Scale the workload by starting 10 users +<ul class="org-ul"> +<li>what kind of metrics seem impacted on the monitoring portal ?</li> +</ul></li> +<li>the projects that are compiled aren't all identical, can you characterize them ? +(in term of CPU/IO … consumed)</li> +</ul> + </div> </div> </div> @@ -437,7 +535,7 @@ $<span style="color: #7590db;">yourmachine</span>: ssh -NL <span style="color: # </div> <div id="postamble" class="status"> <p class="author">Author: Matthieu Simonin</p> -<p class="date">Created: 2019-11-29 ven. 00:21</p> +<p class="date">Created: 2019-11-29 ven. 01:19</p> <p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p> </div> </body> diff --git a/public/tuto2/index.org b/public/tuto2/index.org index f915d1e07a48fc6fd0e05922ea0b8fe845d5a6f1..7f360c29dc257824d078e88b6607ccc46911cf13 100644 --- a/public/tuto2/index.org +++ b/public/tuto2/index.org @@ -124,7 +124,7 @@ #+END_SRC #+BEGIN_note - To access the web portal you can create a tunnel from your local machine to + To access the web portal, you can create a tunnel from your local machine to the machine running the web portal as follows #+BEGIN_SRC bash :noeval @@ -137,11 +137,56 @@ #+END_SRC #+END_note + #+BEGIN_note + You can access the web portal of your friends by replacing the address of the web portal. + #+END_note + +* Deploy the monitoring stack + + #+BEGIN_SRC bash :noeval + $frontend(venv): python overleaf.py monitoring + #+END_SRC + + #+begin_question + - Create another tunnel and access the monitoring portal + - Import the dashboard [TODO] + #+end_question * Benchmark the system -** Deploy the benchmark nodes -** Prepare the monitoring stack + Benchmarking will consist in generating some load on the system. + This will be made in two steps: + - First, we'll install a benchmarking portal and some agent responsible + for generating the load + - Second, from the portal we'll generate some load + + The load will consist in (many) users creating a project and compiling it once + before destroying it + +** Deploy the benchmarking nodes + + #+BEGIN_SRC bash :noeval + $frontend(venv): python overleaf.py bench + #+END_SRC + + #+begin_question + - Create another tunnel and access the benchmarking portal + - Generate a small load (1 user) + #+end_question + ** Observations + + Observations can be made on two portals: + - the benchmarking portal: you'll get some information on the requests sent + to the server + - the monitorig portal: you'll get some information about the resource + consumption and some application metrics + + #+begin_question + - Can you see the effect of the load ? + - Scale the workload by starting 10 users + + what kind of metrics seem impacted on the monitoring portal ? + - the projects that are compiled aren't all identical, can you characterize them ? + (in term of CPU/IO ... consumed) + #+end_question -* Scale the system