Równoważenie obciążenia w sieci robotów internetowych. Adam Grycner, nr indeksu 209179 Łukasz Kornek, nr indeksu 209145 28 czerwca 2011



Podobne dokumenty
NS-2. Krzysztof Rusek. 26 kwietnia 2010

Dokumentacja techniczna

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Rysunek 8. Rysunek 9.

Rys. 1. Wynik działania programu ping: n = 5, adres cyfrowy. Rys. 1a. Wynik działania programu ping: l = 64 Bajty, adres mnemoniczny

Wykład 3 / Wykład 4. Na podstawie CCNA Exploration Moduł 3 streszczenie Dr inż. Robert Banasiak

STATYSTYKA MATEMATYCZNA WYKŁAD 4. WERYFIKACJA HIPOTEZ PARAMETRYCZNYCH X - cecha populacji, θ parametr rozkładu cechy X.

Sprawa numer: BAK.WZP Warszawa, dnia 16 sierpnia 2016 r.

Skrypt 29. Statystyka. Opracowanie L2

Konfiguracja podglądu obrazu z kamery IP / rejestratora BCS przez sieć LAN.

Lista najczęściej pojawiających się problemów

Laboratorium 3.4.3: Usługi i protokoły

TCP/IP. Warstwa aplikacji. mgr inż. Krzysztof Szałajko

7. zainstalowane oprogramowanie zarządzane stacje robocze

Co nowego w systemie Kancelaris 4.11 STD/4.21 PLUS. Co nowego w systemie Kancelaris 4.12 STD/4.22 PLUS

INSTRUKCJA OBSŁUGI PLATFORMY E-LEARNINGOWEJ WYŻSZEJ SZKOŁY LOGISTYKI W POZNANIU WERSJA DLA STUDENTÓW

Procedura zgłaszania problemów z obsługą oraz nieprawidłowości w funkcjonowaniu systemu PEFS 2007 w zakresie Programu Operacyjnego Kapitał Ludzki

Praca dyplomowa. Program do monitorowania i diagnostyki działania sieci CAN. Temat pracy: Temat Gdańsk Autor: Łukasz Olejarz

Podstawowe protokoły transportowe stosowane w sieciach IP cz.2

Windows Defender Centrum akcji

SIECI KOMPUTEROWE Adresowanie IP

Windows Serwer 2008 R2. Moduł 5. Zarządzanie plikami

Załącznik produktowy nr 6 do Umowy Ramowej - Usługa Dostępu do Sieci Internet

SYSTEMY OPERACYJNE LABORATORIUM 2014/2015

Uniwersytet Mikołaja Kopernika w Toruniu. Profilowanie ruchu sieciowego w systemie GNU/Linux

Wstęp. Skąd pobrać program do obsługi FTP? Logowanie

Acronis Backup & Recovery 10 Server for Windows, Acronis Backup & Recovery 10 Workstation. Instrukcja szybkiego rozpoczęcia pracy

SPIS TREŚCI Błąd! Nie zdefiniowano zakładki.

Na chwilę obecną biblioteka ElzabObsluga.dll współpracuje tylko ze sprawdzarkami RSowymi.

Komunikatory typu TCP/IP lab2. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

BACKUP BAZ DANYCH FIREBIRD

Instytut Fizyki Politechniki Łódzkiej Laboratorium Metod Analizy Danych Doświadczalnych Ćwiczenie 3 Generator liczb losowych o rozkładzie Rayleigha.

Wyciąg z ogólnej analizy ataków na witryny administracji państwowej RP w okresie stycznia 2012r.

Opis przykładowego programu realizującego komunikację z systemem epuap wykorzystując interfejs komunikacyjny "doręczyciel"

System operacyjny Linux

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików warstwa fizyczna

Tworzenie i obsługa wirtualnego laboratorium komputerowego

Dokumentacja Końcowa

Publiczna Szkoła Podstawowa nr 14 w Opolu. Edukacyjna Wartość Dodana

POŁĄCZENIE STEROWNIKÓW ASTRAADA ONE MIĘDZY SOBĄ Z WYKORZYSTANIEM PROTOKOŁU UDP. Sterowniki Astraada One wymieniają między sobą dane po UDP

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Jest to program stworzony z myślą o nauczycielach, wykładowcach, trenerach i prezenterach.

