piątek, 23 kwietnia 2010

Rozproszone testy wydajnościowe z użyciem Apache JMeter

Kolejny wpis o JMeter. Bardzo przydatne narzędzie :)
Dzisiaj chciałem pokazać jak wykonywać rozproszone testy wydajnościowe. Do tego będzie nam potrzebne kilka maszyn z kopią JMeter. Ważne by na każdej maszynie były takie same wersje aplikacji.
Moje środowisko testowe wygląda następująco: (Paint wymiata;)
Zadaniem węzła master jest uruchomienie testów na wszystkich slaveach oraz odbieraniem od nich informacji o wynikach pomiarów. Slave natomiast bombarduje cel żądaniami zdefiniowanymi i przesłanymi przez Master.
Aby uruchomić slave należy na każdej węźle uruchomić Server JMeter -> JMETER_HOME/bin/jmeter-server.bat
Tutaj należy uważać, bo z tego co zauważyłem jest wybierany losowy port a nie jakiś stały przez co mogą wystąpić problemy z firewallem. Jeśli wszystko poszło dobrze coś podobnego do tego powinno się pojawić w konsoli:

To wszystko co należy zrobić na tych węzłach. W węźle master należy otworzyć do edycji plik JMETER_HOME/bin/jmeter.properties. W linii remote_host=127.0.0.1 należy wpisać adresy serwerów slave. W moim przypadku będzie to wyglądać następująco:
remote_hosts=192.168.0.6,192.168.0.7,192.168.0.4,192.168.0.15
Po uruchomieniu JMeter w menu Run-> Remote Start -> powinna pojawić się lista serwerów które dodaliśmy. Możemy odpalać je pojedynczo lub wszystkie jednocześnie za pomocą Remote Start All. Wystarczy już tylko przygotować jakiś plan testów i odpalić. Konsola na węzłach Slave powinna nas informować o rozpoczęciu i zakończeniu testów:
W przypadku jakiś problemów polecam sprawdzić plik jmeter.log w ktalogu /bin/.

Podoba mi się to narzędzie:) Bardzo szybko i prosto można skonfigurować duże źródło ruchu dla testowanego środowiska. Jedna maszyna do zastosować domowych może spokojnie symulować ponad 2000 wirtualnych użytkowników. W zupełności mi to wystarcza dla testowanych przeze mnie projektów.
Postaram się niedługo napisać coś więcej na temat skalowalności JMeter i tego kiedy on może stać się wąskim gardłem, a nie aplikacja lub przepustowość sieci w środowisku.

Brak komentarzy:

Prześlij komentarz