jMeter ServerAgent ulega awarii w systemie Windows Server 2016

Sep 12 2020

Wczytujemy testowanie aplikacji .NET przy użyciu wtyczki JMeter i Perfmon. Używamy Perfmon ServerAgent do zbierania metryk procesora i pamięci w systemie Windows Server 2008 R2 (używanym dla aplikacji) i Windows Server 2016 R2 (używanym dla SQL Server 2016). ServerAgent działa dobrze w wersji 2008 R2, ale ServerAgent w wersji 2016 R2 ulega awarii zaraz po uruchomieniu narzędzia JMeter. Na obu serwerach działa ta sama wersja środowiska JRE 8.

Dziennik awarii:

#

# A fatal error has been detected by the Java Runtime Environment:

#

#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000010014ed4, pid=6340, tid=0x000000000000214c

#

# JRE version: Java(TM) SE Runtime Environment (8.0_261-b12) (build 1.8.0_261-b12)

# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.261-b12 mixed mode windows-amd64 compressed oops)

# Problematic frame:

# C  [sigar-amd64-winnt.dll+0x14ed4]

#

Poniżej znajdują się rozwiązania wypróbowane do tej pory i bez powodzenia.

  1. PerMon działa na serwerze i przechwytuje użycie procesora i pamięci.

  2. Nie ma problemów z portem lub ruchem sieciowym. Agent serwera odbiera żądanie na porcie 4444 na obu serwerach. Po awarii JMeter wyświetla błąd Timeout, ponieważ nie może połączyć się z agentem serwera.

  3. Próbowaliśmy wyłączenie DEP ustawiając go - Włącz funkcję DEP tylko dla istotnych programów i usług systemu Windows tylko

  4. Uruchomienie ServerAgent z uprawnieniami administratora nie ma żadnego wpływu. Nadal się zawiesza.

  5. Uruchomienie ServerAgent w trybie zgodności nie ma żadnego efektu. Nadal się zawiesza.

Odpowiedzi

2 DmitriT Sep 14 2020 at 13:55

Brzmi jak błąd SIGAR i niestety nic nie możesz z tym zrobić (chyba że chcesz zbadać problem sigar-amd64-winnt.dll, zaimplementować rozwiązanie, przesłać je do SIGAR upstream i zaktualizować JMeter PerfMon Plugin do poprawionej wersji)

W międzyczasie możesz rozważyć SSHMon Samples Collector jako obejście, zapoznaj się z artykułem Jak monitorować wykorzystanie zasobów serwera za pomocą JMeter's SSHMon Listener, aby uzyskać więcej informacji