Скорость Tomcat 8 со временем снижается - PullRequest
0 голосов
/ 18 сентября 2018

Я использую Tomcat 8.5 для размещения WAR, который используется для служб REST java.

В моей службе отдыха я создаю соединение и беру файл данных из нескольких частей.от пользователя, отсканируйте его с помощью модуля сканирования и верните результат.В начале, tomcat работает нормально и дает скорость почти 57-58 Мбит / с, но со временем ухудшается (снижается почти до половины за 5-8 минут)

Мой setenv.bat файл выглядит следующим образом.

"set "JAVA_OPTS=%JAVA_OPTS% -Xms1024m -Xmx5120m -XX:MaxMetaspaceSize=512m -Xincgc -server""

JVM использует ParNewGC для сборки мусора.

Мой server.xml файл выглядит следующим образом

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
        maxThreads="100" minSpareThreads="8" maxSpareThreads="10" acceptorThreadCount="16" acceptCount="500"/>



    <!--acceptCount :The maximum queue length for incoming connection requests when all possible request processing threads are in use. Any requests received when the queue is full will be refused. The default value is 100. 



    A "Connector" represents an endpoint by which requests are received
         and responses are returned. Documentation at :
         Java HTTP Connector: /docs/config/http.html
         Java AJP  Connector: /docs/config/ajp.html
         APR (HTTP/AJP) Connector: /docs/apr.html
         Define a non-SSL/TLS HTTP/1.1 Connector on port 8080
    -->
    <Connector executor="tomcatThreadPool" port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" socket.rxBufSize="10000000" socket.txBufSize="3000000" socket.directBuffer="true" />
    <!-- A "Connector" using the shared thread pool--> 

Поскольку мой ответ является полностью динамичным.Я не использую никакой тип кэширования .Пожалуйста, помогите мне с этим вопросом.

1 Ответ

0 голосов
/ 25 сентября 2018

Это может быть ошибка из-за большого количества открытых соединений tcp / ip . Попробуйте подключиться к серверу один раз и отправьте проверку данных для сокетов, когда вы увидите снижение производительности.

В Windows вы можете использовать netstat-an для проверки открытых сокетов.

...