Fórum

Clusterizar Liferay con ehcache

thumbnail
Eduardo P García, modificado 12 Anos atrás.

Clusterizar Liferay con ehcache

New Member Postagens: 10 Data de Entrada: 01/10/09 Postagens Recentes
Buenas,

Hemos montado una instalación Liferay 6.0.4 CE en clúster con ehcache configurada en modo multi-vm-clustered. Los nodos se ven y la replicación funciona, pero cuando ejecutamos test de rendimiento (i.e. simulación de alta carga con Jmeter) observamos que:

1. Hay mucho tráfico entre los miembros del clúster. Deducimos que es debido a la replicación de caché, pero la CPU permanece alta continuamente. Da la impresión que la replica no termina nunca, a pesar de que no se realizan cambios en el portal durante la simulación, es decir, todo debería quedar cacheado rápidamente. Estamos usando la replicación RMI por defecto.

2. Monitorizando los beans de ehcache mediante VisualVM, encontramos que algunos beans, en especial el de com.liferay.portal.velocity.LiferayResourceCacheUtil, tiene muchas faltas de caché.

3. Si añadimos nuevos nodos al clúster, el rendimiento general incluso empeora.

¿Alguien con experiencia en este tipo de problemas podría por favor darnos algún consejo? La documentación de clustering no incluye apenas información para el tratamiento de errores.

Gracias a todos por adelantado
thumbnail
Juan Gonzalez P, modificado 12 Anos atrás.

RE: Clusterizar Liferay con ehcache

Liferay Legend Postagens: 3089 Data de Entrada: 28/10/08 Postagens Recentes
Prueba con la version 6.0.5 o 6.0.6, es bastante posible que haya habido mejoras respecto al cluster link.

¿No hay ningun mensaje indicativo en los logs? A lo mejor podriais subir el nivel del log en las clases implicadas para verlo mejor.

Si la CPU esta alta puede ser debido a falta de memoria, y mucha ejecucion de garbage collector. Es posible que necesitéis aumentar el HEAP y/o el recolector de basura para mejorar la eficiencia.

Tambien a lo mejor se podría tunear el RMI (yo uso Multicast).
thumbnail
Fernando Nubla Durango, modificado 12 Anos atrás.

RE: Clusterizar Liferay con ehcache

New Member Postagens: 22 Data de Entrada: 01/09/09 Postagens Recentes
yo utlizo cluster link para replicar la cache. Es la opción que mejores resultados nos dió en nuestras pruebas.
Hay un plugin oficial llamado ehcache-cluster-web que simplifica la configuración.
Desconozco si está disponible también en la versión CE....

Un saludo!
thumbnail
Eduardo P García, modificado 12 Anos atrás.

RE: Clusterizar Liferay con ehcache

New Member Postagens: 10 Data de Entrada: 01/10/09 Postagens Recentes
Hola Fernando,

Muchas gracias por tu respuesta. Creo que de momento Cluster Link no está disponible para la CE salvo para índices, o al menos eso es lo que se deduce en http://www.liferay.com/es/web/shuyang.zhou/blog/-/blogs/5229206. Para la caché eh sólo se puede usar RMI o JGroups.

Disponemos de una evaluación de EE con la que podemos probar la configuración de Cluster Link para clúster con el .war que mencionas, pero no hemos encontrado documentación al respecto. ¿Podrías por favor indicarme cómo lo habéis hecho en vuestro caso?

Muchas gracias.
thumbnail
Fernando Nubla Durango, modificado 12 Anos atrás.

RE: Clusterizar Liferay con ehcache

New Member Postagens: 22 Data de Entrada: 01/09/09 Postagens Recentes
Hola Eduardo,

La configuración básica es bastante sencilla, desplegar el plugin y activarlo desde el portal-ext.properties
te pego una configuración tanto para los índices y ehcache con clusterlink

un saludo

