CPU 100% con Tomcat 7 en Debian 8

CPU 100% con Tomcat 7 en Debian 8

Tengo un problema con la configuración predeterminada de Tomcat 7 en Debian 8.

Problema: Obtuve la CPU de mi servidor, debido al proceso de Java, salté al 100% y permanecí allí durante horas, lo que hizo que el servidor fuera lento. Si reinicio el servidor Tomcat, la CPU vuelve al 1%. Después de algunas horas el problema vuelve a empezar.

Estado de la aplicación Java: No hay aplicaciones Java personalizadas instaladas en Tomcat, por lo que probablemente se trate de un problema de Tomcat.

Registros: Mirando catalina.out encontré este mensaje de error en correspondencia con el inicio del tono de la CPU

19 de enero de 2017 1:03:23 a.m. org.apache.coyote.http11.AbstractHttp11Proceso del procesador INFORMACIÓN: Error al analizar el encabezado de solicitud HTTP

Cómo replicar: después de reiniciar el servidor, intenté acceder a la página de inicio del servidor Tomcat usando https visitando esta URL a través de un navegador web.

https://dominio.com:8080

y listo, la CPU empieza a volverse loca y obtengo el registro como antes.

Qué significa: Esto significa que cualquiera que tenga una solicitud especial puede hacer DDOS en mi servidor.

Pregunta: ¿Existe alguna forma de resolver este problema sin cambiar mi distribución de Linux o las versiones empaquetadas de Tomcat utilizadas por apt?

Estoy usando una nueva imagen predeterminada de Debian 8 de Google Compute Engine. Tomcat 7.0.56 Java 1.7.0_111

Respuesta1

Tuve exactamente el mismo problema con Debian 8, tomca7.0.56.

Para mí, actualizar a la versión backport lo resolvió. Actualicé tomcat7, tomcat7-common, libtomcat7-java y libservlet3.0-java a la versión =7.0.73-1~bpo8+1 (así: apt-get install tomcat7=7.0.73-1~bpo8+1)

Creo que tenemos un problema de seguridad enorme con la versión actual de Tomcat 7.0.56 en Debian 8. Con la configuración estándar, todos los que simplemente llaman a https:// domain.tld:8080 provocan que la CPU se escale al 100% hasta que reinicies Tomcat. !

Respuesta2

En resumen, aplicarmétodo científico.

  • Descubra qué se escucha en el puerto 8080.
  • Descubra cómo está configurado.
  • Entiende lo que está haciendo.
  • Tomar las medidas apropiadas

Respuesta3

Tengo exactamente el mismo problema y las mismas configuraciones del sistema. Cuando reinicio el servidor, estará bien durante uno o dos días, luego nuevamente Tomcat7 usa aproximadamente el 99% de la CPU.

Esta vez hice esto:

parada del servicio tomcat7

Y todavía me funciona. No uso Java, como mencionaste, así que está bien para mí.

información relacionada