jMeter ServerAgent se bloque dans Windows Server 2016

Sep 12 2020

Nous sommes en train de tester une application .NET à l'aide du plugin JMeter et Perfmon. Nous exécutons Perfmon ServerAgent pour collecter les métriques du processeur et de la mémoire dans Windows Server 2008 R2 (utilisé pour l'application) et Windows Server 2016 R2 (utilisé pour SQL Server 2016). ServerAgent fonctionne correctement en 2008 R2, mais le ServerAgent en 2016 R2 plante dès que le JMeter est démarré. Les deux serveurs exécutent la même version de JRE 8.

Journal des pannes:

#

# 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]

#

Voici les solutions essayées jusqu'à présent et sans succès.

  1. PerMon s'exécute sur le serveur et capture l'utilisation du processeur et de la mémoire.

  2. Il n'y a aucun problème avec le trafic du port ou du réseau. L'agent serveur reçoit la demande sur le port 4444 sur les deux serveurs.Après le crash, JMeter affiche une erreur de délai d'attente car il ne peut pas atteindre l'agent serveur.

  3. Nous avons essayé de désactiver DEP en le définissant sur - Activer DEP pour les programmes et services Windows essentiels uniquement

  4. L'exécution de ServerAgent avec le privilège Admin n'a aucun effet. Il plante toujours.

  5. L'exécution de ServerAgent en mode de compatibilité n'a aucun effet. Il plante toujours.

Réponses

2 DmitriT Sep 14 2020 at 13:55

Cela ressemble à un bogue SIGAR et malheureusement, vous ne pouvez rien en faire (à moins que vous ne souhaitiez enquêter sur le problème sigar-amd64-winnt.dll, implémenter la solution, contribuer à SIGAR en amont et mettre à jour le plugin JMeter PerfMon avec la version corrigée)

En attendant, vous pouvez considérer SSHMon Samples Collector comme solution de contournement, consultez l'article Comment surveiller l'utilisation des ressources du serveur avec SSHMon Listener de JMeter pour plus de détails