##
## Cluster Link
##
    ehcache.cluster.link.replication.enabled=true        
    #para comprobar que funciona correctamente
    ehcache.statistics.enabled=true

    #
    # Set this to true to enable the cluster link. This is required if you want
    # to cluster indexing and other features that depend the cluster link.
    #
    cluster.link.enabled=true
    lucene.replicate.write=true
    #
    # Set this property to autodetect the default outgoing IP address so that
    # JGroups can bind to it. The property must point to an address that is
    # accessible to the portal server, www.google.com or your local gateway.
    #
    cluster.link.autodetect.address=XXXXXXX:yyyy

    # Definir las ip y puertos deseados, estos son los de por defecto (portal.properties)
    #
    # Consolidate multicast address and port settings in one location for easier
    # maintenance. These settings must correlate to your physical network
    # configuration (i.e. firewall, switch, and other network hardware matter)
    # to ensure speedy and accurate communication across a cluster.
    #
    # Each address and port combination represent a conversation that is made
    # between different nodes. If they are not unique or correctly set, there
    # will be a potential of unnecessary network traffic that may cause slower
    # updates or inaccurate updates.
    #

    #
    # See the property "cluster.link.channel.properties.control".
    #
    multicast.group.address["cluster-link-control"]=239.255.0.1
    multicast.group.port["cluster-link-control"]=23301

    #
    # See the properties "cluster.link.channel.properties.transport.0" and
    # "cluster.link.channel.system.properties".
    #
    multicast.group.address["cluster-link-udp"]=239.255.0.2
    multicast.group.port["cluster-link-udp"]=23302

    #
    # See the property "cluster.link.channel.system.properties".
    #
    multicast.group.address["cluster-link-mping"]=239.255.0.3
    multicast.group.port["cluster-link-mping"]=23303

    #
    # See the properties "net.sf.ehcache.configurationResourceName" and
    # "net.sf.ehcache.configurationResourceName.peerProviderProperties".
    #
    multicast.group.address["hibernate"]=239.255.0.4
    multicast.group.port["hibernate"]=23304

    #
    # See the properties "ehcache.multi.vm.config.location" and
    # "ehcache.multi.vm.config.location.peerProviderProperties".
    #
    multicast.group.address["multi-vm"]=239.255.0.5
    multicast.group.port["multi-vm"]=23305
Sergio Sanchez, modificado 12 Anos atrás.

RE: Clusterizar Liferay con ehcache

Junior Member Postagens: 41 Data de Entrada: 03/02/11 Postagens Recentes
Hola, se podría intentar probar la replicación de la ehcache con multicast en lugar de la comunicación punto a punto. No sé si esto lo habrás probado ya.
También, deshabilitar las cachés para los objetos que no utilices.

Si lo consideras, comentanos si ves alguna mejora en el rendimiento.
Juan Carlos Toledo Baute, modificado 10 Anos atrás.

RE: Clusterizar Liferay con ehcache

Junior Member Postagens: 50 Data de Entrada: 30/03/11 Postagens Recentes
Hola

Quiero activar el Cluster EHCache por defecto (RMI) en Lifeary 6.1.1 ce cga2. ¿ Vale con esta configuracion ?

liferay.home=/datos/lportales/home

# Repositorio
dl.store.impl=com.liferay.portlet.documentlibrary.store.AdvancedFileSystemStore
dl.store.file.system.root.dir=/datos/lportales/home/document_library

#Indice Lucene
lucene.dir=/opt/jboss/lportales-lucene
cluster.link.enabled=true
lucene.replicate.write=true

#EhCache en cluster cfg por defecto
ehcache.cluster.link.replication.enabled=true
#Para permitir estadisticas
ehcache.statistics.enabled=true


¿ O necesito especificar ?


#EhCache
net.sf.ehcache.configurationResourceName=/dgtnt-ehcache/hibernate-clustered.xml
ehcache.multi.vm.config.location=/dgtnt-ehcache/liferay-multi-vm-clustered.xml

Saludos
thumbnail
Juan Gonzalez, modificado 10 Anos atrás.

RE: Clusterizar Liferay con ehcache

Liferay Legend Postagens: 3089 Data de Entrada: 28/10/08 Postagens Recentes
Juan Carlos Toledo Baute:
Hola

Quiero activar el Cluster EHCache por defecto (RMI) en Lifeary 6.1.1 ce cga2. ¿ Vale con esta configuracion ?

liferay.home=/datos/lportales/home

# Repositorio
dl.store.impl=com.liferay.portlet.documentlibrary.store.AdvancedFileSystemStore
dl.store.file.system.root.dir=/datos/lportales/home/document_library

