Testowanie obciążeniowe za pomocą np jMeter

0

Chcę przetestować sobie aplikację za pomocą JMetera. Potrzebne mi to do pracy magisterskiej. Testował będę JMeterem a następnie Gatlingiem. Struktura "systemu" wygląda tak: 2 tomcaty, apache httpd z mod_jk do load balancingu. W JMeterze za pomocą http wołam sobie resta wyciągającego dane, ustawiam powiedzmy na 500 wątków.
Sprawa wygląda tak, że niezależnie czy mam włączone dwa czy jednego tomcata czas trwania testu jest dosyć zbliżony stąd moje pytanie:
Czy istnieje jakaś możliwość ustawienia żeby JMeter korzystał ze wszystkich dostępnych rdzeni?(mam całe dwa :D)
Czy to w ogóle może być miarodajne na maszynie 2 rdzeniowej?
Jakieś pomysły, propozycje jak mógłbym to przejrzyście zaprezentować? Bo skoro czasy testów z dwoma czy jednym tomcatem się nie różnią to moje rozwiązanie load-balancingowe niewiele daje... acha - wąskie gardło może stanowić baza - jest wspólna ale takie było założenie.
a! dodam jeszcze, że jak odpalam testy w JMeterze to zużycie procesora wzrazta nieznacznie, może max do 20%...

0

Ilu maszyn fizycznych używasz do tej zabawy? Load balancing nie ma sensu, jak te Tomcaty nie stoją na osobnych maszynach fizycznych. I Jmeter tu nie potrzebny, bo czas ukończenia 2000 zapytań można zmierzyć przez System.getCurrentTimeMillis().

JMeter to chyba coś, co pozwala znaleźć wąskie gardło systemu, a nie zmierzyć jego całkowitą wydajność. Tak więc Jmeterm zmierzyłbym, jak wygląda stosunek czasowy operacji bazodanowej (Tb) do całkowitego czasu obsługi żądania www (Tr). No i tylko czas (Tr - Tb) jesteś w stanie zmniejszać.

0

Czyli Jmeter, Baza danych, i dwa Tomcaty na jednej maszynie i nie widać różnicy...
Ciekawe Sherlocku dlaczego....

Fizyki nie oszukasz. Masz serwer dwurdzeniowy - to robi on maxymalnie dwie !!! rzeczy naraz. I musi to rozdzielić na OS, Jmetera, Load balancer, baze i te tomcaty.
Jeżeli nie możesz zdobyć więcej maszyn (gdzie ty mieszkasz ? nie dotarł tam 21 wiek ?) - to jest jeden słaby (ale ujdzie) sposób:
Ogranicz sobie sztucznie przetwarzanie każdego z tomcatów poprzez odpalenie go na VM (virtual box, vmware, docker nawet - oli nie robisz tego na windows) i ograniczenie liczby procesorów (jeden teomcat - jeden procesor (albo nawet pół :-))).
Wtedy masz szanse zobaczyć pozytywną różnicę na load balancingu.
Masz szansę - bo zachodzi jeszcze pytanie jakie to dwa rdzenie , jaki to program itp, jak korzysta z bazy itp.

Ogólnie:
raz - miarodajne testowanie wymaga aby jmeter był na osobnej maszynie,
dwa - musisz właściwie określić jakie jest wąskie gardło przetwarzania, żeby nie wyszło, że mierzysz po prostu
słabo zrobioną konfigurację (czyli jesli ci sie CPU na 100% nie wysyca to powstaje pytanie co się blokuje ... IO ?,
baza?, może masz zbyt trywialny system?, zbyt trywialne obciążenie i jmeter tak naprawdę nie obciąza twojego systemu wcale bo
ma on większe możliwości, może słabo skonfigurowany tomcat... itd itp).

0
jarekr000000 napisał(a): I musi to rozdzielić na OS, Jmetera, Load balancer, baze i te tomcaty.

Testuje z mojego kompa, tomcaty, loadbalancer etc jest na osobnej maszynie zdalnej.

1 użytkowników online, w tym zalogowanych: 0, gości: 1