2010-02-18 23 views
13

estoy frente a errores a continuación OutOfMemor y JMeter deja de funcionar ....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 

cómo puede ser resuelto?
Mi sistema tiene unas especificaciones muy buenas, como 16 GB de RAM, 2 procesadores Quad Core, con 146 GB de disco duro.

¿Alguien me puede ayudar?

+0

Si tiene una buena máquina de especificación así que tendrás que utilizarla aumentando el tamaño de tu pila o muchas otras razones para este error, refiéraste para más detalles http://edu.yoursfriends.com/787/out-of-memory-error-in -jmeter –

Respuesta

13

¿Cuánta memoria ha asignado para la JVM? ¿En algún lugar alrededor de 512 MB?

La configuración es

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

Correcto -> necesitará verificar el tamaño del montón asignado al programa. –

4

Debe comprobar si usted no está usando un resultado oyente árbol durante sus pruebas con muchos usuarios.

Consulte las mejores prácticas de jmeter para evitar este tipo de problemas.

Saludos

5

también tuve este problema y no importaba lo mucho que me ajusté la configuración java -Xms<initial heap size> -Xmx<maximum heap size>, ya que siempre se quedó sin memoria. Al final descubrí que ejecutar JMeter en modo GUI (especialmente con oyentes) causa un cuello de botella. La mejor manera de utilizar JMeter, especialmente para pruebas ampliadas o correr múltiples servidores esclavos, se encuentra en modo no GUI, que es como la siguiente:

jmeter -n -t testplan.jmx -r 

Salida este enlace y leer cómo hacer las pruebas a distancia el correcto manera: http://wiki.apache.org/jmeter/JMeterFAQ#How_to_do_remote_testing_the_.27proper_way.27.3F. Lea la sección sobre pruebas remotas de la 'forma correcta'.

Espero que esto ayude.

11

Su volcado de Heap muestra que está utilizando la configuración predeterminada de JMeter de 512 Mo. , por lo que incluso si tiene 16 GB, no los está utilizando.

Reemplace la JVM predeterminada opcional en jmeter.bate para el tamaño correcto:

set HEAP=-server -Xms768m -Xmx768m -Xss128k 

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

También se fijan en:

0

A pesar de su servidor tiene 16 GB de RAM, el tamaño del montón predeterminado de JMeter 512 MB, aumente el tamaño del almacenamiento dinámico siguiendo los pasos siguientes

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

Ajustar el tamaño de la pila como se menciona en las otras respuestas y también tomar algunas de las mejores prácticas en cuenta

  • Cuando se ejecuta una prueba (no cuando se valide por supuesto) utiliza el modo de no-GUI
  • Desactivar cualquier oyente pesada, como resultado de vista de árbol, pero en lugar de utilizar una grabadora de datos simple y analizar los datos posteriormente

Estos 2 elementos que ya se incrementarán en gran medida su rendimiento y el montón el uso

7

Para optimizar el tamaño OutOfMemoryError estos pasos se deben seguir:

  • aumentar el tamaño montón de Java:

JMeter es una herramienta de Java que se ejecuta con JVM. Para obtener la capacidad máxima, debemos proporcionar los recursos máximos a JMeter durante la ejecución. En primer lugar, necesitamos aumentar tamaño del montón (directorio interno del bin JMeter, obtenemos jmeter.bat/sh).

HEAP=-Xms512m –Xmx512m 

Significa defecto asignado tamaño de la pila es de 512 MB mínimo, máximo de 512 MB. Configúrelo según su configuración de máquina propia . También se debe tener en cuenta que el sistema operativo también necesita cierta cantidad de memoria, por lo que no se debe asignar toda la memoria RAM física.

  • pruebas se ejecutan en modo no-GUI:

JMeter es Java GUI aplicación. También tiene la edición que no es de GUI, que consume muchos recursos (CPU/RAM). Si ejecutamos Jmeter en modo no GUI, consumirá menos recurso y podremos ejecutar más subprocesos.

  • Desactivar todos los oyentes durante la prueba. Solo son para la depuración y los utilizan para diseñar el guión deseado.

Los oyentes deben deshabilitarse durante las pruebas de carga.Permitirlos genera gastos generales adicionales, que consumen recursos valiosos que son necesarios para los elementos más importantes de su prueba.

  • Uso de Software Up-to-Date:

Java y JMeter debe mantenerse actualizado.

  • decidir qué métricas necesita almacenar:

Cuando se trata de solicitudes de almacenamiento y las cabeceras de respuesta, resultados renuncia y los datos de respuesta puede consumir una gran cantidad de memoria! Por lo tanto, es prudente tratar de no almacenar estos valores en JMeter a menos que sea absolutamente necesario.

  • Tweak JVM:

Los siguientes argumentos de JVM en scripts de inicio de JMeter también pueden ser añadidos o modificados:

1. Añadir tasa de asignación de memoria:

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

Esto significa que la memoria se incrementará a esta velocidad.

2.-server - esto cambia la JVM al modo "servidor" con la optimización de los parámetros de tiempo de ejecución. En este modo, JMeter comienza más lentamente, pero el rendimiento general será mayor.

3.-d64 - Durante el uso de un sistema operativo de 64 bits, el uso de este parámetro puede indicar explícitamente JVM para ejecutar en modo de 64 bits.

4.-XX:+UseConcMarkSweepGC - esto fuerza el uso del recolector de basura CMS. Se reducirá el rendimiento general, pero conduce a colecciones de basura mucho más intensivas de la CPU.

5.-XX:+DisableExplicitGC - esto impide que las aplicaciones forzando recolecciones de elementos costosos y ayuda a evitar pausas inesperadas.

Para una comprensión mejor y más elaborada, este blog sobre 9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure es útil.

1

Tiene que cambiar HEAP SIZE en el archivo jmeter.bat. Primero debe convertir el tamaño de 2GB o 6GB (o el tamaño que desee) en mb y luego guardarlo y reiniciar el archivo .bat.

valor establecido para "fijar PAFH = - Xms512m -Xmx512m"

1

En Jmeter versión 3.x se menciona en JMETER_HOME $/bin/jemter.sh (jmeter.bat):

## Variables de entorno:
## JVM_ARGS - args java opcionales, por ejemplo-Drop = val
## p. Ej.
## JVM_ARGS = "- Xms512m -Xmx512m" jmeter.sh etc.

por lo que en su caso se puede establecer la medida de lo suficiente para sus necesidades, por ejemplo:

JVM_ARGS="-Xms1024m -Xmx1024m"