cancel
Showing results for 
Search instead for 
Did you mean: 

Máximo número de threads

maperez
Confirmed Champ
Confirmed Champ

Buenas tardes,

En un servidor con alfresco 3.4.14 llevamos unas semanas teniendo problemas de bloqueo, que queda totalmente colgado y no queda otra que reiniciarlo.

En el log lo único que aparece es el siguiente mensaje:

INFO: Maximum number of threads (275) created for connector with address null and port 8443

Muy claro.... se alcanza el máximo definido en la variable db.pool.max. Pero por más que esa variable se amplie, hay "algo" que empieza a generar hebras y lo colapsa por muy grande que sea el valor.

Mi duda (seguro algo fácil, soy nueva por alfresco...) : ¿cómo puedo averiguar quien o qué está generando esas hebras? Este alfresco se utiliza por algunas aplicaciones externas que acceden con cmis, por si pudiera ayudar.

Gracias!!

Saludos.

1 ACCEPTED ANSWER

angelborroy
Community Manager Community Manager
Community Manager

Quizá no estás ampliando la variable correcta. Ese mensaje lo que indica es que estás alcanzando el máximo número de Threads en el conector HTTP de Tomcat por el puerto 8443. 

Échale un vistazo a este artículo de Toni: Alfresco Tuning Shortlist – : : blyx.com : : Blog : : Toni de la Fuente : : 

Básicamente tienes que incluir un parámetro maxThreads en el conector de Tomcat (server.xml)

Hyland Developer Evangelist

View answer in original post

9 REPLIES 9

angelborroy
Community Manager Community Manager
Community Manager

Quizá no estás ampliando la variable correcta. Ese mensaje lo que indica es que estás alcanzando el máximo número de Threads en el conector HTTP de Tomcat por el puerto 8443. 

Échale un vistazo a este artículo de Toni: Alfresco Tuning Shortlist – : : blyx.com : : Blog : : Toni de la Fuente : : 

Básicamente tienes que incluir un parámetro maxThreads en el conector de Tomcat (server.xml)

Hyland Developer Evangelist

angelborroy
Community Manager Community Manager
Community Manager

Por cierto, para monitorizar el uso de recursos del servidor puedes utilizar algo como la jconsole

Hyland Developer Evangelist

Gracias Angel.

Con jconsole se puede saber que aplicacion  genera cada Hebra?  necesitamos saber que causa que tengamos que aumentar los recursos, para saber si es normal o por el contrario es una situación anómala la que provoca este bloqueo.

angelborroy
Community Manager Community Manager
Community Manager

No creo que puedas conseguir esa información de una manera sencilla.

Para Enterprise tienes la herramienta Alfresco Support Tools (https://github.com/Alfresco/alfresco-support-tools), pero solo funciona a partir de 4.2

Quizá podrías lanzarle un kill -3 al proceso Java que ejecuta Tomcat y eso te volcará en el catalina.out lo que está haciendo cada thread en ese momento.

Hyland Developer Evangelist

Estoy viendo los comandos de java en línea de comandos (jps, jstat, jstack y jcmd) a ver si nos permiten monitorizar las hebras, fundamentalmente conocer el número de hebras en cada momento, su origen y estado.

Gracias! Saludos.

María

cristinamr
World-Class Innovator
World-Class Innovator

Me alegro que ya lo tengas encaminado 🙂 Uhmmm hace tiempo toqué JVisual y recuerdo que me daba trazas de hilos, entre otras cosas. Quizás pueda venirte bien también.

¡Un saludo!

--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc

cesarista
World-Class Innovator
World-Class Innovator

Una manera de monitorizar los threads y más cosas como la JVM es probe:

GitHub - psi-probe/psi-probe: Advanced manager and monitor for Apache Tomcat, forked from Lambda Pro... 

Saludos.

--C.

cristinamr
World-Class Innovator
World-Class Innovator

maperez _‌ Veo que hay un bug reconocido por Alfresco para la 3.4 que supuestamente está corregido en 3.4.8. (aquí puedes consultarlo). Creo que deberías abrir un ticket al soporte al respecto porque tiene pinta de que de nuevo se esté reproduciendo.

Cómo medida provisional podrías aumentar en Tomcat 6 el número máximo de threads (aquí tienes más información). Te dejo además más información acerca de cómo balancear la configuración y adaptarla a tus necesidades (aquí).

Un saludo,

Cristina.

--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc

Gracias Cristina por tu respuesta.

El bug no va a ser porque hace referencia a share y en nuestro caso actualmente no se utiliza.

Ya hemos ampliado el número máximo de hebras, además del de conexiones a base de datos. No hemos tenido bloqueos desde entonces, pero tampoco se han producido los picos de hebras que nos mostraba javamelody cuando los bloqueos se producían. Por lo que seguimos en observación intentando ver qué producía esos picos (hasta que no lo sepamos se pueden volver a producir....)