Pszczoły zwiększyły wydajność serwerów
Taniec pszczół stał się inspiracją dla naukowców z Georgia Institute of Technology do... zwiększenia wydajności serwerów internetowych. Pszczoły potrafią zebrać duże ilości nektaru, mając do dyspozycji ograniczone zasoby i nie posiadając ośrodka, który organizowałby ich pracę. Stało się to przedmiotem zainteresowań informatyków.
Uczeni stwierdzili, że strategie, jakie pszczoły przyjmują radząc sobie z zarządzaniem ograniczonymi zasobami w ciągle zmieniającym się środowisku, można zastosować do serwerów pracujących w Internecie. Naukowcy dostrzegli analogię pomiędzy pszczołami a serwerami, które borykają się z podobnymi ograniczeniami, jeśli chodzi o wydajność.
Pszczoły zbierają nektar, przynoszą go do ula i powtarzają te czynności tak długo, jak w danym miejscu można znaleźć nektar. Środowisko, w którym pracują ciągle się zmienia. Poszczególne gatunki kwiatów kwitną o różnych porach i dają różne ilości nektaru. Istotne są także warunki pogodowe. Podobnie działają serwery.
Muszą odpowiedzieć na wszystkie zapytania klientów, którzy się z nimi łączą. Ich liczba zmienia się w zależności od pory dnia lub pewnych wydarzeń (np. po przeprowadzeniu przez firmę kampanii reklamowej, serwery muszą zwykle obsłużyć znacznie więcej klientów).
Pszczoły opracowały doskonały system: zbieraczka za pomocą tańca informuje inne pszczoły o lokalizacji pożytku, jego ilości i właściwościach. Wtedy do źródła leci odpowiednia liczba pszczół. Jeśli nie zbiorą wszystkiego, to po powrocie do ula nadal wykonują swój taniec. Pokazują go aż do wyczerpania zasobów nektaru, albo do czasu, gdy inny zwiadowca wróci z informacją, że znalazł jeszcze lepszy nektar gdzie indziej.
Serwery internetowe sprawdzają się w normalnych warunkach pracy. Do obsługi dużych witryn zwykle przypisanych jest wiele urządzeń. Jednak gdy nieoczekiwanie pojawi się większa liczba klientów, mogą mieć problem z ich obsłużeniem. Natomiast w przypadku niższej liczby klientów, serwery pozostają bezczynne.
Naukowcy badając pszczeli taniec, opracowali nowy system komunikacyjny dla serwerów. Gdy któryś z nich otrzymuje zapytanie od użytkownika, umieszcza w „sali tanecznej” zaproszenie do współpracy dla innych maszyn. Na zaproszenie odpowiadają serwery, które w danym momencie mają mniej pracy.
Im żądanie klienta jest bardziej skomplikowane, a korzyści osiągnięte z jego obsłużenia większe, tym dłużej ważne jest zaproszenie. A im dłużej zaproszenie jest ważne, tym więcej serwerów przyłącza się do jego obsługi.
Przeprowadzone testy wykazały, że zastosowanie „pszczelego algorytmu” zwiększyło wydajność serwerów bankowych od 4 do 25%.
Oprac. TK
źródło:
Georgia Institute of Technology
Słowniczek
Serwer - program świadczący usługi na rzecz innych programów, zazwyczaj znajdujących się na innych komputerach połączonych w sieć. Serwerem nazywa się często komputer świadczący takie usługi, sprowadzające się zazwyczaj do udostępniania pewnych zasobów innym komputerom lub pośredniczący w przekazywaniu danych między komputerami. Serwerem nazywa się też systemy oprogramowania biorące udział w udostępnianiu zasobów. Przykładami udostępnianych zasobów są pliki, bazy danych, łącza internetowe, a także urządzeń peryferyjnych jak drukarki i skanery.
Klienci - tutaj: użytkownicy Internetu.