Otestujte si výkon svého web serveru

Vlastní webový server má dnes kde kdo, at už hostuje statické html stránky, nebo složité webové aplikace. Také počet návštěvníků webových stránek roste, podle některých průzkumů stráví dnes lidé u Internetu (což je pojem, za kterým majorita jeho uživatelů vidí hlavně www stránky) více času, než ještě před několika lety u televize.

Vzhledem k rostoucí návštěvnosti je proto dnes více než v minulosti důležité dostatečně dimenzovat servery, na kterých weby běží. Dejme tomu, že dokážeme správně odhadnout počet uživatelů našich webových stránek. Jak ale zjistíme, že jsme šli s kanonem na vrabce, a že náš značkový server se dvěma procesory není po většinu času využit, nebo naopak, že postarší Pentium s 75 Mhz, co leží támhle v koutě, na hostování našeho e-shopu dnes už nestačí, ačkoli ještě nedávno se nám zdálo, že svoji práci zastane?

Web Performance Trainer

Co umí?

Web Performance Trainer je nástroj pro testování zátěže a odolnosti webových serverů podporujících statické HTML, ale také webové formuláře, J2EE, ASP, .NET, PHP, ColdFusion, Javu a další technologie. Tento software je na základě statistické analýzy různých výkonových měřítek schopen zjistit, kolik uživatelů naráz stihne váš webový server obsloužit. Sběr dat pro tuto analýzu probíhá na úrovni URL, takže je možné určit přímo úzké místo vašeho webu. Program dokáže napodobit IP spoofing, podporuje práci s klientskými certifikáty, SSL, autentizaci uživatelů i vícenásobné simultánní testy.

Instalace

Kdo by nechtěl vědět jak na tom jeho server je, nad měřením výkonnosti jsem přemýšlel již dříve, a protože tento týden vyšla nová verze WPT (2.7), rozhodl jsem se ho vyzkoušet. Na stránkách výrobce http://www.webperformanceinc.com/ je ke stažení čtrnáctidenní trial verze pro Linux, Solaris a Windows NT/2000/XP, volím linuxovou variantu a vzápětí se ke mně hrne cca 60megabytová binárka. Jedná se o aplikaci pod Xwindows, na konzoli s ní nepořídíte. Aplikace má následující hardwarové nároky: 64 MB RAM a procesor s frekvencí 400 Mhz.

V dalším kroku vyplnuji formulář na webu a záhy mám ve své poštovní schránce licenční klíč pro demo. Jakmile je binárka u mě na disku, měním její přístupová práva a spouštím:
vlad@vigvam:~/Documents> chmod u+x wptl2_7.bin
vlad@vigvam:~/Documents> ./wptl2_7.bin
Preparing to install...
Extracting the JRE from the installer archive...
Unpacking the JRE...
Extracting the installation resources from the installer archive...
Configuring the installer for this system"s environment...
Launching installer...

 

webperform_html_71c4a50c

Je zřejmé, že na vzhledu a průběhu instalace si tvůrci dali záležet. I instalační průvodce pro linuxovou verzi je postaven pomocí známého InstallAnywhere a celý instalační postup spočívá jen v několika kliknutích.

webperform_html_m56e164a3

 

Program se skládá ze dvou komponent – tzv. Controlleru, což je grafické rozhraní pro tvorbu, úpravu a spouštění testů. Druhou částí je tzv. Remote Engine, tj. něco jako generátor zátěže. WPT v plné verzi umí simulovat až 500 uživatelských seancí z jednoho počítače, lze ovšem také na více strojů nainstalovat program v režimu Remote Engine a pak testovat webové servery paralelně z více míst zároveň. WPT přitom sám rozděluje zátěž mezi jednotlivé testovací počítače, přičemž u nich měří využití procesoru a paměti. Obě komponenty mohou být nainstalovány, je však doporučeno používat jen jednu v daný okamžik – zřejmě z důvodu možného přetížení prvků, které se na testování podílí.

Instalace samotná proběhla velmi rychle – celkem mě to překvapilo, protože na disku si ukrojila cca 100 MB. Po spuštění WPT je nutné určit cestu k browseru, se kterým bude WPT spolupracovat.

Vzhled a použití

Hlavní okno programu má několik záložek – stěžejní je záložka Record, která se skládá ze 3 hlavních a dvou menších oken.

 

webperform_html_57095cd7

 

