web-dev-qa-db-fra.com

test jmeter a échoué avec erreur de mémoire insuffisante

Lorsque vous essayez d’exécuter jMeter avec 50 utilisateurs ou plus, cela donne OutOfMemoryError:

2013/12/18 13:35:15 ERROR - jmeter.threads.JMeterThread: Error processing Assertion  Java.lang.OutOfMemoryError: Java heap space
2013/12/18 13:35:15 ERROR - jmeter.threads.JMeterThread: Error processing Assertion     Java.lang.OutOfMemoryError: Java heap space
2013/12/18 13:35:15 ERROR - jmeter.threads.JMeterThread: Error processing Assertion  Java.lang.OutOfMemoryError: Java heap space
2013/12/18 13:35:15 ERROR - jmeter.threads.JMeterThread: Error processing Assertion  Java.lang.OutOfMemoryError: Java heap space
2013/12/18 13:35:16 ERROR - jmeter.threads.JMeterThread: Test failed! Java.lang.OutOfMemoryError: Java heap space
2013/12/18 13:35:17 ERROR - jmeter.threads.JMeterThread: Test failed! 

J'ai essayé d'augmenter la taille du tas mais j'obtiens toujours la même erreur.
Même j'ai essayé de supprimer tous les auditeurs mais rien n'a changé.

15
shab

On dirait que vous manquez simplement de Java Heap Space. Il est normal que JMeter ait par défaut une très faible allocation de tas. C'est contrôlable via le paramètre -Xmx

Il y a une ligne dans le script jmeter.bat ou jmeter.sh qui recommande de lancer JMeter en tant que

JVM_ARGS="-Xms512m -Xmx512m" jmeter.sh

Vous pouvez essayer d'augmenter le tas maximal jusqu'à ce que vous ne receviez plus ces erreurs. Je recommanderais de le configurer à environ 80% de la RAM de votre matériel. 

Considérons également Article sur les astuces relatives aux performances et aux réglages JMeter pour vous assurer de désactiver les écouteurs consommateurs de mémoire, de ne pas sur-écrire, d’utiliser efficacement les post-processeurs, etc. 

36
Dmitri T

Après l’augmentation, la taille du tas dans le fichier bat supprime tout écouteur du plan de test, puis exécutez votre script et voyez la magie. Maintenant, vous n’obtiendrez pas erreur de mémoire insuffisante dans jmeter Amusez-vous!

9
Himanshu Tewari

dans le Jmeter 3.x. il y a deux étapes pour résoudre ce problème.

Étape 1, pour modifier la mémoire de la machine virtuelle Java dans le fichier de commandes JMeter

##   ==============================================
##   Environment variables:
##   JVM_ARGS - optional Java args, e.g. -Dprop=val
##
##   e.g.
##   JVM_ARGS="-Xms512m -Xmx512m" jmeter etc.
##
##   ==============================================

c'est une valeur par défaut dans jmeter.sh, selon votre environnement:

JVM_ARGS="-Xms512m -Xmx2048m"

dans le jmeter.bat:

set JVM_ARGS=-Xms512m -Xmx2048m

Étape 2, pour modifier HEAP = "- Xms512m -Xmx512m" dans le fichier de traitement par lots JMeter:

dans le jmeter.sh

HEAP="-Xms512m -Xmx2048m"

dans le jmeter.bat:

set HEAP=-Xms512m -Xmx2048m
2
Dang

Il peut y avoir plusieurs raisons pour lesquelles JMeter consomme beaucoup de mémoire:

  • Utilisation et abus de auditeurs d'interface utilisateur ,
  • Exécution d'un test en mode interface utilisateur: exécute le test en mode batch
  • JMeter SaveService mal configuré: enregistrez-vous les demandes et les réponses en JTL?
  • Trop de threads par générateur de charge JMeter? Généralement, moins de 1 000 par moteur devraient suffire, mais cela dépend également de la complexité du script. Voir Remote Testing _ pour exécuter JMeter en Mode distribué.

Tweaking the Heap n'est qu'un moyen de résoudre ces problèmes:

JVM_ARGS="-Xms512m -Xmx512m" jmeter.sh

Découvrez JMeter Out Of Memory: 12 façons de les résoudre } pour encore plus de astuces.

0
Jerome L

Mon seul liner pour cela sur un Mac (jmeter est bash script dans ce cas):

$ JVM_ARGS = "- Xms4g -Xmx4g -XX: NewSize = 4g -XX: MaxNewSize = 4g" && export JVM_ARGS && jmeter

0
Animesh

de plus, vous devriez toujours envisager de lancer votre test en mode non-graphique.

0
user6406388

Ouvrez bin/jmeter.bat sous Windows ou bin/jmeter.sh sous Linux, Recherchez cette ligne:

set HEAP=-Xms512m -Xmx512m

Cette variable est passée sous forme d'argument à jmeter au démarrage . Augmentez la taille par défaut comme ceci:

set HEAP=-Xms1024m -Xmx1024m

Vous pouvez ajouter plus d’espace si vous en avez et si jmeter a besoin de plus de ..___.

0
user4212639