/ / Tomcat6 jk-8009 услуга, използваща 100% CPU - mysql, jsf, tomcat, ajp

Tomcat6 jk-8009 услуга, използваща 100% CPU - mysql, jsf, tomcat, ajp

Имам проблем с tomcat6, когато аз "топ-H", азмогат да видят 3 нишки в Java, работещи на 100% CPU. Погледнах какво прави кота използвайки PSI-сонда и в раздела "Connectors" под jk-8009 виждам следните три реда:

Отдалечен IP етап Proc.time IN OUT URL
192.168.10.11 Услуга 20: 02: 17.105 522 B 0 B POST /configuration.jsf
192.168.10.11 Услуга 20: 02: 17.171 447 B 0 B POST /configuration.jsf
192.168.10.11 Услуга 20: 02: 17.167 447 B 0 B POST /configuration.jsf

Според горната команда, трите процесакоито са на 100% са работили в продължение на 1197 минути, което изглежда съответства на 20:02 минути, показани в трите реда по-горе. Така че съм сигурен, че тези 3 услуги са проблем.

/configuration.jsf, който е посочен, е главната страница на приложението, така че може да бъде всичко.

Рестартирането на tomcat решава проблема, но аз трябва да разбера каква е причината за проблема.

Не виждам катастрофа в трупите. Погледнах наоколо в интернет и ми се струва, че може да е задънена улица в базата данни.

Приложението използва JSF, Prime Faces. Базата данни е mysql

Някой ще има ли някаква информация по въпроса?

Редактиране:

в /etc/tomcat6/server.xml, имам тази конфигурация

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

Отговори:

0 за отговор № 1

Използването на блокиращия Java конектор разреши това за мен в Tomcat 8.0.21:

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

Сега процесорът остава на около 0,3%, когато няма използване. Използвайки AjpNio2Protocol даде същия резултат с процесора, но в моя тест за производителност AjpProtocol беше малко по-бърз.

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