Tomcat 9 медленный ответ - PullRequest
       73

Tomcat 9 медленный ответ

0 голосов
/ 05 декабря 2018

У меня есть веб-приложение (jsp), которое отлично работало на Tomcat 8.0.46 в течение более года.Несколько недель назад мы обновились до Tomcat 9.0.10, после нескольких дней обновления tomcat отвечает на некоторые запросы с задержкой 8-16 секунд.

Я видел более 800 запросов / сек в журнале localhostaccess, поэтому я увеличил maxThreads до 512, как показано ниже, и max heap memory до 4096 МБ.

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
        maxThreads="512" minSpareThreads="4"/>

<Connector executor="tomcatThreadPool" port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

Но проблема не была решена, поэтомуЯ сравнил всю конфигурацию со старым Tomcat и обнаружил, что tomcat9 использует tomcat executor, где old не использовал его.повлияет ли время выполнения запроса на исполнителя?

Старая конфигурация tomcat

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

К вашему сведению, веб-приложение состоит только из jsps, и лишь немногие из них используются для взаимодействия с БД с использованием DBCP и дают XML-ответ.

Я не подозреваю, что пул соединений с БД уже использовался и не изменился.

CPU : Xenon
RAM: 8GB
OS : Window 2012 server
JDK : jdk1.8.0_144

Добавлена ​​продолжительность времени ответа в журнал доступа к локальному узлу, в некоторых запросах можно увидеть задержку, но запрос предшествуети после того, как имеют быстрый ответ в течение 15 миллисекунд (жирным шрифтом).

    10.50.29.27 - - [17/Dec/2018:09:27:23 -0500] "GET /App1/sendevent.jsp?TNAME=Transfer1 HTTP/1.1" 200 90 270BA450469B7AA71D22252711CA288A **0.015** http-nio-8080-exec-3
    10.50.29.26 - - [17/Dec/2018:09:27:23 -0500] "GET /App1/Start.jsp?ACTION=START&ID=3154583920&SID=$num$&SESSIONID=63AA673E-B6EF-447E-AAB9-3B5B7260EB03&ScriptID=$sid$&ScriptData=$scriptdata$ HTTP/1.1" 200 2948 D97741884AD1005359430A3307D5D44E **6.031** http-nio-8080-exec-5
    10.50.29.27 - - [17/Dec/2018:09:27:23 -0500] "GET /App1/sendevent.jsp?TNAME=Transfer1&TRANSFER_RESULT=S&LAST_ACTION=1&TRANSFER_REASON=connection.disconnect.transfer&TRANSFER_NOTE=undefined HTTP/1.1" 200 90 270BA450469B7AA71D22252711CA288A **0.000** http-nio-8080-exec-9

1 Ответ

0 голосов
/ 09 июля 2019

acceptorThreadCount=2 решил проблемы производительности для меня в двух случаях:

  1. Tomcat 8 под Debian на небольшой виртуальной машине (приложение XWiki)
  2. Tomcat 9 под Centos набольшой производственный сервер (приложение DSpace: jspui / xmlui / oai / solr).

Третий случай, когда я увидел достаточно высокую производительность, это:

Tomcat 8 под Windows Server 2008 Standard SP2 на очень маленьком старом сервере Dell (приложение DSpace: jspui / xmlui / oai / solr).Это предыдущий экземпляр дела 2, сохраняемый до конца перехода.
...