Naslov Testiranje performanci mikrousluga u programskom jeziku Java
Naslov (engleski) Java Microservices Performance Testing
Autor Marko Pobi
Mentor Mario Kušek (mentor)
Član povjerenstva Mario Kušek (predsjednik povjerenstva)
Član povjerenstva Ivana Podnar Žarko (član povjerenstva)
Član povjerenstva Marin Vuković (član povjerenstva)
Ustanova koja je dodijelila akademski / stručni stupanj Sveučilište u Zagrebu Fakultet elektrotehnike i računarstva Zagreb
Datum i država obrane 2019-07-09, Hrvatska
Znanstveno / umjetničko područje, polje i grana TEHNIČKE ZNANOSTI Računarstvo
Znanstveno / umjetničko područje, polje i grana TEHNIČKE ZNANOSTI Elektrotehnika
Sažetak Programski jezik Java pripada grupi objektno orijentiranih programskih jezika te se ubraja među najčešće korištene jezike za izradu aplikacija, odnosno programa. Konstantno se radi na njegovom napretku i usavršavanju, stoga je zanimljivo vidjeti razliku u performancama aplikacija pokrenutih s pojedinim verzijama Jave. Za testiranje verzija Jave korištene su aplikacije s arhitekturnim stilom mikrousluga. Takva arhitektura dijeli sustav na kolekciju manjih usluga koje su međusobno neovisne, labavo spojene te organizirane prema poslovima za koje su namijenjene. Zbog toga su aplikacije s takvom arhitekturom vrlo održive i pogodne za testiranje. Na performance sustava utječe i dodijeljena memorija, odnosno količina memorijskih resursa koju sustav ima na raspolaganju. Java ima ugrađeno automatsko upravljanje memorijom i sakupljač smeća koji radi u pozadini i oslobađa memoriju brisanjem nekorištenih objekata. Glavnu ulogu kod memorije ima dio koji se naziva memorijska hrpa. Hrpa služi za spremanje stvarnih objekata u memoriju, a čije se reference nalaze na stogu. Svaki pokrenuti proces u JVM-u ima svoju hrpu koja se dijeli na broj dretvi unutar tog procesa. Za prikaz stanja memorijske hrpe korišten je alat Java VisualVM. Alat grafički prikazuje iskorištenost memorijske hrpe i procesora, broj učitanih razreda te broj aktivnih dretvi u pojedinom trenutku. Za pokretanje komponente RAP korišten je Docker gdje je također mjerena potrošnja njegovog spremnika u kojem je pokrenut RAP te su rezultati prikazani i analizirani. Performance su testirane slanjem HTTP zahtjeva čija je simulacija automatizirana pomoću alata Gatling. Simuliran je različit broj korisnika kako bi se vidjelo ponašanje sustava pri većim opterećenjima. Testiranje je provedeno na istom računalu na kojemu su pokrenuti sustavi. Testiranje se pokazalo uspješnim i rezultati testiranja su zadovoljavajući. Vidljiv je napredak po pitanju performanci kod novijih verzija Jave te se predviđa da će svaka nova verzija biti sve bolja i poželjnija za korištenje.
Sažetak (engleski) Java programming language belongs to a group of object-oriented programming languages and is one of the most used languages for building applications or programs. It is constantly worked on new features and refinement of language, so it is interesting to see the difference in performances between individual versions. For testing different versions of Java in this paper were used applications with microservice architecture. Such architectural style divides system into a collection of smaller services that are mutually independent, loosely coupled and organized according to their tasks and purpose. For this reason, applications with such architecture are very sustainable and suitable for testing. System efficiency and performances affect and allocate memory that system has available for applications. Java has embedded automatic memory management and a garbage collector that works in the background and releases memory by deleting unused objects. The main part of memory is called a heap memory. Heap memory is used to store the actual objects whose references are located on the stack. Each JVM process has its own heap memory that is divided by number of threads within the process. Java VisualVM was used to display heap memory status throughout tests. This tool displays graphically the exploitation of heap memory, processor usage, number of loaded classes and number of active threads at specific moment. Docker was used to run the RAP component and its container, that ran RAP component, was also monitored to see its memory consumption. Efficiency and performances of specific system were tested by sending HTTP requests that were simulated automatically using the Gatling tool. Different number of users was simulated to see system behavior and performances at higher loads. Testing was carried out on the same computer where applications were also running. Testing has been successful and the test results are satisfactory. There is a remarkable improvement in performance with newer versions of Java, which predicts that each new version will be better and more desirable to use.
Ključne riječi
Java
memorija
mikrousluge
testiranje
Docker
Docker Swarm
hrpa
REST
testiranje performanci
HTTP
Spring
JDK
test opterećenja
Gatling
JVisualVM
Ključne riječi (engleski)
Java
memory
microservices
testing
Docker
Docker Swarm
heap
REST
performance testing
HTTP
Spring
JDK
load testing
Gatling
JVisualVM
Jezik hrvatski
URN:NBN urn:nbn:hr:168:097553
Studijski program Naziv: Informacijska i komunikacijska tehnologija Vrsta studija: sveučilišni Stupanj studija: diplomski Akademski / stručni naziv: magistar/magistra inženjer/inženjerka informacijske i komunikacijske tehnologije (mag. ing. inf. et comm. techn.)
Vrsta resursa Tekst
Način izrade datoteke Izvorno digitalna
Prava pristupa Zatvoreni pristup
Uvjeti korištenja
Javna napomena
Datum i vrijeme pohrane 2020-01-07 21:26:03