LABORATORIUM 3. Jeśli p α, to hipotezę zerową odrzucamy Jeśli p > α, to nie mamy podstaw do odrzucenia hipotezy zerowej

Współpraca z platformą Emp@tia. dokumentacja techniczna

Konfiguracja vsftpd ( Very Secure FTP Server )

Zadania laboratoryjne i projektowe - wersja β

Zespół Szkół Technicznych w Suwałkach. Pracownia Systemów Komputerowych. Ćwiczenie Nr 25 ARCHITEKTURA SYSTEMU LINUX. Opracował Sławomir Zieliński

OBSŁUGA I KONFIGURACJA SIECI W WINDOWS

Zasady dotyczące plików cookies i innych podobnych technologii. 1. Jaki jest zakres tych Zasad?

MS Windows Vista. Spis treści. Autor: Jacek Parzonka, InsERT

Lokalna kopia bioinformatycznego serwera obliczeniowego jako wysokowydajne środowisko obliczeniowe

liczba punktów Wykres 1. Rozkład wyników części I etapu pisemnego dla zawodu technik mechatronik w skali kraju

Sprawozdanie. (notatki) Sieci komputerowe i bazy danych. Laboratorium nr.3 Temat: Zastosowanie protokołów przesyłania plików

Testowanie modeli predykcyjnych

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Skanowanie podsieci oraz wykrywanie terminali ABA-X3

SIECI KOMPUTEROWE I TECHNOLOGIE INTERNETOWE

Sieci Komputerowe 2 / Ćwiczenia 2

Sieci komputerowe i bazy danych

Pobieranie prób i rozkład z próby

Konfiguracja IPSec Brama IPSec w Windows 2003 Server

Dodatek efaktura invooclip Użytkowanie Soneta Sp. z o.o.

Wstawianie filmu i odtwarzanie go automatycznie

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

Instrukcja konfiguracji programu Microsoft Outlook do współpracy z serwerami hostingowymi obsługiwanymi przez Ideo

Lab 9 Podstawy Programowania

TESTOWANIE HIPOTEZ Przez hipotezę statystyczną rozumiemy, najogólniej mówiąc, pewną wypowiedź na temat rozkładu interesującej nas cechy.

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat protokołu ftp.

Laboratorium - Obserwacja procesu tłumaczenia nazw DNS

Konkursy w województwie podkarpackim w roku szkolnym 2013/2014

Panel dla agentów. Instrukcja obsługi dla agentów

Informatyka dla szkoły podstawowej Klasy IV-VI Grażyna Koba

Wykrywanie twarzy ludzkich na kolorowych obrazach ze złożonym tłem

Praktyczne wykorzystanie arkusza kalkulacyjnego w pracy nauczyciela część 1

E-DEKLARACJE Dokumentacja eksploatacyjna 2017

Wprowadzenie do analizy dyskryminacyjnej

Sieci Komputerowe Modele warstwowe sieci

a) 7 b) 19 c) 21 d) 34

Wykaz zmian w programie WinAdmin Replikator

Dokumentacja końcowa projektu z ZPR

Stan globalny. Krzysztof Banaś Systemy rozproszone 1

Analiza antyplagiatowa prac dyplomowych w Uniwersyteciee Zielonogórskim w modułach StudNet, PracNet systemu Dziekanat oraz w systemie OSA.

Dokumentacja programu. Instrukcja użytkownika modułu Gabinet Zabiegowy. Zielona Góra

SklepEF5 moduł sklepu i zamówień internetowych do programu EuroFirma i Hermes firmy Humansoft

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

CENTRALNA BIBLIOTEKA STATYSTYCZNA PRZEWODNIK PO KATALOGU KOMPUTEROWYM SYSTEM ALEPH WERSJA 22

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku

Teraz bajty. Informatyka dla szkoły podstawowej. Klasa VI

I.1.1. Technik elektronik 311[07]

TESTOWANIE HIPOTEZ STATYSTYCZNYCH Hipotezą statystyczną nazywamy, najogólniej mówiąc, pewną wypowiedź na temat rozkładu interesującej nas cechy.

Platforma e-learningowa

ECDL ZARZĄDZANIE PROJEKTAMI

IBM SPSS Modeler Social Network Analysis 16 podręcznik instalowania i konfigurowania

REFERAT PRACY DYPLOMOWEJ

Otwórz R. Zmień katalog roboczy za pomocą File/Change Dir. Wczytaj plik przypisując go obiektowi o nazwie students:

