Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

pl:dydaktyka:sitw:2016:xen:lab3 [2016/11/29 00:08]
msl [Lekcja 4: Benchmark Professional]
pl:dydaktyka:sitw:2016:xen:lab3 [2019/06/27 15:50]
Linia 1: Linia 1:
-====== XEN: O dostępie do zasobów ====== 
  
-Celem laboratorium jest zbadanie możliwości wpływania na wydajność gości przy użyciu mechanizmów udostępnianych przez hypervisor Xen. 
- 
-===== Preliminaria ===== 
- 
-Proszę zalogować się na konto roota i wykonać następującą komendę: 
- 
-<code bash> 
-cd /​home/​student/​sitw && ./​prepare_xen_lab3.sh && reboot 
-</​code>​ 
- 
-Po ponownym uruchomieniu komputera powinien włączyć się znajomy już Xen. Powinniśmy mieć dostępne dwie maszyny gości: ''​lab2-pvm''​ oraz ''​lab2-pvhvm''​. 
- 
-**Zadanie 1:** Proszę zalogować się na obie maszyny i sprawdzić działanie połączenia internetowego (polecenie ''​ping''​). 
- 
-===== Lekcja 2: Sterowniki parawirtualne ====== 
- 
-Gość ''​lab2-pvhvm'',​ jak dobrze pamiętamy, jest gościem sprzętowym,​ czyli tzw. pełną wirtualizacją. Mamy jednak do czynienia tutaj z pewnym oszustwem --- otóż gość ten zupełnie świadom tego, że jest uruchomiony w Xenie i używa specjalnych sterowników parawirtualnych. Skąd to wiemy? Standardowe (//​vanilla//​ jądro linuksa od wersji ''​2.6.36''​ ma wbudowane sterowniki na takie okazje. ​ 
- 
-**Zadanie 2:** Proszę sprawdzić numer jądra gościa (''​man uname''​). ​ 
- 
-Ale nie musimy ufać zapewnieniom tego typu, możemy sami zobaczyć, jakie sterowniki zostały załadowane. Wystarczy zalogować się na gościa i sprawdzić, co powie polecenie ''​dmesg''​. Powinno mówić coś o urządzeniach PCI zarządzanych przez XEN. 
- 
-**Zadanie 3:** Proszę sprawdzić, czy poprzedni gość używa sterownika PV. Polecane: ''​man grep''​ i ignorowanie wielkości znaków. 
- 
-Zainstalujmy zatem trzeciego gościa, który z takich sterowników nie korzysta. Aby przyśpieszyć pracę, proszę skopiować konfigurację maszyny ''​lab2-pvhvm.cfg''​ do pliku ''​lab3-hvm.cfg''​ i dokonać trzech zmian: 
- 
-  * zmienić nazwę maszyny na ''​lab3-hvm''​ 
-  * zmienić adres ip na ''​10.0.0.4'':​ 
-    * żeby zmienić adres ip na zainstalowanym systemie należy dodatkowo: 
-      * zedytować na gościu plik: ''/​etc/​network/​interfaces''​ 
-      * uruchomić komendę: ''/​etc/​init.d/​networking restart''  ​ 
-  * zmienić ścieżki dysków twardych 
-  * wyłączamy urządzenia PCI zarządzane przez Xen. Znowu zerkamy do [[https://​xenbits.xen.org/​docs/​4.4-testing/​man/​xl.cfg.5.html|dokumentacji]]. 
- 
-Po skopiowaniu dysków twardych z poprzedniej maszyny do odpowiednich ścieżek, maszyna powinna się elegancko uruchomić. Teraz na uruchomionej maszynie zmieniamy jeszcze kilka szczegółów:​ 
-  * zmieniamy nazwę hosta: 
-    * zastępujemy starą nazwę na nową (''​lab3-hvm''​) w plikach: 
-      * ''/​etc/​network/​hostname''​ 
-      * ''/​etc/​hosts''​ 
-    * ... i zrestartować usługi internetowe:​ 
-      * dla leniwych: restart maszyny 
-      * dla pracowitych:​ 
-<code bash> 
-invoke-rc.d hostname.sh start 
-invoke-rc.d networking force-reload 
-invoke-rc.d network-manager force-reload 
-</​code>  ​ 
- 
-**Zadanie 4:** Proszę sprawdzić, czy nowy gość używa sterowników PV. 
- 
-===== Lekcja 3: Benchmark DIY ===== 
- 
-Mając trzech gości, sprawdźmy, który z nich najlepiej sobie radzi w prostych benchmarkach. Przeprowadzimy kilka prostych testów (w razie potrzeby instalować brakujące narzędzia używając ''​apt-get''​ --- ''​apt-get update''​ może okazać się konieczne): 
- 
-  * [cpu] jak szybko jesteśmy w stanie znaleźć liczby pierwsze: 
-<code bash> 
-sysbench --test=cpu --num-threads=<​liczba procesorów>​ --cpu-max-prime=<​duża liczba, np. 99999> run 
-</​code>​ 
-  * [cpu] jak szybko umiemy liczyć: 
-<code bash> 
-time $(i=0; while (( i < <duża liczba, np. 9999999> )); do (( i ++ )); done) 
-</​code>​ 
-  * [hdd] jak szybko potrafimy czytać prosto z partycji dysku: 
-<code bash> 
-cat /​dev/<​partycja roota> | pipebench -q > /dev/null 
-</​code>​ 
-  * [hdd] jak szybko potrafimy pisać do pliku: 
-<code bash> 
-dd bs=16k count=<​tyle,​ żeby plik zajął około 700MB> oflag=direct if=/​dev/​zero of=test_data 
-</​code>​ 
-  * [hdd] jak szybko potrafimy czytać z pliku: 
-<code bash> 
-dd bs=16K count=<​tyle samo, co wcześniej>​ iflag=direct if=test_data of=/​dev/​null 
-</​code>​ 
- 
-**Zadanie 5:** Czy istnieją różnice w wynikach między różnymi goścmi? 
- 
-===== Lekcja 4: Benchmark Professional ===== 
- 
-Poprzednie benchmarki badały w dość prosty sposób dostęp do niektórych zasobów. Istnieją bardziej profesjonalne narzędzia służące do bardziej ogólnego testowanie systemu jako takiego, np. [[https://​github.com/​kdlucas/​byte-unixbench|UnixBench]]. Narzędzie to bada wiele elementów systemu i zwraca nam na koniec jedną liczbę: **System Benchmarks Index Score**. ​ 
- 
-  * przed uruchomieniem ''​UnixBench''​ należy zainstalować kilka pakietów: ''​libx11-dev libgl1-mesa-dev libxext-dev perl perl-modules make''​ 
-  * uruchamiamy ''​UnixBench'':​ 
- 
-<code bash> 
-wget -O UnixBench.tar.gz http://​ai.ia.agh.edu.pl/​wiki/​_media/​pl:​dydaktyka:​sitw:​2016:​xen:​unixbench.tar.gz 
-tar xf UnixBench.tar.gz 
-cd UnixBench 
-./Run 
-</​code>​ 
-  ​ 
-  ​ 
- 
- 
-===== Lekcja 3: Rodzaj dysku twardego ===== 
- 
-Proszę zainstalować 4 gościa, takiego samego jak ''​lab2-pvm'',​ ale korzystającego z systemu plików lvm. (można po prostu użyć ''​xen-create-image''​ jak na pierwszych laboratoriach),​ o nazwie ''​lab3-pvmlvm''​. 
- 
-**Zadanie 12:** Która obu maszyn parawirtualizowanych lepiej sobie radzi w kategorii dysk twardy? ​ 
- 
-**Podpowiedź:​** W czasie instalacji maszyny można spokojnie przejść do Lekcji 4. 
- 
-===== Lekcja 4: Scheduler CPU ===== 
- 
-Xen jako nadzorca musi dbać o zapotrzebowania swoich gości, w szczególności o przydzielany im czas procesora --- podobnie jak w systemie operacyjnym czas jest przydzielany procesom. Służy do tego narzędzie zwane schedulerem. W Xenie możliwe jest tworzenie pul procesorów (ang. //cpu pool//) i do każdej puli można przyporządkować inny scheduler. Krótkie opisy dostępnych schedulerów można znaleźć na [[https://​wiki.xenproject.org/​wiki/​Xen_Project_Schedulers | wiki Xena]]. 
- 
-**Zadanie 13:** Używając komendy ''​xl''​ proszę sprawdzić jaki scheduler jest aktualnie używany w systemie. 
- 
-Proszę teraz przeanalizować wyjście komendy: 
- 
-<code bash> 
-xl help sched-credit 
-</​code>​ 
- 
-oraz [[https://​wiki.xen.org/​wiki/​Credit_Scheduler|opis schedulera o nazwie credit z wiki Xen]]. 
- 
-**Zadanie 14**: Zakładając,​ że mamy małą liczbę maszyn wirtualnych,​ wykonując ciężkie obliczenia. Czy domyślny timeslice jest w porządku? 
- 
-**Zadanie 15**: Proszę ustawić rate limiting tak, żeby odpowiadało środowisku małej liczby maszyn o dużej liczbie obliczeń do wykonania. ​ 
- 
-**Zadanie 16**: Proszę ustawić wagi schedulera tak, żeby maszyna ''​lab2-pvhvm''​ była "dwa razy" ważniejsza od innych. 
- 
-**Zadanie 17**: Proszę ustawić ograniczenia tak, żeby żadna maszyna poza ''​lab2-phvm''​ nie mogła używać naraz więcej niż 1,5 rdzenia. 
- 
-**Zadanie 18**: Proszę teraz uruchomić testy CPU na kilku maszynach równocześnie. Czy wyniki testów się zmieniły? 
- 
-**Zadanie 19**: Proszę zmienić scheduler na ''​credit2''​ 
-**Podpowiedź**:​ konfiguracja ''​gruba''​ i ''​docs/​misc/​xen-command-line.html''​ 
- 
-===== Lekcja 5: Stronicowanie pamięci ===== 
- 
-Gość, jak każdy system operacyjny, stronicuje pamięć ram. Niestety, nie możemy dać mu bezpośredniego dostępu do ramu, ponieważ mógłby wtedy ingerować w życie innych maszyn. Trzeba zatem w jakiś sposób tłumaczyć tablice pamięci gościa na prawdziwe tablice --- dla tego problemu istnieją dwa rozwiązana:​ 
- 
-    * shadowing --- tablica LUT zarządzana programowo przez Xen, tłumacząca bezpośrednio wirtualne strony pamięci na rzeczywiste. Dzięki prostocie bardzo szybko obsługuje chybienia, natomiast dużo energii trzeba w…ożyć w utrzymaniu mapy pamięci na rozsądnym poziomie 
-    * hap --- hardware assisted paging, które korzysta z bardziej złożonych struktur, ale jest implementowane sprzętowo, dzięki czemu w bardzo szybki sposób obsługiwane są aktualizacje mapy pamięci. Problemem jest stosunkowo wolna obsługa chybień. 
- 
-**Zadanie 30**: Proszę wyłączyć hap na jednej z maszyn (dokumentacja xl.cfg) i po raz pierwszy uruchomić testy RAMu z poprzedniego linka. Proszę uważać, żeby nie przedobrzyć i nie przekazać całego ramu na testy. Któa technologia lepiej sobie radzi w podanym teście. ​ 
pl/dydaktyka/sitw/2016/xen/lab3.txt · ostatnio zmienione: 2019/06/27 15:50 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0