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é.
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.
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!
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
Il peut y avoir plusieurs raisons pour lesquelles JMeter consomme beaucoup de mémoire:
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.
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
de plus, vous devriez toujours envisager de lancer votre test en mode non-graphique.
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 ..___.