Klíčovým je okno se seznamem testovacích sekvencí. Po spuštění je okno prázdné – připravené pro vytvoření nových sekvencí. Testovací sekvence se v pojmologii WPT nazývá business case, a je to sled interakcí uživatele a webové prezentace. V nejjednodušším případě je to jednotlivé shlédnutí nějaké www stránky, ale může to být třeba kompletní transakce v e-shopu. Typickým případem je průchod hlavní stránkou webu, registrace do poštovní konference, uskutečnění nákupu online nebo hledání klíčových slov. Business case založíte jednoduše - kliknutím na zelené tlačítko začne jeho nahrávání. Spustí se prohlížeč, vy zadáváte URL a procházíte stránkami běžícími na serveru, jehož výkonnost chcete otestovat. Během záznamu se v prostředním okně zobrazují navštívené stránky, ve spodním okně se objevují URL jednotlivých objektů na stránkách a v menších oknech vpravo můžete sledovat komunikaci mezi serverem a prohlížečem a dokonce zdrojový kód stránek. Ve chvíli, kdy považujete sekvenci za dostatečnou, nahrávání ukončete kliknutím na červené tlačítko.

V záložce Profile naleznete seznam vytvořených testovacích sekvencí, které lze kombinovat do tzv. profilů. Profil je tvořen více sekvencemi, které jsou při vlastním testu prováděny simultánně. Průběh testování lze konfigurovat v záložce Playback, kde určíte, jaké sekvence nebo profily budou spuštěny, popř. dobu trvání testu.

 

 webperform_html_m3f367e76

Zajímavou částí jsou parametry týkající se počtu tzv. virtuálních uživatelů, tj. počtu seancí v rámci daného testu. Ve výchozím nastavení se počet simultánně prováděných testů postupně zvyšuje až k nastavenému maximu. Výsledky testů zobrazíte v záložkách Analysis, Statistics a Graph. Dozvíte se hodnoty zajímavých veličin, ať už se týkají doby vyřizování požadavků na server, nebo počtu uživatelů, které server stihl uspokojit v určitém časovém intervalu.

 webperform_html_2665ce0c

Pokud budete výsledky zkoumat opravdu do hloubky, zjistíte například jak rychle byly vyřízeny požadavky na jednotlivé URL, popřípadě dokonce které objekty na stránkách se natahovaly pomaleji, popřípadě nebyly nataženy vůbec.

Při experimentování na ostrých serverech hýbejte s testovacími hodnotami opatrně, abyste nezpůsobili serveru takové zatížení, že by odmítl vyřizovat reálné požadavky např. vašich klientů. Pokud chcete získat jen základní představu o tom, co váš server stihne, volte spíše nižší hodnoty a testujte kratší dobu. Pokud chcete zjistit, jak se server chová v krizových situacích, zda se jen prodlouží odezvy, popř. dokonce zda se nějaká komponenta serveru nezhroutí, můžete přitlačit.

Já jsem na konci 10minutového testu s pouhými 10 virtuálními uživateli zjistil, že 1 z našich serverů nemá takový výkon jak jsme předpokládali – doba vyřizování požadavků se prodloužila z 1-2 až na 6 sekund. Program WPT proto odhadl potenciál tohoto serveru jen na 9 souběžných uživatelů za sekundu.

Vyšší hodnoty jednotlivých parametrů mohou mít za následek také vyšší zatížení stroje, z něhož jsou testy iniciovány – dříve zmíněná minimální konfigurace zvládne prý cca 100 virtuálních uživatelů, záleží ovšem také na složitosti testovacích procedur. Zkušební verze, kterou jsem měl k dispozici je omezena na 10 virtuálních uživatelů, takže jsem nemohl provádět skutečně ostré “stress” testy a nevím tedy, zda nároky udávané výrobcem odpovídají skutečnosti.

Závěr

Program jako takový se mi líbí, instalace je triviální, vzhled je solidní, škála jeho funkcí je bohatá. Chvíli mi trvalo, než jsem proniknul do jeho ovládání, zřejmě protože se mi nechtělo číst dokumentaci na webu, která je skutečně polopatická a vysvětluje i ten nejposlednější testovací parametr i veškeré hodnoty výsledků – je zřejmé, že . Někomu může vadit, že se jedná o aplikaci výhradně pro grafické prostředí, ale s tím problém nemám. Co mě však ohromilo, je cenová politika. Základní verze programu pro 25 virtuálních uživatelů se totiž prodává za pro mě neuvěřitelných 495 USD a i částka za navýšení na více uživatelů není malá. Součástí je technická/konzultační podpora na 1 rok. Pro zajímavost, nejvýkonnější verze pro neomezený počet virtuálních uživatelů obnáší 15000 USD. Tyto částky možná odradí mnoho zájemců o program, a já se nedivím, přesto doporučuji zkušební verzi, nebot i ta vám může říct o vašich serverech více než si myslíte.

Více se dočtete na www.telnet.cz.