/ / Tomcat6 jk-8009 servizio con CPU al 100% - mysql, jsf, tomcat, ajp

Tomcat6 jk-8009 servizio che usa il 100% di CPU - mysql, jsf, tomcat, ajp

Ho un problema con tomcat6, quando "top -H", Ipuò vedere 3 thread Java in esecuzione al 100% della CPU. Ho cercato cosa stesse facendo Tomcat usando PSI-probe e nella scheda "Connettori", sotto jk-8009, posso vedere le seguenti 3 righe:

Fase IP remota Proc.time IN OUT URL
192.168.10.11 Servizio 20: 02: 17.105 522 B 0 B POST /configuration.jsf
192.168.10.11 Servizio 20: 02: 17.171 447 B 0 B POST /configuration.jsf
192.168.10.11 Servizio 20: 02: 17.167 447 B 0 B POST /configuration.jsf

Secondo il comando principale, i 3 processiche sono al 100% hanno funzionato per 1197 minuti, che sembrano corrispondere ai 20:02 minuti visualizzati nelle 3 righe sopra. Quindi sono abbastanza sicuro che questi 3 servizi siano il problema.

il /configuration.jsf che è indicato è la pagina principale dell'applicazione, quindi potrebbe essere qualsiasi cosa.

Il riavvio di Tomcat risolve il problema, ma devo scoprire qual è la causa del problema.

Non riesco a vedere alcun arresto anomalo nei registri. Mi sono guardato intorno su Internet e mi sembra che potrebbe essere un punto morto nel database.

L'applicazione utilizza JSF, Prime Faces. Il database è mysql

Qualcuno avrebbe qualche tipo di input in merito?

Modificare:

in /etc/tomcat6/server.xml, ho questa configurazione

    <!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

risposte:

0 per risposta № 1

L'utilizzo del connettore Java bloccante ha risolto questo problema in Tomcat 8.0.21:

<Connector port="8009" protocol="org.apache.coyote.ajp.AjpProtocol" redirectPort="8443" />

Ora la CPU rimane a circa lo 0,3% quando non viene utilizzato. utilizzando AjpNio2Protocol ha dato lo stesso risultato con la CPU ma nel mio test delle prestazioni AjpProtocol era un po 'più veloce.

https://tomcat.apache.org/tomcat-8.0-doc/config/ajp.html#Connector_Comparison