Red de conocimiento informático - Aprendizaje de programación - Equilibrio de carga mediante pruebas de estrés de Jmeter

Equilibrio de carga mediante pruebas de estrés de Jmeter

Este artículo proviene de: /russ44/article/details/54729461

Jmeter es una aplicación Java que consume mucha CPU y memoria, por lo que cuando necesite simular miles de usuarios simultáneos, use una máquina. un poco inadecuado para simular a todos los usuarios simultáneos e incluso puede causar errores de desbordamiento de la memoria JAVA. Para permitir que la herramienta jmeter proporcione una mayor capacidad de carga, uno de los mecanismos breves y simples de jmeter es utilizar varias máquinas para generar cargas al mismo tiempo.

Entonces, ¿cómo implementar múltiples máquinas de carga ejecutándose al mismo tiempo? Por supuesto, no es posible que varias personas se sienten frente a varias máquinas de carga y griten inicio, y todos iniciarán jmeter al mismo tiempo. Este enfoque es muy estúpido y difícil de lograr una verdadera sincronización. De hecho, podemos controlar varios servidores jmeter remotos desde un único cliente jmeter y sincronizarlos para probar el servidor.

Al ejecutar jmeter de forma remota, los evaluadores pueden replicar pruebas en múltiples computadoras de gama baja, lo que simula una presión de servidor relativamente grande, y una instancia de cliente jmeter puede, en teoría, controlar cualquier número de instancias remotas de jmeter y recopilar datos de prueba a través de a ellos. Asimismo, tiene las siguientes características:

* ?Guardar datos de muestreo de prueba en la computadora local

* ?Administrar múltiples motores de ejecución jmeter desde una máquina.

* ?No es necesario copiar el plan de prueba a cada máquina, el cliente GUI de jmeter lo enviará a cada servidor de jmeter.

* ?Cada servidor remoto de jmeter ejecuta el mismo plan de prueba. Durante la ejecución, jmeter no equilibra la carga y cada servidor ejecuta el plan de prueba en su totalidad.

En un cliente JMeter con CPU de 1,4G Hz a 3GHz y 1GB de RAM, puede manejar de 100 a 300 subprocesos, excepto para servicios web donde el procesamiento XML requiere un uso intensivo de la CPU, que consumirá rápidamente toda la CPU. En términos generales, el rendimiento de las aplicaciones centradas en tecnología XML será del 10% al 25% del de las aplicaciones web ordinarias. Además, si toda la carga es generada por una sola máquina, las tarjetas de red y los puertos del switch pueden crear cuellos de botella, por lo que la cantidad de subprocesos para el cliente JMeter no debe exceder los 100.

Usar JMeter en modo remoto no consume más recursos que ejecutar la misma cantidad de pruebas sin GUI de forma independiente. Sin embargo, el uso de una gran cantidad de servidores remotos JMeter puede provocar una sobrecarga del cliente o congestión de la conexión de red.

Los pasos para usar varias máquinas para generar carga son los siguientes:

(1) Instale JMeter en todas las máquinas que se espera que ejecuten JMeter como generadores de carga e identifique uno de los máquinas como El controlador identifica otras máquinas como agentes.

(2) Ejecute el archivo jmeter-server en todas las máquinas agente (suponiendo que se utilicen dos máquinas (192.168.9.99 y 192.168.9.130) como agentes)

(3) En el control Busque el archivo jmeter.properties en el directorio bin de jmeter en la máquina del servidor y edite el archivo:

(4) Ejecute el archivo jmeter-server en todas las máquinas del agente (suponiendo que se utilicen dos máquinas ( 192.168.9.99 y 192.168 .9.130) Como archivo de propiedades del proxy, edite el archivo:

Buscar:

remote_hosts=127.0.0.1

Modificar a:

remote_hosts=192.168.9.99:1099,192.168.9.130:1099

Preste especial atención al puerto detrás de remote_hosts aquí.

p> Aquí debemos prestar especial atención a cierta información después del puerto, es decir, el puerto 1644 es el número de puerto RMI predeterminado para la comunicación entre el controlador jmeter y el agente. Sin embargo, durante la prueba, se encontró que la operación falló. establecido en 1644. Después de cambiarlo a 1099, la operación pasó. Además, también debemos prestar atención a si la máquina del agente tiene un firewall activado, etc.

(4) Inicie la aplicación jmeter de la máquina de control jmeter.bat, seleccione el menú "Ejecutar" --> "Inicio remoto" para iniciar el agente, o puede seleccionar directamente "Iniciar todo remoto" para iniciar el agente. También puede seleccionar "Iniciar todo de forma remota" para iniciar todos los agentes.

Problemas comunes encontrados:

1. Al controlar una máquina para que se ejecute en el lado del controlador, aparece el mensaje "Llamada incorrecta al host remoto".

Solución: compruebe si se ha iniciado jmeter-server en la máquina controlada o si la configuración de hosts_remotos en JMeter.properties es incorrecta.

2. Cuando la máquina del Agente inicia Jmeter_server.bat, aparecerá un mensaje en segundo plano: "No se puede encontrar ApacheJmeter_core.jar"

Solución: asegúrese de que jdk esté instalado en la máquina. Máquina del agente. Y configure las variables de entorno

3. Al iniciar de forma remota, se informará un error:

ERROR - jmeter.gui.action.RemoteStart: No se pudo inicializar el motor remoto de Java. rmi.ConnectException: Conexión rechazada al host: 127.0.0.1; la excepción anidada es:

java.net.ConnectException: Conexión rechazada: conectar

en sun.rmi.transport.tcp. TCPChannel.newConnection (Fuente desconocida)

en sun.rmi.server.UnicastRef.newCall(Fuente desconocida)

en sun.rmi.registry.TCPChannel.newConnection (Fuente desconocida)