Transkrypt:

Równoważenie obciążenia w sieci robotów internetowych Adam Grycner, nr indeksu 209179 Łukasz Kornek, nr indeksu 209145 28 czerwca 2011

SPIS TREŚCI SPIS TREŚCI Spis treści 1 Opis problemu 2 1.1 Obliczanie obciążenia......................... 2 2 Rozdzielanie zadań 2 2.1 Consistent hashing.......................... 2 3 Zastosowane metody równoważenia obciążenia (ang. load balancing) 2 3.1 Sender initiated load balancing................... 2 3.2 Random load balancing....................... 3 3.3 Centralized load balancing...................... 3 4 Testy 3 4.1 Sender initiated load balancing................... 3 4.2 Random load balancing....................... 4 4.3 Centralized load balancing...................... 5 4.4 Consistent hashing.......................... 5 5 Wnioski 6 6 Obsługa programu 7 6.1 Wymagania.............................. 7 6.2 Uruchamianie agentów........................ 7 6.2.1 Uruchomienie platformy................... 7 6.2.2 Uruchomienie agenta-robota................. 7 6.2.3 Uruchomienie agenta-statystyka............... 7 1

3 ZASTOSOWANE METODY RÓWNOWAŻENIA OBCIĄŻENIA (ANG. LOAD BALANCING) 1 Opis problemu Należy zarządzać siecią agentowych robotów internetowych (ang. web crawlers), tak aby: agenci nie odwiedzali tych samych stron wielokrotnie, agenci dzielili się pracą, było możliwe dodawanie i usuwanie agentów z sieci w czasie pracy. 1.1 Obliczanie obciążenia Aby dobrze opisać, jak agenci powinni dzielić się pracą, należy zdecydować się na sposób obliczania obciążenia agenta. Zastosowany sposób: L a = qsize(a)/avg upt(a) gdzie: L a - obciążenie agenta a, qsize(a) - rozmiar kolejki adresów stron do odwiedzenia przez agenta a, avg upt(a) - średnia liczba stron odwiedzanych przez agenta a w określonym czasie. 2 Rozdzielanie zadań 2.1 Consistent hashing Każdy agent posiada strukturę, która informuje go komu należy przydzielić dane zadanie. O strukturze możemy myśleć, jako o okręgu, na który będziemy mapować hasze agentów oraz hasze adresów url. Każdy agent, ma przydzielone kilka punktów na okręgu. Strona o haszu h jest przydzielana agentowi o najmniejszym haszu większym niż h. Graficzną prezentację metody widać na rysunku 1. Dzięki consistent hashing gwarantowaliśmy sobie, że agenci nie będą wykonywać nadmiarowej pracy. Każdy adres url jest przydzielony dokładnie jednemu agentowi i to on decyduje, czy zlecić komuś wykonanie zadania (pobranie zawartości adresu url). 3 Zastosowane metody równoważenia obciążenia (ang. load balancing) W programie zastosowane zostały następujące metody równoważenia obciążenia: 3.1 Sender initiated load balancing Agent pyta innych agentów o ich obciążenie. Jeśli jest przeciążony (istnieje agent, który jest mniej obciążony), wysyła do najmniej obciążonego agenta taką liczbę adresów, by ich obciążenie było równe. 2

3.2 Random load balancing 4 TESTY Rysunek 1: Consistent hashing 3.2 Random load balancing Agent pyta losowego agenta o jego obciążenie. Bardziej obciążony z nich wysyła mniej obciążonemu taką liczbę adresów, by ich obciążenie było równe. 3.3 Centralized load balancing Wybrany w sposób zdecentralizowany agent pyta innych agentów o ich obciążenie. Następnie wydaje agentom polecenia przesyłu pewnej liczby adresów innym agentom. 4 Testy W naszych testach porównaliśmy trzy metody równoważenia obciążenia (sender initiated load balancing, random load balancing, centralized load balancing). Poza tym każdy agent stosował consistent hashing do ustalania, czy dany adres url został już sprawdzony. Dodatkowo sprawdziliśmy, jak równoważą obciążenie agenci używający tylko consistent hashing. Na rysunkach mamy przedstawione wykresy obciążenia czterech agentów na przestrzeni godziny. 4.1 Sender initiated load balancing Średnie odchylenie standardowe: 352 Średnia różnica między największym a najmniejszym obciążeniem: 888 Liczba wysłanych wiadomości: 6960 Liczba odebranych wiadomości: 9871 3

