This shows you the differences between two versions of the page.
|
scgc:laboratoare:06 [2020/03/31 17:27] darius.mihai [9. [BONUS - 20p] Load balancing in Varnish] |
scgc:laboratoare:06 [2021/10/27 14:08] (current) maria.mihailescu |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Laboratory 06. Load balancing and web acceleration ====== | + | ====== Load balancing and web acceleration ====== |
| ===== Lab Setup ===== | ===== Lab Setup ===== | ||
| - | * We will be using a virtual machine in the [[http://cloud.curs.pub.ro/|faculty's cloud]]. | + | * We will be using a virtual machine in the [[http://cloud.grid.pub.ro/|faculty's cloud]]. |
| - | * When creating a virtual machine follow the steps in this [[https://cloud.curs.pub.ro/about/tutorial-for-students/|tutorial]]. | + | |
| * When creating a virtual machine in the Launch Instance window: | * When creating a virtual machine in the Launch Instance window: | ||
| - | * For **Availability zone**, choose **CAMPUS**, **CI** or **hp** | ||
| * Select **Boot from image** in **Instance Boot Source** section | * Select **Boot from image** in **Instance Boot Source** section | ||
| * Select **SCGC Template** in **Image Name** section | * Select **SCGC Template** in **Image Name** section | ||
| Line 98: | Line 96: | ||
| Using Wireshark (or tcpdump), start a capture on the br0 interface on the client machine. | Using Wireshark (or tcpdump), start a capture on the br0 interface on the client machine. | ||
| <code> | <code> | ||
| - | student@scgc:~$ sudo tcpdump -i br0 | + | student@scgc:~$ sudo tcpdump -i br0 -e |
| </code> | </code> | ||
| Notice the IP and MAC addresses from: | Notice the IP and MAC addresses from: | ||
| Line 243: | Line 241: | ||
| Do not forget to restart the Varnish service every time its configuration is changed: | Do not forget to restart the Varnish service every time its configuration is changed: | ||
| <code> | <code> | ||
| - | student@scgc-vm-1:~$ service varnish restart | + | student@scgc-vm-1:~$ sudo systemctl daemon-reload |
| + | student@scgc-vm-1:~$ sudo service varnish restart | ||
| </code> | </code> | ||
| Line 299: | Line 298: | ||
| </code> | </code> | ||
| - | We will also need to change the DocumentRoot of the Apache server on ''scgc-vm-2''. For this, edit''/etc/apache2/sites-available/000-default.conf'' and change the DocumentRoot from ''/var/www/html'' to ''/var/www''. | + | We will also need to change the DocumentRoot of the Apache server on ''scgc-vm-2''. For this, edit''/etc/apache2/sites-available/000-default.conf'' and change the DocumentRoot from ''/var/www/html'' to ''/var/www''. Restart the ''apache2'' service. |
| In order to measure the duration of the data transfer with and without Varnish, use ''httperf'' on the host machine in order to download the following file: http://10.0.0.20/data/10M.dat for direct access or http://10.0.0.10/data/10M.dat for Varnish access. | In order to measure the duration of the data transfer with and without Varnish, use ''httperf'' on the host machine in order to download the following file: http://10.0.0.20/data/10M.dat for direct access or http://10.0.0.10/data/10M.dat for Varnish access. | ||
| Line 305: | Line 304: | ||
| While ''httperf'' is running, check with ''htop'' the load on both virtual machines. | While ''httperf'' is running, check with ''htop'' the load on both virtual machines. | ||
| - | Use the ''--uri'' option for ''httperf'' to specify what page is to be accessed (in our case http://10.0.0.20/data/10M.dat). Notice the difference between the Request rate parameter for the direct access and the Varnish access. | + | Use the ''%%--%%uri'' option for ''httperf'' to specify what page is to be accessed (in our case http://10.0.0.20/data/10M.dat). Notice the difference between the Request rate parameter for the direct access and the Varnish access. |
| ==== 5. [10p] Varnish statistics ==== | ==== 5. [10p] Varnish statistics ==== | ||
| Line 391: | Line 390: | ||
| <note> | <note> | ||
| - | Use these examples [[https://stackoverflow.com/questions/31291374/varnish-backend-vcc-compiler-failed/45082602#45082602|here]] and [[https://varnish-cache.org/trac/wiki/LoadBalancing|here]]. Take into account the fact that the VCL version may not be the same as the one you have. | + | Use the examples and information [[https://stackoverflow.com/questions/31291374/varnish-backend-vcc-compiler-failed/45082602#45082602|here]] and [[https://varnish-cache.org/docs/6.5/reference/vmod_directors.html#description|here]]. Take into account the fact that the VCL version may differ from the one used by the varnish on your system, and the syntax may be need to be changed. |
| </note> | </note> | ||
| In order to verify this task, access in a browser (or wget in the CLI) 10.0.0.10, wait 2 minutes (for the Varnish cache to expire) and access it again. | In order to verify this task, access in a browser (or wget in the CLI) 10.0.0.10, wait 2 minutes (for the Varnish cache to expire) and access it again. | ||