#Indice Lucene
lucene.dir=/opt/jboss/lportales-lucene
cluster.link.enabled=true
lucene.replicate.write=true

#EhCache en cluster cfg por defecto
ehcache.cluster.link.replication.enabled=true
#Para permitir estadisticas
ehcache.statistics.enabled=true


¿ O necesito especificar ?


#EhCache
net.sf.ehcache.configurationResourceName=/dgtnt-ehcache/hibernate-clustered.xml
ehcache.multi.vm.config.location=/dgtnt-ehcache/liferay-multi-vm-clustered.xml

Saludos


Hola Juan Carlos,

En principio no hace falta que especifiques las propiedades de net.sf.ehcache.configurationResourceName ni ehcache.multi.vm.config. a menos que quieras "tunear" los valores por defecto.

Solo ten en cuenta que el directorio de la propiedad:


dl.store.file.system.root.dir



debe ser el mismo (estar compartido) por todos los nodos del cluster,

Además, en tu caso los índices tienen que almacenarse de forma separada entre los nodos, por lo que el directorio de:


lucene.dir



debe ser accedido sólamente por un nodo.

Espero haberme explicado bien :-).

Pruebalo y si tienes algun problema coméntalo.
thumbnail
Jpe Franco, modificado 10 Anos atrás.

RE: Clusterizar Liferay con ehcache

New Member Postagens: 6 Data de Entrada: 29/08/12 Postagens Recentes
En mi caso tengo:
- Versión LiferRay 6.1.0 CE GA1 y Java(TM) SE Runtime Environment (build 1.6.0_38-b05)
- Balanceador LVS
- 2 Nodos Apache Web con sticky sessions y configuración mod_jk con load balancer
- 2 Nodos Tomcat configurados en cluster con replicación con de sesión.
- 1 Nodo con BD Oracle 10g XE y servicio NFS Sever V4 para el contenido multimedia
- Se usa configuración Lucene en cada nodo tomcat con persistencia de los índices en filesystem local.

He probado la configuración cluster que se comenta en el post de ehcache por defecto y los contenidos no se sincronizan, es decir al entrar en un nodo y ocultar una página el otro nodo sigue mostrando la misma, sin embargo al poner ehcache.cluster.link.replication.enabled=false funciona bien la sincronización.

Me gustaría tener ehcache a true, ya que no se que otro efecto puede tener si esta a false, entiendo que no uso cache de segundo nivel en las consultas con el problema de rendimiento que implica.

También tenemos un error que no sabemos si esta relacionado con tener a false esa propiedad.

Adjunto imagen muy representativa de lo que nos pasa, en resumen cada cierto tiempo no se muestran todas las páginas en el backoffice, pero están si están en bd: http://wikis.gfi.es/captura-paginas-bd.png

Alguna idea?

Atentamente,
Jpe Franco | @jpefranco
thumbnail
Juan Gonzalez, modificado 10 Anos atrás.

RE: Clusterizar Liferay con ehcache

Liferay Legend Postagens: 3089 Data de Entrada: 28/10/08 Postagens Recentes
Hola Jesus,

Respecto a la propiedad:

ehcache.cluster.link.replication.enabled

en vuestro caso no deberia existir, ya que esa propiedad es valida si disponéis del plugin ehcache-cluster-web, sólo disponible para la versión EE.

Las únicas propiedades que os haria falta activar serían:

cluster.link.enabled=true


Dependiendo de si los índices de lucene están en directorios distintos (como es recomendable), habría que activar esta propiedad:

lucene.replicate.write=true


Respecto a las páginas, no es descartable que Apache tenga algo que ver, aunque yo probaría primero lo anterior.
thumbnail
Fernando Nubla Durango, modificado 10 Anos atrás.

RE: Clusterizar Liferay con ehcache

New Member Postagens: 22 Data de Entrada: 01/09/09 Postagens Recentes
Hola,