4.2 Random load balancing 4 TESTY Rysunek 2: Wykres obciążenia na przestrzeni godziny przy sender initiated load balancing Rysunek 3: Wykres obciążenia na przestrzeni godziny przy random load balancing 4.2 Random load balancing Średnie odchylenie standardowe: 269 Średnia różnica między największym a najmniejszym obciążeniem: 679 Liczba wysłanych wiadomości: 3539 Liczba odebranych wiadomości: 3495 4

4.3 Centralized load balancing 4 TESTY Rysunek 4: Wykres obciążenia na przestrzeni godziny przy centralized load balancing 4.3 Centralized load balancing Średnie odchylenie standardowe: 472 Średnia różnica między największym a najmniejszym obciążeniem: 1206 Liczba wysłanych wiadomości: 3006 Liczba odebranych wiadomości: 3756 4.4 Consistent hashing Rysunek 5: Wykres obciążenia na przestrzeni godziny przy consistent hashing 5

5 WNIOSKI Średnie odchylenie standardowe: 2106 Średnia różnica między największym a najmniejszym obciążeniem: 5377 Jak widać samo consistent hashing nie równoważy dobrze obciążenia. Ponieważ jednak działanie consistent hashing nie zależy od obciążenia agenta, na drugim wykresie przedstawiamy zmianę wielkości kolejki agentów w czasie. Innymi słowy, jest to wykres działania agentów przy założeniu, że przeglądają adresy z taką samą szybkością. Rysunek 6: Wykres wielkości kolejki na przestrzeni godziny przy consistent hashing 5 Wnioski Zastosowanie consistent hashing zapewnia, że adresy url będą sprawdzane tylko raz. Consistent hashing dość dobrze rozdziela adresy pomiędzy agentów o równej przepustowości łącza. Można dostosować je też do agentów, którzy mają różną przepustowość łącza, odpowiednio ustalając ilość punktów przyporządkowanych agentom. Ma jednak poważne ograniczenia. Jest to bardzo sztywne rozwiązanie - jeśli w trakcie działania agenta zostanie ograniczona jego przepustowość, consistent hashing nie zrobi nic, by przenieść część jego pracy na innych agentów (rysunek 5). Ponadto równomierne rozdzielanie adresów zależy od dobrego wylosowania punktów agentów na okręgu, co nie zawsze się uda. Dlatego konieczne jest użycie dodatkowej metody równoważenia obciążenia. Dla niewielkiej liczby agentów najlepszym rozwiązaniem wydaje się random load balancing, które w testach uzyskało najmniejsze różnice w obciążeniu. Jednak wraz ze wzrostem liczby agentów prawdopodobnie inne metody będą działały lepiej niż random load balancing, ponieważ kontaktują się w większą liczbą agentów w celu równoważenia obciążenia. Z pozostałych dwóch przetestowanych metod sender initiated load balancing daje mniejsze różnice w obciążeniu agentów, ale wymienia o wiele więcej komunikatów między agentami niż centralized load balancing. Wadą Centralized load 6

6 OBSŁUGA PROGRAMU balancing jest centralizacja procesu wymiany adresów, co może prowadzić do przeciążenia centralnego agenta. 6 Obsługa programu 6.1 Wymagania Python 2.6.x (http://python.org/) biblioteka spade (http://code.google.com/p/spade2/) biblioteka BeautifulSoup (http://www.crummy.com/software/beautifulsoup/) Instalacja bibliotek Pythona: python setup.py install 6.2 Uruchamianie agentów 6.2.1 Uruchomienie platformy 1. spade/configure.py server_ip 2. spade/runspade.py gdzie: server ip - adres IP platformy spade 6.2.2 Uruchomienie agenta-robota sia-crawling/main.py agent_name server_ip LB_type [number_of_threads=1 seed_urls_file=none] gdzie: agent name - nazwa agenta server ip - adres IP platformy spade LB type - rodzaj równoważenia obciążenia: 1 - sender initiated LB 2 - random LB 3 - centralized LB 4 - tylko consistent hashing number of threads - ilość wątków przeglądających strony seed urls file - plik z początkowym zbiorem adresów1 6.2.3 Uruchomienie agenta-statystyka sia-crawling/statisticsagent.py agent_name server_ip gdzie: agent name - nazwa agenta server ip - adres IP platformy spade 7