Sie sind auf Seite 1von 34

Herramientas para extraer el mayor rendimiento de Liferay. El proceso de pruebas de rendimiento.

Sergio Snchez
Liferay Support Engineer sergio.sanchez@liferay.com

#LiferayPerformance

Social Media
#LRESP2012 #LiferayPerformance

#LiferayPerformance

Agenda
La necesidad de las pruebas de rendimiento Metodologa Herramientas

#LiferayPerformance

La necesidad de las pruebas de rendimiento

#LiferayPerformance

Escenario de partida
Para evitar llegar a las siguientes situaciones... por qu el portal se cae?

por qu el portal es lento?

Es conveniente prever un conjunto de pruebas de carga y su simultanea monitorizacin o posterior profiling de nuestra infraestructura de portal.

#LiferayPerformance

Metodologa

#LiferayPerformance

Metodologa
Proceso iterativo: varios ciclos de pruebas Proceso realimentado: las conclusiones del ciclo n se utilizan para el ciclo n+1 Cada ciclo de pruebas se puede asimilar a un ciclo PDCA: Inicio

PLAN DO CHECK ACT

#LiferayPerformance

Metodologa: Ciclo PDCA


El ciclo PDCA, tambin conocido como "Crculo de Deming'', es una estrategia de mejora continua de la calidad en cuatro pasos. Tambin se denomina espiral de mejora continua. Es muy utilizado por los Sistemas de Gestin de Calidad (SGC)

#LiferayPerformance

Fase INICIO: Definir Navegacin + QoS Objetivo

#LiferayPerformance

Fase INICIO. Navegacin


Definir un flujo de navegacin. Establecer las pginas sobre las que queremos hacer la medida Definido por el usuario del portal

#LiferayPerformance

Fase INICIO. Navegacin


Ejemplo de navegacin

Proceso de login y logout Visita a la portada (GET http://www.miportal.com/web/misitio) Login (POST a /c/portal/login) Logout (POST a /c/portal/logout)

1
5s

2
30s

3
2s

#LiferayPerformance

Fase INICIO. QoS Objetivo


Definir el objetivo de calidad del servicio (QoS) del sistema: Mnima latencia (latency)

Mxima atencin de peticiones (throughput) Consumo de recursos limitado (footprint)

#LiferayPerformance

Fase INICIO. QoS Objetivo


No podemos mejorar los 3 requisitos al mismo tiempo. Debemos escoger 1 2 de ellos. Al mejorar uno de los requisitos, se penaliza otro

#LiferayPerformance

Fase INICIO. QoS Objetivo


Ejemplo de QoS para un portal: Una latencia para el proceso de login inferior a 500ms para el 95% de las peticiones El tiempo de atencin de peticiones en un servidor bajo se carga se puede modelar como una DN Una DN cumple que Q 95 = +2

#LiferayPerformance

Fase INICIO: Definido Portada+login+logout + tiempo de respuesta login 95% < 500 ms

#LiferayPerformance

Fase PLAN. Recursos


Se inicia el ciclo de pruebas de carga Se definen los recursos a utilizar en la iteracin: Hilos concurrentes de los inyectores de carga

Parmetros de la JVM (-Xms, -Xmx, etc.) Parmetros de Liferay (portalext.properties)

#LiferayPerformance

Fase DO: Ejecutar pruebas de carga + Medir

#LiferayPerformance

Fase DO. Carga


Se ha de utilizar una herramienta de generacin de carga donde se defina la navegacin establecida en fase INICIO Es recomendable ubicar los inyectores de carga dentro de la subred donde se encuentre el portal

#LiferayPerformance

Fase DO. Medida


Se ha de utilizar herramientas de monitorizacin que permitan obtener una medida de los recursos: CPU

Memoria Hilos de ejecucin y monitores de la JVM Pool de conexiones a la base de datos Cachs Latencia de red Cdigo (en este caso se utilizar un Profiler)

#LiferayPerformance

Fase CHECK
El portal atiende el nmero de peticiones esperado? Se mantiene la QoS establecida?
SI NO

Ejecutar un nuevo ciclo de pruebas

Analizar los recursos limitantes externos, del entorno internos, cdigo

#LiferayPerformance

Fase CHECK. Recusos limitantes externos


CPU y memoria Se dedica un excesivo procesamiento a GC? Memoria

No se libera memoria en los ciclos de GC? Presentan interbloqueos en monitores de la JVM? El servidor de aplicaciones ofrece los hilos de ejecucin suficientes?

Hilos de ejecucin

#LiferayPerformance

Fase CHECK. Recusos limitantes externos


Pool de conexiones Se agotan las conexiones a la base de datos? Cachs

Se cachean adecuadamente los objetos y se replican en un entorno de cluster? Presenta la red una latencia excesiva?

Latencia de red

#LiferayPerformance

Fase CHECK. Recusos limitantes internos


Mtodos lentos Ninguno de los recursos del entorno se mostraba como limitante?

Es posible que algn mtodo del cdigo no est lo suficientemente optimizado. En este caso, ser necesario recurrir a un Profiler para establecer el tiempo de ejecucin de cada mtodo.

#LiferayPerformance

Fase ACT

La fase CHECK mostraba el lugar donde actuar. Se trata de un recurso limitante? Es posible redimensionarlo?
SI NO

Ejecutar un nuevo ciclo de pruebas

Es el propio cdigo el que limita el rendimiento?

#LiferayPerformance

Fase ACT
Es el propio cdigo el que limita el rendimiento?
SI NO

Analizar los resultados del profiler

Se ha alcanzado el lmite de la plataforma

#LiferayPerformance

Herramientas

#LiferayPerformance

Herramientas
Liferay utiliza un entorno de benchmarking para medir el rendimiento de la plataforma. Incluye las siguientes herramientas: Generacin del modelo de datos de Liferay: usuarios, contenidos Web, documentos, ...

Generacin de carga: The Grinder Medida:


Monitorizacin: Visual VM Profiler: Visual VM, YourKit

#LiferayPerformance

Generacin de carga
Permite definir una navegacin y el nmero de hilos concurrentes que realizarn la navegacin. Permite configurar varias mquinas para que se comporten como inyectores de carga. Ofrece datos estadsticos como: Peticiones atendidas por unidad de tiempo

La media del tiempo de las peticiones La desviacin tpica del tiempo de las peticiones

Alternativas: Apache JMeter, HP LoadRunner, etc.

#LiferayPerformance

Generacin de carga

Cumple este portal la QoS y el rendimiento esperado?

QoS=+ 2=262+ 2261 =783 ms


peticiones 3 Peticionestericas =hilos ( )=800 ( )=65 peticiones / segundo tiemponavegacin 37

#LiferayPerformance

Medida
Se distinguen dos tipos de herramientas para realizar la medida del rendimiento de una plataforma: Herramientas de monitorizacin. Permiten establecer medida en tiempo real.

Herramientas de profiling. Permiten tomar un snapshot de la ejecucin del portal durante un intervalo de tiempo para su posterior anlisis

#LiferayPerformance

Medida. Monitorizacin
CPU

Memoria

#LiferayPerformance

Medida. Monitorizacin
Cach

#LiferayPerformance

Medida. Profiling

Gracias por vuestra atencin!


Sergio Snchez
Liferay Support Engineer sergio.sanchez@liferay.com

Das könnte Ihnen auch gefallen