Como bien dice Juan, la configuración que puse en este hilo como ejemplo es para la versión enterprise de Liferay, para configurar eh-cache a través de clusterlink es necesario desplegar un portlet específico.
De todas formas, no tienes por qué usar clusterlink para la cache, puedes configurarla añadiendo las siguientes propiedad en el portal-ext.properties
ehcache.multi.vm.config.location=/ehcache/liferay-multi-vm-clustered.xml
net.sf.ehcache.configurationResourceName=/ehcache/hibernate-clustered.xml

Nos cuentas si se soluciona tu problema ;)

Un saludo,
thumbnail
Jpe Franco, modificado 10 Anos atrás.

RE: Clusterizar Liferay con ehcache

New Member Postagens: 6 Data de Entrada: 29/08/12 Postagens Recentes
Gracias Fernado y Juan. Tengo definido las propiedades que comentáis y efectivamente al no poder usar el plugin tengo a false la propiedad su propiedad. También he probado eliminando su propiedad y así dejar claro que se use cluster ehcache y lucene via RMI. Pero nada.

No os parece extraño que las páginas estén en bd y que eran un momento dado ya no se muestren en el backoffice? Y más extraño siempre a partir de la posición 10 tanto en el padre como en los submenus.

Atentamente,
Jpe Franco | @jpefranco
thumbnail
Juan Gonzalez, modificado 10 Anos atrás.

RE: Clusterizar Liferay con ehcache

Liferay Legend Postagens: 3089 Data de Entrada: 28/10/08 Postagens Recentes
Hola Jesus,

En la versión que tienes hay varias incidencias sobre el tree de páginas.

Podrías probar en la ultima versión (6.1.1GA2) para comprobar si se sigue reproduciendo.
thumbnail
Jpe Franco, modificado 10 Anos atrás.

RE: Clusterizar Liferay con ehcache

New Member Postagens: 6 Data de Entrada: 29/08/12 Postagens Recentes
Estamos realizando la migración a la versión 6.1.1 CE GA2 para ver si no se reproduce el error en el árbol de páginas en el backoffice. En paralelo también tenemos un entorno 6.1.0 CE GA1 sin cluster (un solo nodo) y hemos visto que también se ha reproducido el error. La actividad que ha tenido es la común en estos casos: cambios de contenidos, subida de contenido multimedia, algún despliegue nuestro de desarrollo portlet, ...

No sabemos como reproducirlo, como puede ocurrir en otros casos.

Aporto esta información, ya que ayuda a descartar culaquier problema de sincronización en el cluster y así ver si efectivamente es un bug de producto o puede ser algo ligado a los desarrollos de portlet, hook, etc... o un mal uso del backoffice en relación a la gestión de las páginas.

Atentamente,
Jpe Franco | @jpefranco
thumbnail
Jpe Franco, modificado 10 Anos atrás.

RE: Clusterizar Liferay con ehcache

New Member Postagens: 6 Data de Entrada: 29/08/12 Postagens Recentes
Ya hemos actualizado a la versión 6.1.1 CE GA2 y de momento no se ha reproducido el error que teníamos con el portlet del árbol en el backoffice.

Ahora estamos interesado en pasar a la versión 6.1.20 EE por temas de soporte futuro. ¿

Que pasos habría que seguir? ¿Similar a los pasos que hemos seguido de la 6.1.0 CE GA1 a la 6.1.1 CE GA2, es decir descargar la nueva versión y remplazar la actual, actualizar config, etc..?

Gracias de antemano.

Atentamente,
Jpe Franco | @jpefranco
thumbnail
Juan Gonzalez, modificado 10 Anos atrás.

RE: Clusterizar Liferay con ehcache

Liferay Legend Postagens: 3089 Data de Entrada: 28/10/08 Postagens Recentes
Hola Jesús,

Para esta version EE dispones de soporte por parte de Liferay.

Para más información, contacta con Liferay España:

http://www.liferay.com/es/contact-us
thumbnail
Jpe Franco, modificado 10 Anos atrás.

RE: Clusterizar Liferay con ehcache

New Member Postagens: 6 Data de Entrada: 29/08/12 Postagens Recentes
Gracias Juan por tu rápida respuesta. Pero la idea es probar primero con la versión 6.1.20 EE Trial (30 días) y ver que resultados tenemos. Es la razón por la que antes de contactar con soporte me gustaría conocer los pasos a seguir.

Atentamente,
Jpe Franco | @jpefranco