Testování Výkonu Jboss AS V Závislosti Na Použité JVM
Total Page:16
File Type:pdf, Size:1020Kb
MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY Testování výkonu JBoss AS v závislosti na použité JVM DIPLOMOVÁ PRÁCE Tomáš Vlček Brno, jaro 2013 Prohlášení Prohlašuji, že tato práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj. ...................................... Tomáš Vlček Vedoucí práce: Mgr. Marek Grác i Poděkování Na tomto místě bych rád poděkoval panu Mgr. Marku Grácovi za vedení této práce a zajištění všech formálních záležitostí, panu Ing. Pavlu Tišnovskému, Ph.D. za odborná doporučení a rady nejen ohledně JBoss aplikačního serveru, ale i k práci obecně a kolegovi Mgr. Petru Křemenskému za pomoc při řešení problémů této práce a poskytnutí testovacího programu, který vznikal v rámci jeho diplomové práce. Dále mé díky patří rodině a přátelům, kteří mě v průběhu psaní práce podporovali a pomohli mi s jazykovou korekturou. ii Shrnutí Tato práce má za cíl analýzu, návrh a provedení výkonnostních testů na aplikačním serveru JBoss. Součástí práce je i shrnutí ostatních benchmarkových aplikací, které taktéž slouží k otestování výkonnosti aplikačních serverů. Práce je rozdělena na teoretickou a praktickou část, kde v části teoretické lze najít potřebný základ pro praktické testování a jsou zde obsaženy obecné informace o použitých virtuálních strojích Javy, ostatních aplikačních serverech a vzájemné spolupráci. V praktické části lze nalézt vlastní realizaci výkonnostních testů, jejich hodnocení a návrhy na rozšíření této práce. iii Abstract This thesis aims to analyze, design and execute a performance tests on application server JBoss. One part of this thesis contains information of other benchmark applications for performance testing. The thesis is divided into theoretical and practical part. In the theoretical part can be found basis for practical testing and there are also information about Java Virtual Machines, other application servers and their cooperation. In the practical part can be found implementation of performance testing, tests evaluation and some extension ideas for this work. iv Klíčová slova JBoss, AS, JVM, Java Virtual Machines, benchmark, výkonnostní testování, performance testing, aplikační server, Java EE, Muni-shop v Obsah 1 Úvod ............................................................................................................................................... 1 2 Teorie měření výkonu aplikačních serverů ............................................................................ 3 2.1 Ukazatele pro měření výkonu ........................................................................................... 3 2.1.1 Dostupnost .................................................................................................................... 4 2.1.2 Doba odezvy.................................................................................................................. 4 2.1.3 Propustnost.................................................................................................................... 5 2.1.4 Využití, efektivita ......................................................................................................... 5 2.2 Aplikační servery.................................................................................................................. 5 2.2.1 Certifikace aplikačních serverů .................................................................................. 6 2.2.2 JBoss AS ......................................................................................................................... 7 2.2.3 WebLogic AS ................................................................................................................. 8 2.2.4 WebSphere AS .............................................................................................................. 8 2.2.5 Geronimo AS, TomEE AS ............................................................................................ 8 2.2.6 Ostatní AS ...................................................................................................................... 9 2.3 Ladění aplikačního serveru ............................................................................................... 10 2.3.1 Fond vláken ................................................................................................................. 10 2.3.2 Fond JDBC spojení ...................................................................................................... 11 2.3.3 JMS fond....................................................................................................................... 12 2.3.4 Bezstavové komponenty............................................................................................ 12 2.3.5 Cache ............................................................................................................................ 12 2.3.6 Záznam událostí ......................................................................................................... 13 2.4 Výkonnostní testování ....................................................................................................... 14 2.4.1 APM .............................................................................................................................. 15 2.4.2 Typy testů .................................................................................................................... 16 2.4.3 Budování zátěže .......................................................................................................... 17 2.4.4 Testování clusteru....................................................................................................... 19 2.5 Problémy .............................................................................................................................. 20 2.5.1 Složitost ........................................................................................................................ 21 2.5.2 Cena odstranění chyby .............................................................................................. 22 2.5.3 Izolované vs komplexní testy ................................................................................... 23 2.5.4 Důsledky ...................................................................................................................... 24 3 Java Virtual Machines .............................................................................................................. 25 3.1 Spolupráce s JVM ............................................................................................................... 25 3.1.1 JRE................................................................................................................................. 25 3.1.2 JDK ................................................................................................................................ 26 vi OBSAH 3.2 Součásti JVM ....................................................................................................................... 26 3.2.1 Správce paměti ............................................................................................................ 27 3.2.2 Bajtkód kontrolor ........................................................................................................ 27 3.2.3 Interpret / Kompilátor ................................................................................................ 28 3.3 Různé implementace JVM ................................................................................................. 29 3.3.1 OracleJDK .................................................................................................................... 30 3.3.2 OpenJDK ...................................................................................................................... 30 3.3.3 IBM JDK ....................................................................................................................... 31 3.3.4 jRockit ........................................................................................................................... 31 3.3.5 Méně rozšířené JVM ................................................................................................... 31 3.4 Ladění JVM .......................................................................................................................... 32 3.4.1 Životní cyklus objektů ............................................................................................... 32 3.4.2 Velikost JVM haldy .................................................................................................... 34 3.4.3 Komprimované ukazatele ......................................................................................... 35 3.5 Srovnání JVM ...................................................................................................................... 36 3.5.1 Podpora operačních systémů .................................................................................... 36 3.5.2 Velikost instalace ........................................................................................................ 37 4 Možnosti řešení .......................................................................................................................... 38 4.1 Existující řešení ................................................................................................................... 38