Webový superserver z 386ek

Počet uživatelů Internetu roste každým dnem a tím, jak jistě doufáte, roste i počet čtenářů vašich stránek. Mo


Počet uživatelů Internetu roste každým dnem a tím, jak jistě doufáte, roste i
počet čtenářů vašich stránek. Možná se vám již dokonce stalo, že jich je tolik,
že váš stávající webový server nestíhá všechny požadavky vyřizovat a vy
začínáte přemýšlet o jeho výměně. Asi už pomalu prohlížíte servery různých
výrobců a vybíráte, který minimálně osmiprocesorový server bude pro vás to
pravé. Možná ale nakonec změníte po zhlédnutí ceny svůj názor a pokusíte se
hledat nějaké jiné řešení. Třeba takové, jaké nabízí zásuvný modul do Apache s
názvem mod_backhand. Ten umožňuje postavit podobně výkonný server z počítačů,
které jste již dávno odepsali.
Pomocí tohoto modulu můžete distribuovat zátěž na několik webových serverů a
pouhým přidáním dalších počítačů uspokojit rostoucí požadavky surfařů. Počítače
samozřejmě nemůžete přidávat do nekonečna, pro většinu řešení však bude
mod_backhand stačit. Jeho poměr cena/výkon budete s pomocí jiných nástrojů jen
velice těžko dosahovat. Je totiž, jako hodně dobrého softwaru, zdarma. Nahrát
si ho můžete z domovských stránek projektu na adrese http://www.backhand. org,
kde jsou v současné době dostupné verze pro Linux a Solaris. Principy
Hlavní princip celého modulu spočívá v přesměrovávání HTTP požadavků z jednoho
webového serveru na druhý. Na rozdíl od jiných systémů pro distribuci výkonu,
které pracují na úrovni TCP/IP, pracuje backhand na per-request (požadavků)
úrovni, což je výhodné zejména při použití zřetězených požadavků u protokolů
HTTP verze 1.0 a vyšší.
Výměna informací o stavu systému je pak založena na mechanismu UDP broadcastů
nebo IP multicastů.
Vlastní přesměrování pak funguje na úrovni adresářů v konfiguračním souboru
programu Apache specifikujete, který adresář je sdílen a pouze u něj pak
dochází k přesměrování požadavků mezi více webových serverů.
Kandidatura
Až dosud nepadlo ani slovo o asi nejzajímavější části celého systému, o tom, za
jakých podmínek dochází k přesměrování požadavku na jiný server. Za takové
přesměrování se totiž platí dalšími režijními náklady a musí se proto vyplatit.
Pro určení pravidel, kdy k takovému přesměrování dojde a kdy ne, slouží tzv.
candidacy funkce. V současné době existuje 5 funkcí, které pracují nad seznamem
dostupných serverů:
byAge [čas_v_sekundách] ponechá v seznamu pouze ty servery, od kterých přišla
informace o jejich stavu nejpozději před zadaným časem
byLoad ponechá pouze servery s absolutně nejnižším zatížením
byCPU vybírá servery s nejméně vytíženým procesorem
byLogWindow ponechá v seznamu pouze prvních log2 serverů (např. při 17
serverech ponechá 4)
byRandom pseudonáhodně přeorganizuje pořadí serverů
byHostname <regexp> ponechá v seznamu serverů pouze počítače, které splňují
regulérní výraz daný jako parametr, na rozdíl od předchozích funkcí se nejedná
o funkci zabudovanou, ale o uživatelem definovanou (její zdrojový kód najdete v
souboru byHostName.c a pomocí něj jako vzoru můžete pak lehce vytvářet vlastní
funkce)
Tyto funkce mohou fungovat dokonce i v kaskádě, kdy výstup jedné bude vstupem
druhé a lze tak docílit relativně složitých postupů pro výběr vhodného serveru.
To lze asi nejlépe demonstrovat na praktickém příkladu. V něm by mohla
konfigurace u adresáře vypadat nějak takto:
Backhand byAge 10
Backhand byRandom
Backhand byLogWindow
Backhand byCPU
Modul tedy v tomto případě nejprve vyloučí všechny servery o kterých slyšel
více než před 10 sekundami, tento seznam náhodně přeorganizuje, vybere z něj
první log2 počítačů a z nich pak vybere ten nejméně zatížený. Právě pomocí dvou
prostředních kritérií lze zaručit, že nebude několikrát za sebou vybrán server
s nejmenším zatížením, čímž by mohlo lehce dojít k jeho přetížení.
Budoucnost a použití
V současné době autor připravuje novou verzi systému, která přinese novou
candidacy funkci s názvem byCost pro zlepšení distribuce výkonu a měla by být
řešena problematika protokolu SSL.
Co tedy říci na závěr? Pokud vám místo 8procesorového stroje za stovky tisíc
postačí několik levných ale výkonných počítačů, propojených pomocí
mod_backhand, za pár korun se stejným výkonem, pak neváhejte. Ušetřené peníze
se určitě dají použít i jinak.
9 3683 / als









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.