2010-02-18 12 views
13

sto affrontando sotto errori OutOfMemor, e JMeter smette di funzionare ....JMeter OutOfMemoryError

java.lang.OutOfMemoryError: Java heap space Dumping heap to 
    java_pid4412.hprof ... Heap dump file created [591747609 bytes in 
    71.244 secs] Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space Exception in thread 
    "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space 
    Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: 
    Java heap space Exception in thread "AWT-EventQueue-0" 
    java.lang.OutOfMemoryError: Java heap space 

come può essere risolto?
Il mio sistema dispone di specifiche molto buone come 16 GB di RAM, 2 processori Quad Core, con disco fisso da 146 GB.

Qualcuno può aiutarmi?

+0

Se si dispone di una buona macchina specifica quindi dovrai utilizzarla aumentando le dimensioni dell'heap o molte altre ragioni per questo errore, rimandalo per maggiori dettagli http://edu.yoursfriends.com/787/out-of-memory-error-in -jmeter –

risposta

13

Quanta memoria hai assegnato per la JVM? Da qualche parte 512 MB?

La configurazione è

java -Xms<initial heap size> -Xmx<maximum heap size> 
+0

Esatto -> dovrai controllare la dimensione heap assegnata al programma. –

4

si dovrebbe verificare se non si sta usando un albero risultato ascoltatore durante le prove con molti utenti.

Controllare le best practice di jmeter per evitare questo tipo di problemi.

saluti

5

Ho anche avuto questo problema e non importava quanto ho regolato la configurazione java -Xms<initial heap size> -Xmx<maximum heap size>, come ho sempre ha esaurito la memoria. Alla fine ho scoperto che l'esecuzione di JMeter in modalità GUI (in particolare con gli ascoltatori) causa un collo di bottiglia. Il modo migliore per utilizzare JMeter, in particolare per la prova estesa o l'esecuzione di più server slave, è in modalità non-GUI, che sembra qualcosa di simile:

jmeter -n -t testplan.jmx -r 

controlla questo link e leggere come fare il test a distanza il corretto modo: http://wiki.apache.org/jmeter/JMeterFAQ#How_to_do_remote_testing_the_.27proper_way.27.3F. Leggi la sezione sui test in remoto sul 'modo corretto'.

Spero che questo aiuti.

11

Il dump di heap mostra che si stanno utilizzando le impostazioni JMeter predefinite di 512 Mo. quindi, anche se si dispone di 16 GB, non le si utilizza.

Sostituire JVM predefinito in jmeter.bat alla giusta dimensione:

set HEAP=-server -Xms768m -Xmx768m -Xss128k 

set NEW=-XX:NewSize=1024m -XX:MaxNewSize=1024m 

un'occhiata anche a:

0

Anche se il server dispone di 16 GB di RAM, dimensione heap di default di JMeter 512 MB, Aumenta la dimensione dell'heap seguendo i passaggi seguenti

1. Open jmeter file using vi editor /text editor 
2. Search for "HEAP" 
3. Change minimum (-Xms) and Maximum (-Xmx) heap values as you required 
4. Save and quit (!wq enter) 
5. Start Jmeter by sh jmeter.sh or bash jmeter.bat or java -jar ApacheJMeter.jar 
0

Regolare la dimensione heap come detto nelle altre risposte e anche prendere alcune buone pratiche in considerazione

  • Durante l'esecuzione di un test (non durante la convalida ovviamente) utilizzare la modalità non-gui
  • Disattivare qualsiasi ascoltatore pesanti come ad Albero Risultato ma invece utilizzare un semplice scrittore di dati e analizzare i dati in seguito

Questi 2 elementi saranno già notevolmente aumentare le prestazioni e heap dimensioni utilizzo

7

Per ottimizzare OutOfMemoryError questi passaggi dovrebbe essere seguito:

  • Aumentare la Java Heap Size:

JMeter è un tool Java che gira con JVM. Per ottenere la massima capacità, è necessario fornire le risorse massime a JMeter durante l'esecuzione. In primo luogo, è necessario aumentare la dimensione dell'heap (all'interno della directory bin JMeter, otteniamo jmeter.bat/sh).

HEAP=-Xms512m –Xmx512m 

Significa che le dimensioni heap allocate di default sono minime 512 MB, massimo 512 MB. Configuralo come da te configurazione della propria macchina. Va inoltre tenuto presente che il sistema operativo richiede anche una certa quantità di memoria, quindi non dovrebbe essere allocata tutta la RAM fisica.

  • eseguire i test in non-GUI Modalità:

JMeter è Java GUI applicazione. Ha anche l'edizione non GUI che richiede molte risorse (CPU/RAM). Se eseguiamo Jmeter in modalità non GUI, esso consumerà risorse in meno e possiamo eseguire più thread.

  • Disattivare TUTTI gli ascoltatori durante l'esecuzione di prova. Sono solo per il debug e li usano per progettare lo script desiderato.

Gli ascoltatori devono essere disabilitati durante i test di carico.Abilitandoli, si generano overhead aggiuntivi, che consumano risorse preziose che sono necessarie per elementi più importanti del test.

  • Usa Up-to-Date Software:

Java e JMeter deve essere tenuto aggiornato.

  • decidere quali metriche necessarie per memorizzare:

Quando si tratta di richieste di memorizzazione e intestazioni di risposta, i risultati di asserzioni e dei dati di risposta può consumare molta memoria! Quindi è saggio cercare di non memorizzare questi valori su JMeter a meno che non sia assolutamente necessario.

  • Tweak JVM:

I seguenti argomenti JVM in script di avvio JMeter possono anche essere aggiunti o modificati:

1. Aggiungere tasso di allocazione di memoria:

NEW=-XX:NewSize=128m -XX:MaxNewSize=512m

Ciò significa che la memoria verrà aumentata a questo ritmo.

2.-server - commuta JVM in modalità "server" con ottimizzazione dei parametri di runtime. In questa modalità, JMeter inizia più lentamente, ma il throughput complessivo sarà più alto.

3.-d64 - Durante l'utilizzo di un sistema operativo a 64 bit, l'utilizzo di questo parametro consente esplicitamente a JVM di funzionare in modalità a 64 bit.

4.-XX:+UseConcMarkSweepGC - questo impone l'utilizzo del garbage collector CMS. Ridurrà il throughput complessivo ma porterà a una raccolta di dati inutili molto più corta della CPU.

5.-XX:+DisableExplicitGC - questo impedisce alle applicazioni di forzare costose raccolte di dati inutili e consente di evitare pause impreviste.

Per una comprensione migliore e più elaborata, questo blog su 9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure è utile.

1

È necessario modificare HEAP SIZE nel file jmeter.bat. Per prima cosa devi convertire le dimensioni da 2 GB o 6 GB (o le dimensioni che vuoi inserire) in MB e quindi salvarle e riavviare il file .bat.

valore impostato per "set MUCCHIO = - Xms512m -Xmx512m"

1

In Jmeter versione 3.x sono menzionate nel $ JMETER_HOME/bin/jemter.sh (jmeter.bat):

## Variabili d'ambiente:
## JVM_ARGS - java args facoltativo, ad es.-Dprop = val
## ad es.
## JVM_ARGS = "- Xms512m -Xmx512m" jmeter.sh ecc

così nel tuo caso è possibile impostare tanto quanto sufficiente per le vostre esigenze, per esempio:

JVM_ARGS="-Xms1024m -Xmx1024m"