2012-07-01 16 views
5

Buenas tardes. Tengo un problema realmente desconcertante con Java VM en mi servidor CentOS 6 (64 bits). Es un servidor con una CPU de cuatro núcleos (con hyperthreading), 16 GB de RAM y 2 TB de espacio en el disco duro (en el software RAID1). Pensé que podría preguntar aquí porque, según las preguntas frecuentes, las preguntas sobre "herramientas comunes" utilizadas por los desarrolladores son apropiadas. Con suerte, alguien puede arrojar algo de luz sobre el tema.JVM siempre más allá del 100% de uso de la CPU en CentOS 6

Ejecutaré una pieza de software Java en el servidor, las 24 horas del día. Hoy temprano (detectado algunas horas después de la medianoche en la configuración regional del servidor, que es notable porque es el primer día del mes) recibí informes de usuarios que se conectaban a este software como clientes que repentinamente se habían vuelto inutilizables. La JVM nunca fue interrumpida o reiniciada. Había sido reiniciado por última vez hace solo unos días, y había estado funcionando normalmente desde entonces (usando aproximadamente 5% o menos de CPU, lo cual es normal).

Esta vez, cuando me registré el proceso, que era esencialmente engullir todo el tiempo de CPU que podría luchar de las otras aplicaciones que se ejecutan en el servidor (según lo informado por la parte superior), o, muy por encima del 100% (según lo informado por PD). Traté de detener y reiniciar la aplicación, pero tan pronto como se ejecutara, el uso de la CPU dispararía inmediatamente por encima del 100% nuevamente. El uso de memoria es normal. Experimenté con diferentes banderas JVM, sin éxito. Traté de descargar la última versión del software y hacer una nueva instalación, pero tampoco ayudó. Finalmente, traté de descargar otro, una pieza completamente distinta del software Java, pero cuando lo ejecuté en el servidor, sufría el mismo problema.

Cuando descargué el software y lo ejecuté en mi computadora, el uso de la CPU era normal. Por lo tanto, supongo que está mal en el servidor, pero no puedo imaginar lo que podría ser. La JVM del servidor está actualizada, a partir de un paquete de repositorio estándar (sin personalización alguna).

De java -version:

java version "1.6.0_24" 
OpenJDK Runtime Environment (IcedTea6 1.11.3) (rhel-1.48.1.11.3.el6_2-x86_64) 
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode) 

De uname -a:

2.6.32-131.21.1.el6.x86_64 #1 SMP Tue Nov 22 19:48:09 GMT 2011 x86_64 x86_64 x86_64 GNU/Linux 

De centos-release/redhat-release/sistema de liberación:

CentOS release 6.2 (Final) 

informes libres alrededor de 14.5 gb de RAM libre. df informa aproximadamente 1,4 tb de espacio libre en disco en la partición/home (donde se encuentra el software en cuestión y todos sus archivos).

¿Alguna idea? Por favor, pregunte si necesita más información, y siéntase libre de sugerir procedimientos para probar/verificar. Al buscar el problema, encontré varias instancias de gente que tenía problemas con JVM al robar toda la CPU en CentOS, pero ninguno de ellos parecía coincidir con mi problema.

+1

Hubo un segundo intercalar hoy. ¡Ahora los temporizadores están expirando un segundo * antes * de que se establezcan! Reiniciar. –

+0

Oh. Te avisaré si funciona para que puedas publicarlo como respuesta más tarde. – Protected

+0

Eso funcionó por completo. Gracias. Normalmente no puedo reiniciar el servidor sin tener una razón concreta primero, ya que interrumpe el servicio para todos los clientes. – Protected

Respuesta

8

Es posible que desee probar los siguientes comandos

# service ntpd stop; date -s "`date`";service ntpd start; 

tengo CentOS6 con el núcleo 2.6.32-220.el6.x86_64 y jdk1.7.0_04, se observó alta CPU y resuelto por comando anterior. no es necesario reiniciar el sistema operativo.

Esto parece ser un error con el núcleo de Linux como se describe en https://access.redhat.com/knowledge/solutions/154793. La solución anterior se describe en http://blog.wpkg.org/2012/07/01/java-leap-second-bug-30-june-1-july-2012-fix/

+0

Esto también me lo arregló con kernel 2.6.32-220.17.1.el6.x86_64 # 1 SMP y java "1.6.0_24" OpenJDK (IcedTea6 1.11.3) (rhel-1.48.1.11.3.el6_2-x86_64) (compilación 20.0-b12, modo mixto) – danio

0

puedo confirmar este problema está presente en Fedora 14, Tomcat 6 y OpenJDK 1.6. La solución de Mysticial también funcionó para mí.

uname -ar:

2.6.35.14-103.fc14.x86_64 #1 SMP Thu Oct 27 15:41:25 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux 

java -version:

java version "1.6.0_20" 
OpenJDK Runtime Environment (IcedTea6 1.9.10) (fedora-55.1.9.10.fc14-x86_64) 
OpenJDK 64-Bit Server VM (build 19.0-b09, mixed mode) 
1

también puedo confirmar el problema presente en RHEL 6, 7 Tomcat y Sun/Oracle Java 7 & Java 6.

ntpd stop; date; ntpd start comando funcionó.

uname: 
2.6.32-220.2.1.el6.x86_64 #1 SMP Fri Dec 23 02:21:33 CST 2011 x86_64 x86_64 x86_64 GNU/Linux 
Cuestiones relacionadas