}w !"#$%&'()+,-./012345
M ASARYKOVA UNIVERZITA FAKULTA INFORMATIKY
Webové rozhraní pro statistiky využití MetaCentra ˇ B AKALÁ RSKÁ PRÁCE
Vlasta Žáková
Brno, podzim 2010 login: xzakova2 ˇ 256169 UCO:
Prohlášení Prohlašuji, že tato bakaláˇrská práce je mým puvodním ˚ autorským dílem, které jsem vypracovala samostatnˇe. Všechny zdroje, prameny a literaturu, které jsem pˇri vypracování používala nebo z nich cˇ erpala, v práci rˇ ádnˇe cituji s uvedením úplného odkazu na pˇríslušný zdroj.
Vedoucí práce: Mgr. Miroslav Ruda ii
Klíˇcová slova MetaCentrum, Jpgraph, grafy, PHP, PBS, SQL
iii
Obsah 1 2
Úvod . . . . . . . . . . . . . . . . . . . . . . . . . . . Správa úloh v MetaCentru . . . . . . . . . . . . . . 2.1 PBS . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 SQL . . . . . . . . . . . . . . . . . . . . . . . . . 3 Porovnání možností vykreslení grafu˚ . . . . . . . . 3.1 Hotové programy . . . . . . . . . . . . . . . . . 3.1.1 Gnuplot . . . . . . . . . . . . . . . . . . 3.1.2 R . . . . . . . . . . . . . . . . . . . . . . 3.1.3 Matlab, Maple, Statistica . . . . . . . . . 3.2 Rozšíˇrení programovacích jazyku˚ . . . . . . . . 3.2.1 Highcharts . . . . . . . . . . . . . . . . . 3.2.2 DBD::Chart . . . . . . . . . . . . . . . . 3.3 Nástroje PBSPro . . . . . . . . . . . . . . . . . . 3.3.1 PBS Analytics . . . . . . . . . . . . . . . 3.4 Adobe Flash . . . . . . . . . . . . . . . . . . . . 3.4.1 FusionCharts . . . . . . . . . . . . . . . 3.4.2 Jpgraph . . . . . . . . . . . . . . . . . . 3.5 Výsledek porovnání a dále použité technologie 4 Struktura systému . . . . . . . . . . . . . . . . . . . 5 Uživatelské rozhraní . . . . . . . . . . . . . . . . . . 6 Využití nástroje . . . . . . . . . . . . . . . . . . . . . 6.1 Ilustrace využití front . . . . . . . . . . . . . . . 6.2 Ilustrace vytížení stroju˚ . . . . . . . . . . . . . . 6.3 Statistiky organizací a skupin . . . . . . . . . . 7 Další vývoj . . . . . . . . . . . . . . . . . . . . . . . 8 Závˇer . . . . . . . . . . . . . . . . . . . . . . . . . . . Literatura . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
2 4 4 6 8 9 9 9 10 10 11 11 13 13 13 13 13 14 16 18 21 23 23 27 28 29 30
1
Kapitola 1
Úvod Cílem práce bylo vymyslet a realizovat zpusob, ˚ jak zpracovat data o využití MetaCentra ve vizuálnˇe snadno uchopitelné formˇe pˇrehledných grafu. ˚ Tyto grafy by mˇely být získány a následnˇe využity za nˇekolika úˇcely: •
Pro sledování bˇehu MetaCentra. Zamˇestnanci uživatelské podpory budou moci sledovat vytížení stroju, ˚ poˇcty propoˇcítaných úloh a množství propoˇcítaného cˇ asu ve výpoˇcetních frontách atd. To jim umožní lépe identifikovat problémy (v pˇrípadˇe, že naleznou odchylku od normálního stavu) a reagovat na nˇe. Po zmˇenˇe systému je žádoucí sledovat grafy hodnot, kterých se zmˇena dotkla, zda vykazují návrat k normálu. V opaˇcném pˇrípadˇe je nutné systém upravit jiným zpusobem. ˚ Také jim umožní sledovat dlouhodobý vývoj hodnot, které jsou pro MetaCentrum duležité ˚ – jako je vytížení stroju, ˚ poˇcty spuštˇených úloh, celkový propoˇcítaný cˇ as a další.
•
Pro správce organizace nebo výpoˇcetní skupiny, aby bylo možné si pro každou organizaci/skupinu vygenerovat data o využití zdroju. ˚ Také pro jednotlivého uživatele, kterého zajímá, jak moc MetaCentrum využívá.
•
Pro ilustraci bˇehu MetaCentra v závˇereˇcných zprávách, roˇcenkách a prezentacích.
Z výše uvedených požadavku˚ plyne, že grafy musí být pˇrehledné a použitelné jak v elektronické, tak tištˇené formˇe. Cílem práce je tedy rozhraní, kde si uživatel zadá svuj ˚ dotaz, muže ˚ si vybrat zda dotaz bude jen pro jeden stroj, nˇekolik stroju. ˚ Zda dotaz bude pouze pro skupinu cˇ i organizaci nebo pro celé MetaCentrum. Muže ˚ si vybrat cˇ asové rozmezí, které bude graf zobrazovat. Aplikace také musí být snadno rozšiˇritelná – mˇelo by být možné lehce doplnit nový druh cˇ i nový tvar grafu, pokud to bude potˇreba. Práce staví na podrobné databázi spuštˇených úloh MetaCentra a zobrazuje data dostupná v této databázi. 2
1. Ú VOD Puvodní ˚ stav byl takový, že grafy byly každý pulrok ˚ vykreslovány ruˇcnˇe. 1 Z databáze se provedl výtah dat pomocí SQL dotazu˚ do textových souboru. ˚ Z údaju˚ obsazených v textových souborech se pak zpracovaly v MS Excel 2 grafy, ktere byly ve formátu pdf použity v závˇereˇcné zprávˇe. Tato celá akce pokaždé zabrala více než dva pracovní dny dvou zamˇestnancu, ˚ a proto se realizovala pouze pˇri závˇereˇcných zprávách. Cílem bakaláˇrské práce bylo tuto cˇ innost automatizovat. Díky tomu bude možné sledovat grafy prubˇ ˚ ežnˇe, což napomuže ˚ lepšímu monitorování bˇehu MetaCentra. V první kapitole popisuji celkový kontext aplikace. V další porovnávám možné zpusoby ˚ realizace aplikace a výsledek tohoto porovnání. V kapitole tˇri popisuji strukturu aplikace. V následující kapitole ukazuji využití aplikace. V posledních dvou kapitolách je uveden další vývoj a závˇer. Na konci pˇripojuji v pˇríloze jednoduchý pˇríklad použitých modulu. ˚
1. 2.
SQL, http://cs.wikipedia.org/wiki/SQL MS Excel, http://office.microsoft.com/en-gb/excel/
3
Kapitola 2
Správa úloh v MetaCentru MetaCentrum [5] je organizace, jejímž úˇcelem je provoz a koordinace výpoˇcetní ˇ sítˇe a dalších zaˇrízení jako jsou napˇríklad datová úložištˇe v Ceské republice. MetaCentrum spravuje momentálnˇe více než 1200 CPU rozdˇelených do mnoha fyzických stroju˚ zaˇrazených do více než 15 clusteru˚ 1 , celková disková kapacita je pˇres 100 TB. Vˇetšina stroju˚ je virtualizovaných, takže na jednom fyzickém stroji bˇeží více stroju˚ virtuálních. Tyto zdroje aktivnˇe využívá více než 300 uživatelu˚ – pˇrevážnˇe vˇededkých pracovníku˚ a studentu, ˚ kteˇrí pomocí zdroju˚ MetaCentra provádí svoji výzkumnou cˇ innost. Tito uživatelé se dále dˇelí podle organizací a pˇrípadnˇe podle výpoˇcetních skupin, ve kterých navzájem spolupracují. Všechny výpoˇcetní jednotky je potˇreba spravovat tak, aby všechny fungovaly správnˇe a úlohy na nich byly distribuováný rovnomˇernˇe. O to se v MetaCentru stará dávkový systém PBS.
2.1
PBS
PBS[6] je systém, který spravuje spouštˇení úloh v MetaCentru. Rozhoduje, na kterých strojích bude úloha spuštˇena. Aby rozložení úloh po clusteru bylo co nejefektivnˇejší, využívá k tomu plánovaˇc úloh. Uživatelé v MetaCentru nespouští své výpoˇcetní úlohy na stroji pˇrímo, ale vloží do systému PBS skript, který se spustí na stroji, který jim PBS pˇridˇelí. Tento skript je vložen do PBS pˇríkazem qsub2 . Tomuto pˇríkazu zadají parametry, které vyjadˇrují uživatelovy požadavky ohlednˇe vlastností stroje, který mu PBS pˇridˇelí. Urˇcit vlastnosti stroje je velmi duležité, ˚ protože uživatelova aplikace muže ˚ využívat specifickou architekturu/velké množství pamˇeti/velký poˇcet CPU, kterou má pouze jeden cluster. Pomocí fronty, do které uživatel úlohu vloží, vyjádˇrí oˇcekávanou dobu trvání úlohy. MetaCentrum má tˇri fronty: short pro úlohu do dvou hodin, normal pro úlohu do 24 hodin a long pro úlohu do 30 dní. Další fronty, které MetaCentrum obsahuje jsou napˇríklad prioritní 1. Výpoˇcetní cluster, http://en.wikipedia.org/wiki/Computer_cluster 2. Pˇríkaz qsub, http://doesciencegrid.org/public/pbs/qsub.html
4
2. S PRÁVA ÚLOH V M ETA C ENTRU
ˇ Obrázek 2.1: Cást schematu databáze[1] fronta pro vlastníky clusteru, ˚ speciální fronta pro interaktivní používání pˇridˇeleného stroje atd. PBS všechny zahrnuté nároky zohlední a podle svého vnitˇrního algoritmu vybere stroj, který vyhovuje uživatelovým požadavkum ˚ a je volný. Pokud žádný takový není volný, uživatelova úloha se zaˇradí mezi úlohy cˇ ekající na spuštˇení a poˇcká, dokud se nˇejaký stroj neuvolní. V pˇrípadˇe, že se stroj uvolnil a plánovaˇc v PBS vyhodnotí, že úloha je na rˇ adˇe, spustí ji na pˇridˇeleném stroji. System PBS samozˇrejmˇe loguje (kromˇe jiného) každé spuštˇení úlohy, zmˇenu jejího stavu (zaˇrazení do fronty, spuštˇení, pozastavení, ukonˇcení) a všechny parametry zadané uživatelem. Tento log se ukládá na PBS serveru. MetaCentrum provozuje hned dva PBS servery, takže je nutné vyhodnocovat oba logy.[1] Dále se zpracovává další log – tentokrát z kernelu˚ výpoˇcetních uzlu. ˚ Tento log obsahuje informace o spuštˇeném programu na uzlu, UID uživatele, cˇ asu bˇehu procesu atd. Všechny logy (jak z obou PBS serveru, ˚ tak i z jednotlivých uzlu) ˚ se odesílají na samostatný server, kde probíhá jejich zpracování. Dále se pak údaje, které vznikly zpracováním, vloží do relaˇcní databáze umístˇené na tomto serveru. Struktura databáze je pomˇernˇe složitá, protože je potˇreba zachytit všechny údaje a správnˇe je zapsat tak, aby byly pozdˇeji dobˇre interpretovatelné. Níže je popsán struˇcný seznam tabulek: (vychází z obrázku 2.1) 5
2. S PRÁVA ÚLOH V M ETA C ENTRU •
acct_pbs_record – data o ukonˇcené úloze: kdy byla úloha spuštˇena, kdy úloha skonˇcila, kdy byla úloha vytvoˇrena, v jaké frontˇe bˇežela, kolik požadovala pamˇeti, kolik spotˇrebovala pamˇeti, kolik požadovala a spotˇrebovala stroju, ˚ jader...
•
acct_user – údaje o uživateli, jeho organizace nebo výpoˇcetní skupina
•
acc_host_log – tabulka pˇriˇrazuje úlohám stroje, kde probˇehly – takových stroju˚ muže ˚ být nˇekolik, úloha muže ˚ používat ruzný ˚ poˇcet jader na stroji.
•
acct_kernel_record – údaje o procesech – pˇrehled procesu, ˚ které bˇežely na strojích.
•
acct_host – stroje a poˇcty jejich procesoru˚ [1]
Stroje mohou být také pouze fyzické nebo virtualizované. V pˇrípadˇe, že jsou virtualizované, je možné, že na jednom fyzickém stroji bˇeží více virtuálních, což je potˇreba taktéž zohlednit. Dalším zdrojem informací v databázi je systém Perun3 , který spravuje úˇcty na clusterech po celém MetaCentru, zárovenˇ také obsahuje pˇriˇrazení jednotlivých stroju˚ na clustery. Takže dalším prvkem databáze je sada tabulek, které obsahují toto pˇriˇrazení, spoleˇcnˇe s tím, kdy mˇel který fyzický stroj CPU, kdy byl který stroj vyhrazený (napˇr: jako cˇ elní uzel clusteru).[2] Další tabulkou, která se využívá pˇri výpoˇctu statistik je tabulka workload. Ta vzniká po spuštˇení algoritmu, který pro každý den a každý cluster spoˇcítá jeho celkový cpu time4 pro daný den (tj: hodnota využitelných sekund) a hodnotu využití (což je souˇcet cˇ asu, kdy na stroji byly alokovány úlohy a cˇ asu, kdy byly stroje rezerovány), dále pak se do tabulky zapisuje samotný propoˇcítaný cˇ as za daný den, doba rezervace a doba výpadku a jejich pomˇer vuˇ ˚ ci celkovému cputime.[2] Z této tabulky se získávájí za každý den údaje o vytížení stroju. ˚ Poslední cˇ ástí je pˇriˇrazení virtuálních stroju˚ na fyzické. Toto pˇriˇrazení se dˇelá ruˇcním zadáváním dat do databáze.
2.2
SQL
V této databázi se pomocí SQL 5 dotazu˚ získávají potˇrebné údaje (napˇríklad poˇcet uživatelu˚ systému, poˇcet úloh spuštˇených na jednotlivých clusterech...), které se dále zpracovají do grafu. ˚ Tyto dotazy se mohou rozdˇelit na nˇekolik skupin: 3. 4. 5.
Perun, http://www.metacentrum.cz/cs/about/devel/perun.html CPU time, http://en.wikipedia.org/wiki/CPU_time SQL, http://www.sql.org/
6
2. S PRÁVA ÚLOH V M ETA C ENTRU •
Dotazy, které se používají k ilustraci fungování MetaCentra (využití stroju, ˚ poˇcet spuštˇených úloh, velikost propoˇcítaného cˇ asu uživateli ve frontách).
•
Dotazy, které jsou vhodné pro uživatelskou podporu, k jejich sledování a úpravˇe MetaCentra podle zjištˇeních dat (doba cˇ ekání na spuštˇení úlohy ve frontˇe, poˇcet úloh, které skonˇcí do urˇcitého cˇ asového okamžiku).
•
Dotazy, které popisují využití MetaCentra jen jednou výpoˇcetní skupinou/institucí. Je tedy možné vygenerovat souhrnné statistiky jedné skupiny, která je pak muže ˚ využít ke zhodnocení svého pusobení ˚ v MetaCentru.
Pˇri navrhování dotazu˚ jsem vyšla ze starších dotazu, ˚ použitých ve statistikách z minulých let popsaných na MetaWiki [2], ty jsem rozšíˇrila a upravila tak, že zjišt’ují informace o skupinach, vykreslují grafy pouze pro cˇ leny organizace/skupiny atd.
7
Kapitola 3
Porovnání možností vykreslení grafu˚ Pˇri výbˇeru technologii, které budou použity, bylo nutné uvážit úˇcel aplikace. Aplikace musí být spojena s databází údaju, ˚ musí podporovat online zadání a vykreslení grafu˚ a také musí být lehce pˇrístupná všem uživatelum. ˚ Aplikace je tedy navržena jako webová, protože jako desktopová by mˇela mnoho nevýhod, jako je napˇríklad nutnost instalace programu. Pˇri každé zmˇenˇe programu je potˇreba stáhnout a nainstalovat update. Pro generování grafu˚ je v každém pˇrípadˇe potˇreba online pˇrístup, protože samotná databáze se každý den mˇení (jak pˇribývají nové úlohy a konˇcí staré). Zvyšuje se také vytížení sítˇe, protože je nutné data z databáze pˇresouvat do poˇcítaˇce. Navíc další nevýhodou desktopové aplikace je nutnost vyˇrešit autentizaci uživatelu˚ pˇri pˇrístupu k databázi. Poté, co bylo rozhodnuto, že aplikace bude webová, bylo potˇreba vybrat vhodný nástroj pro vizualizaci dat do grafu. ˚ Podle vybraného nástroje se pak odvíjí napsání funkcí, které data zpracují a pˇredají vizualizaˇcnímu modulu. Jednou z možností je naprogramovat vlastní aplikaci, která bude vykreslovat grafy. Tuto možnost jsem zavrhla, protože existuje mnoho funkˇcních hotových rˇ ešení. Podle následujících kriterií byl vybrán ideální nástroj. Kriteria vychází ze zadání bakaláˇrské práce a dalších potˇreb vzniklých pˇri návrhu aplikace. Metodika: •
Zamˇerˇ ení aplikace
•
Jednoduchost implementace
•
Vzhled grafu˚
•
Licence
•
Tvary vykreslovaných grafu˚ Ideální nástroj by mˇel splnovat ˇ následující:
•
Nástroj nesmí být pˇríliš masivní, musí být primárnˇe urˇcen k vykreslení grafu, ˚ žádná další funkcionalita není tˇreba. 8
3. P OROVNÁNÍ MOŽNOSTÍ VYKRESLENÍ GRAF U˚ •
Nástroj se musí snadno instalovat a používat.
•
Vzhled grafu˚ by mˇel být co "nejpohlednˇejší"
•
Licence musí být bud’ pro nekomerˇcní použítí zdarma, nebo open source.
•
Základní typy grafu˚ – koláˇcový, sloupcový, plošný, spojnicový atd.
3.1
Hotové programy
Pˇred samotným použitím tˇechto programu˚ by bylo nutné nˇejakým zpusobem ˚ pˇredzpracovat data, takže by bylo nutné vybudovat "mezivrstvu" mezi databází a programem. Samozˇrejmostí je, že by daný program musel být na serveru nainstalován. 3.1.1 Gnuplot Gnuplot 1 je aplikace sloužící k vykreslování 2D a 3D statistických dat a je primárnˇe zamˇerˇ en na matematické kˇrivky (sin,cos,tan) Dále také umí vizualizovat zadaná data. K tomu je potˇreba zadat datový soubor s pˇredzpracovanými údaji, které vykreslí do grafu. Datový soubor má podobu obyˇcejného textového soubory s dvˇema sloupci dat, které jsou oddˇeleny tabulátorem nebo mezerou. V samotném gnuplotovém skriptu se pak tento datový soubor naˇcte a pomocí pˇríkazu˚ se specifikují osy grafu, velikost grafu, poˇcátek grafu, nadpis a další souˇcásti grafu. Je dostupný pro širokou rˇ ádku platforem – primárnˇe pro Linux, ale dostupné jsou i zdrojové kódy pro MS Windows. Celý program se ovládá z konzolového rozhraní. Jeho zdrojový kód je volnˇe šiˇritelný a za jeho použití se neplatí. Je to dlouhodobˇe vyvíjený nástroj, s rozsáhlou dokumentací a mnoha návody, jak program využívat. Je schopen vykreslit mnoho typu˚ grafu. ˚ 3.1.2 R R 2 je rozhraní a programovací jazyk urˇcený pro statistické výpoˇcty a vykreslení statistických dat. Data vizualizuje tak, že skript napsaný v R naˇcte soubor s pˇredzpracovanými daty a podle kódu ve skriptu je zobrazí. Soubor s pˇredzpracovanými daty má tvar matice. Kde prvni sloupec a první rˇ ádek tvoˇrí legenda a na pruseˇ ˚ cících rˇ ádku˚ a sloupcu˚ jsou cˇ íselné hodnoty. Program naˇcte hodnoty i popisy os a pomocí pˇríkazu˚ v jazyce R uživatel specifikuje druh grafu, barvu, 1. 2.
Gnuplot, http://www.gnuplot.info/ R, http://www.r-project.org/
9
3. P OROVNÁNÍ MOŽNOSTÍ VYKRESLENÍ GRAF U˚
Obrázek 3.1: Pˇríklad grafu vykresleného programem Gnuplot [16] nadpis a další parametry.[8] Program R vykresluje mnoho typu˚ grafu. ˚ Vývoj aplikace trvá už mnoho let a má širokou uživatelskou základnu. Program je pod licencí GNU 3 , která umožnuje ˇ svobodné používání software bez omezení. Nevýhodou programu je nutnost nauˇcit se nový programovací jazyk.
3.1.3 Matlab, Maple, Statistica Matlab 4 , Maple 5 , Statistica 6 nevyhovují v základním požadavku, protože jsou to komerˇcní programy specializované na rˇ ešení výpoˇcetních problému. ˚ Vizualizace dat je zde pouze minoritní záležitostí. Tyto programy pˇríliš robustní na to, aby se využívaly pouze za tímto úˇcelem.
3.2
Rozšíˇrení programovacích jazyku˚
Další možností je použít knihovny skriptovacích jazyku. ˚ Tyto knihovny jsou pouhým rozšíˇrením programovacího jazyka, a tudíž odpadá komplikace, že vrstva, která bude zpracovávat data bude v jiném programovacím jazyce, než vrstva, která vygeneruje graf.
3. 4. 5. 6.
GNU, http://gnu.cz/ Matlab, http://www.mathworks.com/ Maple, http://www.maplesoft.com/products/maple/ Statistica, http://statsoft.com/
10
3. P OROVNÁNÍ MOŽNOSTÍ VYKRESLENÍ GRAF U˚
Obrázek 3.2: Pˇríklad grafu vykresleného programem R [12] 3.2.1 Highcharts Highcharts7 je rozšíˇrení jazyka Javascript8 . Javascript je skriptovací jazyk, kde vykreslení grafu˚ probíhá na stranˇe klienta. To znamená, že na stranˇe serveru musí být zpracována data, která se pošlou HTML stránce obsahující funkci napsanou v Javascriptu, která data dál zpracuje a vygeneruje graf, který na stránce zobrazí. Nevýhodou je, že podporu Javascriptu je také možné v prohlížeˇci vypnout a vykreslení grafu˚ by tedy samozˇrejmˇe nefungovalo. Highcharts je pro nekomerˇcní úˇcely zdarma, podporuje všechny základní druhy grafu˚ a to tak, že graf je po vygenerování interaktivní.
3.2.2 DBD::Chart DBD::Chart 9 je grafické rozšíˇrení jazyka Perl10 , které umožnuje ˇ vykreslovat grafy. Vykresluje základní 2D grafy – sloupcové, spojnicové, plošné, koláˇcové ... Program i jeho kód je volnˇe šiˇritelný. Rozšíˇrení je potˇreba nainstalovat. Používá se tak, ze se do perlového skriptu zavola "use DBI", což je grafický modul pro Perl a dál se ve skriptu volají funkce z rozšíˇrení a vykreslí se graf.
7. 8. 9. 10.
Highcharts, http://www.highcharts.com/ Javascript, http://cs.wikipedia.org/wiki/JavaScript DBD::Chart, http://www.presicient.com/dbdchart/ Perl, http://www.perl.org/
11
3. P OROVNÁNÍ MOŽNOSTÍ VYKRESLENÍ GRAF U˚
Obrázek 3.3: Pˇríklad grafu vykresleného pomocí Highcharts [13]
Obrázek 3.4: Pˇríklad grafu vykresleného pomocí DBD::Chart [14]
12
3. P OROVNÁNÍ MOŽNOSTÍ VYKRESLENÍ GRAF U˚
3.3
Nástroje PBSPro
3.3.1 PBS Analytics PBS Analytics [11] je komerˇcní aplikace vyvinutá spoleˇcností, která zárovenˇ vytváˇrí systém PBS. Aplikace se skládá ze nˇekolika cˇ ástí – parseru, který zpracovává log systému PBS a z cˇ ásti, která importuje data do databáze PBS Analytics. Dále pak obsahuje webové nástroje na zpracování tˇechto dat a webové uživatelské rozhraní. Umí vykreslit všechny základní druhy grafu˚ a vygenerované grafy exportovat do MS Excel. Tento program je ale bohužel omezen databází PBS analytics. Grafy s urˇcitým obsahem v nˇem nebude možné nikdy vykreslit, protože databáze správy úloh v MetaCentru obsahuje data z více zdroju˚ než je jen log systému PBS.
3.4
Adobe Flash
Flash11 je vektorový program vyvinutý spoleˇcností Adobe. Je široce rozšíˇren a oblíben, protože vytváˇrí velmi hezké animované grafy, které jsou používány na webu. Jeho nevýhodou je vysoké vytížení procesoru pˇri tvorbˇe animací. 3.4.1 FusionCharts FusionCharts12 vytváˇrí grafy na vysoké grafické úrovni, které jsou zárovenˇ interaktivními animacemi. Jeho nevýhodou je komerˇcní licence a to, že by generování takovýchto grafu˚ více uživateli najednou mohlo nebezpeˇcnˇe vytížit procesor serveru na nˇemž bˇeží kromˇe této aplikace další programy. 3.4.2 Jpgraph Jpgraph[3] je objektovˇe orientovaná grafická knihovna psaná v PHP, jejíž využití tkví ve vykreslování grafu. ˚ Velmi jednoduše se instaluje, její používání je pro nekomerˇcní úˇcely zdarma, což je pro MetaCentrum vyhovující podmínka. Vygenerované grafy jsou pˇekné na pohled – nejedná se pouze o zubaté kˇrivky, ale o grafy podobné výstupum ˚ programu Excel. Používá se tak, že jsou soubory z knihovny zaˇclenˇeny do skriptu, kde se vytvoˇrí objekty, ze kterých se poté celý graf složí. Objektem je myšleno napˇríklad nadpis grafu, popisky grafu, osy, a samozˇrejmˇe vykreslená kˇrivka. U každého objektu je možné ovlivnit mnoho parametru, ˚ jako je rozsah grafu, barva 11. Adobe Flash, http://www.adobe.com/cz/products/flash/ 12. FusionCharts, http://www.fusioncharts.com/overview/
13
3. P OROVNÁNÍ MOŽNOSTÍ VYKRESLENÍ GRAF U˚
Obrázek 3.5: Pˇríklad grafu vykresleného pomocí FusionCharts [4]
Obrázek 3.6: Pˇríklad grafu vykresleného pomocí Jpgraph [3] jednotlivých cˇ ástí grafu, font. . . Díky objektovému pˇrístupu je poskládání grafu pomˇernˇe snadné.
3.5
Výsledek porovnání a dále použité technologie
Na základˇe výše zmínených porovnání bylo rozhodnuto použít rozšíˇrení programovacího jazyka PHP13 , a to grafickou knihovnu Jpgraph pro webovou aplikaci. Jpgraph je jednoduchý na používání, vyhovuje potˇrebám a cílum, ˚ které jsou stanoveny v zadání bakaláˇrské práce. Je snadno rozšiˇritelný, vytváˇrí hezké 13. PHP, http://www.php.net/
14
3. P OROVNÁNÍ MOŽNOSTÍ VYKRESLENÍ GRAF U˚ grafy v potˇrebných tvarech, které jsou pˇrehledné nejen v elektronické podobˇe, ale i na papíˇre. Jazyk PHP vyhovuje požadavkum, ˚ protože se jedná o serverovˇe orientovaný skriptovací jazyk, který se dobˇre hodí pro primárnˇe webovou aplikaci, kde je potˇreba komunikace klient-server14 . PHP také umí dobˇre spolupracovat s HTML, Javascriptem a databází údaju. ˚ V úvahu jsem pˇri navrhování systému samozˇrejmˇe vzala i ostatní programovací jazyky napˇr. Perl, Python15 cˇ i ASP16 . Každý mˇel ovšem specifické nevýhody, navíc by musely být spojeny s nˇejakým dalším externím programem na vykreslování grafu˚ – napˇríklad Maple cˇ i Gnuplotem. Ty se ovšem nehodí pro automatické vykreslení jednoduchých grafu˚ na serveru, na to jsou pˇríliš složité. Grafická knihovna zamˇerˇ ená pˇrímo na vykreslení grafu˚ v tomto jazyku je v tomto pˇrípadˇe jednoduším a rychlejším rˇ ešením. Alternativní možností návrhu by bylo použít jako zdroj dat místo databáze o spuštˇených úlohách nástroj pˇrímo zabudovaný v PBS. Samotný systém PBS totiž v sobˇe samozˇrejmˇe také obsahuje nástroj na získávání dat z logu systému PBS. Program se nazývá pbs-report a pomocí mnoha pˇrepínaˇcu˚ mužeme ˚ navolit vlastnosti dat, která nás zajímají. Napˇríklad podle cˇ asu bˇehu úlohy, od a do urˇcitého data, podle uživatele, cˇ asu cˇ ekání úlohy atd. Bohužel tento nástroj nezískává data v celé šíˇri tak, jak je v MetaCentru potˇreba a urˇcitá data nedokáže vubec ˚ zobrazit. Je zde napˇríklad problém s fyzickými/virtuálními stroji. Program získává informace pouze pro virtuální stroje, a nezohlednuje ˇ jejich mapování na fyzické a fyzické na clustery. Jelikož toto mapování není statické a muže ˚ se v prubˇ ˚ ehu cˇ asu mˇenit, je nutné pro správnost výstupních dat si umˇet držet údaje o pˇríslušnosti ke clusteru. Dále pak není možné zjistit informace o uživatelích – jejich organizaci a výpoˇcetní skupinu, protože tyto informace nejsou v PBS systému uvedeny.
14. Klient-server, http://cs.wikipedia.org/wiki/Klient-server 15. Python, http://www.python.org/ 16. ASP, http://www.asp.net/
15
Kapitola 4
Struktura systému Jak už bylo zmínˇeno v zadání bakaláˇrské práce, systém má splnovat ˇ nˇekolik základních požadavku. ˚ Musí umožnovat ˇ online dotazy do databáze a to tak, že je možné u nich specifikovat použité stroje, organizace, skupiny a cˇ asový rozsah. Musí vytváˇret pˇrehledné grafy v jak elektronické, tak tištˇené formˇe. Dále by pak mˇel být jednoduše používán, mˇel by mít jednoduché webové rozhraní, aby nebyl po nikoho problém vygenerovat graf podle jeho pˇrání a mˇel by být jednoduše rozšiˇritelný. Tj: v pˇrípadˇe, že se do statistik zahrne nový druh grafu, bude otázkou nˇekolika minut, aby se daný typ grafu dal implementovat do aplikace. Také by mˇel obsahovat SQL dotazy vhodné pro uživatele, tak i uživatelskou podporu. Systém je tedy navržen modulárnˇe. Modulární systém má v tomto pˇrípadˇe výhody oproti systému monolitickému právˇe v tom, že jednotlivé moduly jsou snadno navzájem kombinovatelné (pokud kombinace dává smysl). Hlavní výhodou je také jednoduchá rozšiˇritelnost systému – v pˇrípadˇe, že je potˇreba nový typ nebo tvar grafu, je dopsán nový modul, který po zaˇclenˇení do systému okamžitˇe funguje. U monolitického systému by nebylo možné kombinovat ruzné ˚ dotazy a ruzné ˚ typy grafu, ˚ tak jak je to možné zde. V aplikaci jsou dva typy modulu˚ – moduly prvního typu mají za úkol získat data z databáze a následnˇe je zpracovat pro použití v dalším modulu. Získání dat probíhá tak, že se naváže spojení se serverem, kde sídlí databáze a pomocí SQL dotazu˚ se z ní získají potˇrebná data. SQL dotaz není pevný – uživatel ho má možnost ovlivnit tak, že zadá cˇ asové období, za které má dotaz vrátit data, pˇrípadnˇe stroj, organizaci cˇ i skupinu nebo další parametry. Tato data jsou následnˇe upravena (napˇríklad hodnoty, které jsou mimo uživateluv ˚ zájem, jsou seˇcteny a uloženy pod položkou Ostatní) a uložena do promˇenných, které reprezentují osu x a y grafu. Pˇríklad modulu je uveden v pˇríloze. Moduly druhého typu tato data dále zpracují a vizualizují je pomocí grafu. V modulu jsou zaˇclenˇeny soubory knihovny Jpgraph. Tyto soubory obsahují funkce, které jsou následnˇe v modulu volány na pˇríslušné parametry a vypoˇcítané hodnoty. V této cˇ ásti se tedy urˇcují rozmˇery, nadpis, barva, písmo, popisky grafu a pˇrípadné další prvky. Mnoho parametru˚ je volitelných tak, že je uživatel 16
4. S TRUKTURA SYSTÉMU pˇri zadání grafu muže ˚ ovlivnit. Také je urˇceno, co je v grafu osa x a y, pˇrípadnˇe další osy. Pˇríklad modulu je také uveden v pˇríloze. Po zavolání všech funkcí je vygenerován graf – obrázek ve formátu png. Tento graf není vykreslen pˇrímo do stránky, protože je možné protokolem http1 pˇrenést pouze jeden objekt – bud’ obrázek nebo celou stránku. Protože chceme pˇrenést celou stránku s obrázkem, je nutné tento vygenerovaný obrázek uložit na server a po té zobrazit stránku, která obsahuje HTML2 znaˇcku
3 , která odkazuje na vygenerovaný obrázek uložený na serveru. Obrázek se na serveru ukládá do unikátní složky, aby se pˇredešlo pˇrípadnému konfliktu pˇri práci více uživatelu. ˚ To, že složky s grafy zabírají místo na disku serveru je vyˇrešeno cronovým skriptem, který každou noc maže data starší než pˇet hodin. Nemaže všechna data ve složce, aby nenastala situace, kdy skript nˇekomu pod rukama odstraní vygenerovaná data. Oba druhy modulu˚ jsou volány z obalujících souboru, ˚ které pomocí promˇenné $_GET 4 získávají a následnˇe zpracovávájí parametry zadané v uživatelském rozhraní a podle nich používají jednotlivé moduly. V tˇechto souborech jsou zaˇclenˇeny hlaviˇcky a patiˇcky webové stránky. Mezi nˇe se vykreslí jeden nebo více grafu˚ (záleží na druhu souboru). V pˇrípadˇe, že je grafu˚ více, je uživateli nabídnuta možnost stáhnout si komprimovanou složku, která obsahuje všechny vygenerované obrázky.
1. 2. 3. 4.
http, http://www.w3.org/Protocols/ HTML, http://en.wikipedia.org/wiki/HTML HTML
, http://www.w3schools.com/tags/tag_IMG.asp $_GET, http://php.net/manual/en/reserved.variables.get.php
17
Kapitola 5
Uživatelské rozhraní Uživatelské rozhraní se skládá z HTML stránky, kde je kromˇe HTML také JavaScript pro vˇetší pohodlí uživatele. Tato stránka slouží jako hlavní rozhraní pro zadávání parametru˚ grafu. Toto rozhraní se nachází v autentizované cˇ ástí na webu MetaCentra https://metavo.cesnet.cz/cs/internal/stats/resourcestats. Rozhraní je rozdˇeleno na sekce podle druhu grafu. Toto rozdˇelení usnadní orientaci uživatele v rozhraní. V každé sekci je potˇreba nastavit parametry, které se samozˇrejmˇe v ruzných ˚ sekcích mírnˇe liší podle možností, který daný druh grafu nabízí. Tyto parametry jsou napˇríklad: druh grafu, cˇ asový rozsah, tvar grafu (sloupcový, koláˇcový ...), zda mají být popisky v angliˇctinˇe cˇ i ne a rozmˇery grafu. Uživatel si také u vybraných sekcí muže ˚ vybrat, zda bude graf vykreslen z hodnot pro celé MetaCentrum nebo jen z hodnot organizace, výpoˇcetní skupiny nebo samotného uživatele.
Obrázek 5.1: Výbˇer jedné z organizací Pˇri výpoˇctu vytížení si uživatel muže ˚ vybrat, zda chce grafy konkrétních clusteru˚ nebo všech stroju˚ najednou. Další možností je vybrat grafy, které porovnávají hodnoty za dvˇe období. Tento typ grafu je vhodný pro sledování dlouhodobých dopadu˚ zmˇen v MetaCentru. Další funkcionalitou je možnost vygenerovat kompletní statistiky za dané období, které obsahují nejduležitˇ ˚ ejší grafy ve tvaru, který je možné rovnou po18
5. U ŽIVATELSKÉ ROZHRANÍ
Obrázek 5.2: Výbˇer jednotlivého clusteru
Obrázek 5.3: Pˇríklad grafu, který porovnává propoˇcítaný cˇ as ve frontách za dvˇe období užít v závˇereˇcné zprávˇe nebo jiném dokumentu. V rozhraní je tˇreba zadat i minulé období, aby bylo možné vygenerovat grafy zachycující trendy oproti tomuto minulému období. Spolu s možností vygenerovat grafy vytížení nebo plošné grafy pro všechny stroje a grafy doby cˇ ekání pro jednotlivé fronty, je to nejvíce využívaná funkce pro sledování a analýzu provozu MetaCentra. Javascriptové funkce na webové stránce ošetˇrují validitu vstupních údaju. ˚ V pˇrípadˇe, že vstupní údaj není validní, tak pole, kde je údaj zadán, zˇcervená. Pokud se uživatel pokusí vykreslit graf z neplatných údaju, ˚ dostane po odeslání formuláˇre chybovou zprávu, která mu rˇ íká, který parametr vyplnil špatnˇe. Po vyplnˇení údaju, ˚ jsou údaje odeslány na server, zpracovány a vykreslen graf. 19
5. U ŽIVATELSKÉ ROZHRANÍ
Obrázek 5.4: Stránka s vykreslenými kompletními statistikami
Obrázek 5.5: Ukázka funkˇcnosti Javascriptu
20
Kapitola 6
Využití nástroje Využití nástroje je definované pˇrímo v zadání bakaláˇrské práce – grafy mají být používány jak v zobrazení na webu, tak v publikacích. Nástroj je už pˇres pul ˚ roku používán uživatelskou podporou MetaCentra pro sledování statistik a vyhodnocování provozu, také grafy vygenerované tímto nástrojem byly použity v závˇereˇcné zprávˇe MetaCentra za první a druhé pololetí roku 2010 a v prezentacích[10] [9] na semináˇrích MetaCentra, roˇcence MetaCentra[7], stipendijní zprávˇe za první a druhé pololetí roku 2010 a na webu MetaCentra[15]. Volný vs. vyhrazený cluster
voln¥ p°ístupný
vyhrazený vlastníkovi Zden¥k ustr et al. (CESNET)
Novinky ze sv¥ta grid·
8. listopadu 2010
8 / 17
Obrázek 6.1: Prezentace MetaCentra[9] Dále se pak grafy využívají pˇri bˇežném provozu ke kontrole toho, že vše bˇeží tak jak má. Bˇehem využívání nástroje došlo k následujícím problémum: ˚ Do MetaCentra pˇrišel nový uživatel, který spouštˇel velké množství úloh. Kvuli ˚ nˇemu se zvýšila doba cˇ ekání úloh všech ostatních uživatelu, ˚ protože jeho úlohy obsadily všechny dostupné stroje. Byl s ním navázán kontakt a vytvoˇrena speciální fronta pro velké množství úloh. Pomocí aplikace byl dále monitorován stav cˇ ekání úloh a využití front, aby se vyvážily potˇreby aktivního uživatele a všech ostatních uživatel. Dalším díky grafum ˚ objeveným problémem bylo, že se prudce zvýšil poˇcet úloh, které skonˇcily do nˇekolika sekund po spuštˇení – takovéto úlohy jsou s 21
6. V YUŽITÍ NÁSTROJE
Statistika využití a výsledky
seminář gridového počítání, Praha
15.10.2010
19
Obrázek 6.2: Prezentace MetaCentra[10]
22
6. V YUŽITÍ NÁSTROJE nejvˇetší pravdˇepodobností chybné a po spuštˇení došlo k jejich pádu. Následnˇe byl dohledán uživatel, který mˇel vˇetšinu úloh na svˇedomí. Problémem je i nízký zájem o nˇekteré fronty z duvodu ˚ toho, že obsahují staré pomalé stroje, s tímto trendem, který jsme zaznamenali, bohužel zatím nemužeme ˚ nic dˇelat dokud nebudou pˇrikoupeny nové stroje.
6.1
Ilustrace využití front
V MetaCentru pomˇernˇe cˇ asto nastane situace, kdy se zmˇení parametry fronty, jako je napˇríklad maximum spuštˇených úloh na uživatele, doba po kterou mohou úlohy ve frontˇe bˇežet, stroje, na kterých úlohy ve frontˇe bˇeží. Po urˇcité dobˇe po realizaci zmˇeny je dobré zkontrolovat, jestli zmˇeny pˇrinesly oˇcekávaný výsledek nebo ne. Pokud se do fronty pˇridaly nové stroje, zda se snížilo cˇ ekání uživatelu, ˚ a jestli jsou stroje dostateˇcnˇe vytížené. Využití front podle propoˇcítaného cˇ asu cˇ i podle spuštˇených úloh je velmi dobrým ukazatelem, zda jsou všechny fronty využívány uživateli rovnomˇernˇe. Je zde možné velmi snadno vidˇet, jak zmˇena parametru fronty (poˇcet spuštˇených úloh na uživatele, max.délka úlohy) ovlivnují ˇ použitelnost fronty pro uživatele. Pˇríkladem toho muže ˚ být fronta normal, která byla nejvytíženˇejší frontou MetaCentra. Používalo ji nejvíc uživatelu, ˚ což byl problém, protože zdroje pˇridˇelˇené této frontˇe jsou pouze omezené a uživatelé museli na spuštˇení úlohy cˇ ekat v rˇ ádu hodin. Viz obrázek 6.3. Toto cˇ ekání bylo zpusobeno ˚ nejen omezenými zdroji, ale i limitem na poˇcet úloh od jednoho uživatele – opatˇrení, aby jeden uživatel nezahltil MetaCenˇ trum jen svými výpoˇcty nebo nízkou prioritou fronty. Rešením bylo vytvoˇrit novou frontu, kam se odlilo mnoho uživatelu, ˚ cˇ ímž se uvolnila fronta normal, a jejich úlohy se zaˇcaly spouštˇet rychleji, protože byly rozvrstveny mezi více front. Viz obrázek 6.4. Výše uvedné obrázky ilustrují frontu normal, která byla velmi využívána a cˇ ekání úloh bylo velmi vysoké. Po zavedení fronty backfill se cˇ ást úloh pˇrelila do ní a doba cˇ ekání se snížila.
6.2
Ilustrace vytížení stroju˚
Na grafech ilustrující vytížení stroju˚ je jasnˇe vidˇet, o které stroje je zájem a o které naopak zájem není. V pˇrípadˇe, že je nˇejaký stroj vytížený velmi málo, mužeme ˚ pak dále usuzovat, co vede uživatele k tomu, aby stroj nepoužívali. V pˇrípadˇe, že se zavede nový stroj, je samozˇrejmé, že má zpoˇcátku nižší vytížení (cca okolo 50%), které se bˇehem prvních pár týdnu zvˇetší témˇerˇ až na maximum. Ilustruje to, že stroj po odladˇení instalace potˇrebuje nˇejaký cˇ as na to, aby si ho uživatelé všimli a zaˇcali používat. Pokud se navýšení vytížení ne23
6. V YUŽITÍ NÁSTROJE
Obrázek 6.3: Doba cˇ ekání na spuštˇení úlohy pˇred vytvoˇrením nové fronty
Obrázek 6.4: Doba cˇ ekání na spuštˇení úlohy po vytvoˇrení nové fronty 24
6. V YUŽITÍ NÁSTROJE koná, což je dobˇre vidˇet z grafu, mužeme ˚ pátrat po dalších pˇríˇcinách, jako je nedostateˇcné odladˇení instalace, nedostupnost nˇejaké služby, nevytvoˇrení uživatelských úˇctu˚ na daném stroji... Typický pˇríklad takovéhoto stroje vidíme na obrázku 6.5. Jedná se o graf vytížení clusteru tarkil, který se do MetaCentra zaˇclenil v tomto roce.
Obrázek 6.5: Zprovoznˇení clusteru tarkil – vytížení Naopak pokud je v již bˇežícím clusteru velmi nízké vytížení, tak to muže ˚ znamenat, že cluster je už pˇríliš starý a pomalý a uživatelé preferují rychlejší stroje. V pˇrípadˇe, že bude nutné nˇejaké stroje z MetaCentra vyˇradit, je takto možné identifikovat nejvhodnˇejší kandidáty. Pˇríklad vytížení takového stroje je na obrázku 6.6.
Obrázek 6.6: Vytížení clusteru konos Napˇríklad cluster konos je velmi starý a jeho bˇeh provází rˇ ada poruch. Pro jeho nevýkonnost a nespolehlivost není uživateli pˇríliš využíván. 25
6. V YUŽITÍ NÁSTROJE Daný cluster muže ˚ být také vyhrazen pro urˇcité uživatele nebo za urˇcitým úˇcelem. Vyhrazené clustery mají vždy menší využití než clustery s volným pˇrístupem. Viz obrázek 6.7.
Obrázek 6.7: Vytížení clusteru quark pˇred zpˇrístupnˇením Po zpˇrístupnˇení clusteru quark všem uživatelum ˚ se vytížení rychle zvedlo, jak je vidˇet na obrázku 6.8. V pˇrípadˇe, že se novˇejšímu stroji sníží vytížení bez
Obrázek 6.8: Vytížení clusteru quark po zpˇrístupnˇení zjevných duvod ˚ u˚ (jako je tˇreba porucha stroje), je to úkaz, který si zaslouží bližší prozkoumání a zjištˇení duvodu, ˚ který není na první pohled zˇrejmý. V tomto pˇrípadˇe je nutné uvážit všechny zmˇeny, které se pˇred poklesem využití v MetaCentru udály a zda by mohly mít takto globální dopad. 26
6. V YUŽITÍ NÁSTROJE
6.3
Statistiky organizací a skupin
V pˇrípadˇe, že by výpoˇcetní skupinu nebo organizaci zajímaly její statistiky v MetaCentru, mužeme ˚ ji poskytnout údaje o celkové propoˇcítaném cˇ ase, použitých strojích, poˇctu úloh, cˇ ekání úloh, dobˇe trvání úloh, využitých aplikacích a mnoho dalšího za libovolné cˇ asové období. Z tˇechto údaju˚ muže ˚ organizace získat zajímavé informace o jejích zamˇestancích (napˇr: kdo poˇcítá nejvíce, kdo nejménˇe). Pˇríklad na obrázku 6.9). Také muže ˚ zjistit, že urˇcitou aplikaci nevyužívá nebo využívá málo, a tudíž není potˇreba prodlužovat její licenci cˇ i kupovat licence nové.
Obrázek 6.9: Uživatelé podle propoˇcteného cˇ asu dané skupiny
27
Kapitola 7
Další vývoj Dalším vývojem muže ˚ být spolupráce s novˇe vyvíjenou verzí systému Perun 1 , který bude obsahovat všechny informace o uživatelích, virtuálních organizacích a strojích tak, že bude možné všechna data o nich pˇrímo brát z databáze Peruna. Dále bych pak mohla rozšíˇrit spolupráci nejen o databázi nad stroji, ale i o vykreslování využití licencí jednotlivých programu˚ uživateli MetaCentra. V MetaCentru bˇeží dva licenˇcní servery, které spravuje systém flexlm2 . Z jeho logu˚ se dají vyˇcíst informace o vydávání licencí jednotlivým uživatelum. ˚ Bylo by žádoucí zautomatizovat proces, který vede k vykreslení grafu˚ poˇctu vydaných licencí, tak, aby si graf mohl vygenerovat kdokoli. Momentálnˇe chybí "mezivrstva", která uspoˇrádá logy z obou serveru˚ a pˇredpoˇcítaná data bude ukládat do databáze, nad níž se budou generovat grafy.
1. 2.
Perun, http://www.metacentrum.cz/cs/about/devel/perun.html FLEXlm, http://en.wikipedia.org/wiki/FlexNet_Publisher
28
Kapitola 8
Závˇer Cílem bakaláˇrské práce bylo vyvinout aplikaci, která bude umˇet v pˇrehledné formˇe zobrazit data o spuštˇených úlohách v MetaCentru a další statistické údaje. Tuto aplikaci se mi podaˇrilo zrealizovat. Umožnuje ˇ generování grafu, ˚ které je možné použít jak v elektronické, tak tištˇené podobˇe. Uživatel si v aplikaˇcním rozhraní muže ˚ zvolit druh a rozsah dotazu, cˇ asový rozsah dotazu a další parametry, jako je dotaz zahrnující pouze cˇ leny výpoˇcetní skupiny nebo organizace. Dále si muže ˚ zvolit parametry grafu – jeho tvar, velikost, jazyk popisku˚ atd. Rozhraní také umožnuje ˇ vygenerovat kompletní statistiky a stáhnout všechny obrázky ve formátu zip. Toto rozhraní je již víc jak pul ˚ roku používáno skupinou uživatelské podpory MetaCentra. Dukazem ˚ jsou prezentace, roˇcenka, závˇereˇcná a stipendijní zpráva, kde byly grafy použity. Grafy se také používají k monitorování bˇežného stavu MetaCentra a sledování dopadu ruzných ˚ zmˇen na jeho chod.
29
Literatura ˇ ˇ . Evidence úloh v superpoˇcítaˇcovém centru : bakaláˇrská [1] S EDLÁ CEK J I RÍ práce. Brno, Fakulta informatiky, 2008 : Masarykova univerzita, 29 l.,2 l. pˇril. Vedoucí bakaláˇrské práce: Martin Kuba.
[2] K UBA M ARTIN. Metodika statistiky[online], poslední revize 25.11.2010 [cit. 2010-12-1] Dostupné po autentizaci z https://meta.cesnet.cz/ metawiki/index.php5/Metodika_statistiky [3] Jpgraph [online], poslední revize 7.10. 2010 [cit. 2010-12-1] Dostupné z http://jpgraph.net/ [4] FusionCharts [online], [cit. 2010-12-1] Dostupné z http://www. fusioncharts.com/ [5] MetaCentrum NGI [online], poslední revize 29.9. 2010 [cit. 2010-12-15] Dostupné z http://www.metacentrum.cz/cs/about/meta/ [6] U RBAN A NNE. PBS Pro Administrator guide. Altair Grid Technologies, 2005. ˇ ˇ . MetaCentrum Year[7] K RENKOVÁ I VANA , A NTOŠ D AVID , M ATYSKA L UD EK book 2009. Pˇríbram : PBtisk s.r.o., 2010. 174 s. ISBN 978-80-904173-7-3
ˇ EPICKÝ J ÁCHYM. Tvorba grafu˚ pomocí programu "R" [online], poslední [8] C revize 26.5. 2004 [cit. 2010-12-1] Dostupné z http://www.root.cz/ clanky/tvorba-grafu-pomoci-programu-r-1/ ˇ . Novinky ze svˇ [9] Š USTR J I RÍ eta gridu[online], ˚ 2010 [cit. 2010-12-14] Dostupné z http://metavo.metacentrum.cz/export/sites/meta/ cs/seminars/seminar3/meta-2011-11.pdf
[10] K UBA M ARTIN. MetaCentrum[online], 2010 [cit. 2010-12-11] Dostupné z http://metavo.metacentrum.cz/export/sites/meta/cs/ seminars/seminar3/MetaCentrum-Makub.pdf [11] PBS Analytics[online], [cit. 2010-12-10] Dostupné z http://www. pbsworks.com/Product.aspx?id=7 30
ˇ 8. Z ÁV ER
[12] Quick-R [online], [cit. 2010-12-1] Dostupné statmethods.net/graphs/pie.html
z
http://www.
[13] HighCharts Demo Gallery[online], [cit. 2010-12-1] Dostupné z http:// www.highcharts.com/demo/ [14] Perl DBI Extension For Rendering Charts and Graphs[online], [cit. 201012-3] Dostupné z http://www.presicient.com/dbixchart/ [15] Statistika 2010 [online], [cit. 2010-11-1] Dostupné z http://metavo. metacentrum.cz/cs/state/stats/2010/index.html [16] Gnuplot homepage[online], [cit. 2010-11-1] Dostupné z http://www. gnuplot.info/
31
Pˇrílohy Jednoduchý pˇríklad kódu, který získá a zpracuje data z databáze
ˇ 8. Z ÁV ER
and j.end_time >= extract(epoch from timestamp ’".$datumOd."’) and j.ci_acct_pbs_server_id=s.ci_acct_pbs_server_id $SQL_params group by j.queue,s.hostname order by count(*) desc"; $i=0; $pg_result = pg_query($connection, $sql); $pocet_radku = pg_num_rows($pg_result); if($pocet_radku != 0) { while($row = pg_fetch_array($pg_result)) { // nacteni sloupcu databaze po radcich $fronta[$i] = $row["fronta"]; $ulohy[$i] = $row["pocet"]; $i++; } } //maximum je promenna, ktera vyjadruje //kolik nejvyssich hodnot ma byt v grafu obsazeno, //pokud neni zadana, graf se vykresli v plnem rozsahu $maxI = isset($get_max) ? $get_max : $pocet_radku; //v pripade, ze tvar grafu, ktery se bude vykreslovat, //je kolacovy, tak se jako osa x (legenda) ulozi //nazev fronty a prislusna ciselna hodnota osy y if($shape == "pie"){ for($i=0;$i<$maxI-1;$i++){ $array_y[$i] = $ulohy[$i]; if ($get_aj === FALSE){ $array_x[$i] = $fronta[$i]." ". round($ulohy[$i],0)." úloh"; } else{ $array_x[$i] = $fronta[$i]." ". round($ulohy[$i],0)." jobs"; } } } //pokud je graf sloupcovy, pouze se ulozi promenne az //po maximum do pole predstavujici osu x a y if($shape == "cl"){ for($i=0;$i<$maxI;$i++){ $array_y[$i] = $ulohy[$i]; 33
ˇ 8. Z ÁV ER
$array_x[$i] = $fronta[$i]; } } } ?>
34
ˇ 8. Z ÁV ER
Jednoduchý pˇríklad kódu, který vykreslí graf
SetScale("textlin"); $graph->SetMargin(100,40,30,130); //definovani nadpisu a popisku grafu, podle druhu grafu if ($druh == "fronta_cas"){ if ($get_aj){ $graph->yaxis->SetTitle(’CPU hours’,’high’); $graph->title->Set("List of queues according to real computed time [cpu hours]"); } else{ $graph->yaxis->SetTitle(’CPU hodiny’,’high’); $graph->title->Set("Žebˇ ríˇ cek front podle propoˇ cítaného ˇ casu [cpu hodiny]"); } } //definovani osy x a sklonu jejich popisku $graph->xaxis->SetTickLabels($array_x); //pridani osy y $b1 = new BarPlot($array_y); $graph->Add($b1); //vykresleni grafu do dane slozky $graph->Stroke("$tmpdir/$file.png"); } ?> 35
ˇ 8. Z ÁV ER
CD s použitými skripty Pˇrikládám CD, které obsahuje všechny skripty, se kterými pracuji ve své bakaláˇrské práci. Samotný systém je dostupný v autentizované cˇ ásti portálu MetaCentra https://metavo.cesnet.cz/cs/internal/stats/resourcestats.
36