tomcat 10.1.16升级和java17升级以及spring 6.1.1后http响应缓慢

问题描述 投票:0回答:1

我已将我的java spring项目java版本从12升级到java 17,完全迁移到雅加达, 我还使用最新版本(10.1.16)将 spring 版本升级到 6.1.1,显然将 tomcat 升级到 tomcat 10

从那时起,http请求响应时间就会延迟,即使是最基本的http调用: “../服务名称/状态”

对于“/status”调用,响应时间大大缩短。 我升级的每个 Spring 服务的任何 http 调用都会发生这种情况。

下面是 pom.xml 片段,其中包含我用于项目中所有库的版本

<properties>
    <java.version>17</java.version>
    <maven.compiler.source>17</maven.compiler.source>
    <maven.compiler.target>17</maven.compiler.target>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.min-version>3.5.4</maven.min-version>

  
    <aws.version>1.12.296</aws.version>
    <aws-sdk.version>2.20.101</aws-sdk.version>
    <cglib.version>3.3.0</cglib.version>
    <commons-codec.version>1.14</commons-codec.version>
    <commons-collections.version>4.4</commons-collections.version>
    <commons-digester3>3.2</commons-digester3>
    <commons-io.version>2.11.0</commons-io.version>
    <commons-lang.version>3.10</commons-lang.version>
    <commons-logging.version>1.2</commons-logging.version>
    <commons-text.version>1.10.0</commons-text.version>
    <commons-validator.version>1.7</commons-validator.version>
    <commons-compress.version>1.22</commons-compress.version>
    <commons-csv.version>1.8</commons-csv.version>
    <dl4j.version>1.0.0-beta3</dl4j.version>
    <easymock.version>5.1.0</easymock.version>
    <elasticsearch-java.version>8.8.2</elasticsearch-java.version>
    <gson-extras.version>0.2.2</gson-extras.version>
    <gson.version>2.10.1</gson.version>
    <guava-retrying.version>2.0.0</guava-retrying.version>
    <guava.version>31.1-jre</guava.version>
    <hamcrest.version>2.2</hamcrest.version>
    <hdf5.version>1.10.4-${javacpp-presets.version}</hdf5.version>
    <httpasyncclient.version>4.1.5</httpasyncclient.version>
    <httpclient.version>4.5.14</httpclient.version>
    <httpclient5.version>5.2.1</httpclient5.version>
    <httpcore.version>4.4.16</httpcore.version>
    <itextpdf.version>5.5.13.1</itextpdf.version>
    <jackson-core.version>2.15.2</jackson-core.version>
    <java-string-similarity.version>1.2.1</java-string-similarity.version>
    <java-webSocket.version>1.5.3</java-webSocket.version>
    <javacpp-presets.version>1.4.4</javacpp-presets.version>
    <jakarta-activation-api.version>2.1.2</jakarta-activation-api.version>
    <jakarta-mail.version>2.1.2</jakarta-mail.version>
    <jakarta.servlet-api.version>6.0.0</jakarta.servlet-api.version>
    <jakarta.inject-api.version>2.0.0</jakarta.inject-api.version>
    <jakarta.version>2.0.0</jakarta.version>
    <jakarta.rs.version>3.1.0</jakarta.rs.version>
    <jakarta.xml.bind.version>4.0.0</jakarta.xml.bind.version>
    <jaxb.version>2.3.0</jaxb.version>
    <jakarta.xml.bind.version>4.0.0</jakarta.xml.bind.version>
    <jaxen.version>1.2.0</jaxen.version>
    <jboss-annotations-api.version>1.0.2.Final</jboss-annotations-api.version>
    <jboss-jaxrs-api_2.1_spec.version>2.0.2.Final</jboss-jaxrs-api_2.1_spec.version>
    <jboss-logging.version>3.4.1.Final</jboss-logging.version>
    <jcabi.version>2.1.0</jcabi.version>
    <jersey.version>3.1.2</jersey.version>
    <jersey-spring4.version>2.40</jersey-spring4.version>
    <jgit.version>6.5.0.202303070854-r</jgit.version>
    <joda-time.version>2.10.6</joda-time.version>
    <jslack.version>3.4.2</jslack.version>
    <json.version>20190722</json.version>
    <junit.version>4.13.2</junit.version>
    <keycloack.version>22.0.0</keycloack.version>
    <leptonica.version>1.77.0-${javacpp-presets.version}</leptonica.version>
    <log4j.version>2.20.0</log4j.version>
    <maven-artifact.version>3.6.3</maven-artifact.version>
    <mina.version>2.0.23</mina.version>
    <mkl-dnn.version>0.17.2-${javacpp-presets.version}</mkl-dnn.version>
    <mkl.version>2019.1-${javacpp-presets.version}</mkl.version>
    <mongodb.version>4.9.0</mongodb.version>
    <mongodb-crypt.version>1.8.0</mongodb-crypt.version>
    <nl.jqno.equalsverifier.version>3.15</nl.jqno.equalsverifier.version>
    <oauth-httpclient.version>20090913</oauth-httpclient.version>
    <oauth.version>20100527</oauth.version>
    <openblas.version>0.3.5-${javacpp-presets.version}</openblas.version>
    <opencv.version>4.0.1-${javacpp-presets.version}</opencv.version>
    <powermock-api-easymock.version>2.0.7</powermock-api-easymock.version>
    <powermock-module-junit4.version>2.0.7</powermock-module-junit4.version>
    <prometheus.version>0.8.1</prometheus.version>
    <rabbitmq.version>5.0.0</rabbitmq.version>
    <redis.version>3.3.0</redis.version>
    <redisson.version>3.24.3</redisson.version>
    <reflections.version>0.9.12</reflections.version>
    <resteasy-jaxrs.version>6.2.5.Final</resteasy-jaxrs.version>
    
    <slf4j.version>2.0.7</slf4j.version>
    <snakeyaml.version>2.0</snakeyaml.version>
    <socket.io-client.version>1.0.0</socket.io-client.version>
    <socketio.version>1.7.18</socketio.version>
    <spring.data.rabbit.version>3.1.0</spring.data.rabbit.version>
    <spring-data-redis.version>3.2.0</spring-data-redis.version>
    <spring-retry.version>2.0.2</spring-retry.version>
    <spring-security.version>6.1.1</spring-security.version>
    <spring.version>6.1.1</spring.version>
    <tomcat-exporter.version>0.0.17</tomcat-exporter.version>
    <tyrus-standalone-client.version>1.16</tyrus-standalone-client.version>

    <!-- override commons tomcat-exporter.version tomcat internal dependencies version, due to vulnerabilities -->
    <tomcat.version>10.1.16</tomcat.version>
    <!-- override commons commons-digester3.version tomcat internal dependencies version, due to vulnerabilities -->
    <commons-beanutils.version>1.9.4</commons-beanutils.version>
    <!-- override commons datavec-data-image internal dependencies version, due to vulnerabilities -->
    <imageio.version>3.9.4</imageio.version>
    <!-- override commons deeplearning4j-core internal dependencies version, due to vulnerabilities -->
    <jna.version>5.13.0</jna.version>
    
    <jacoco.exclusions>${jacoco.exclusions.commons}</jacoco.exclusions>
    <jacoco.coverage>0.76</jacoco.coverage>
    <jacoco.haltOnFailure>false</jacoco.haltOnFailure>
    <spring-boot.version>3.2.0</spring-boot.version>
    <springfox.version>3.0.0</springfox.version>
</properties>

我已经检查了我已经确认的http请求泄漏的可能性,因为http长响应时间在服务重新启动后立即发生..

java spring performance http tomcat
1个回答
0
投票

缺乏有关应用程序功能的信息,一些通用的 Java 性能调试步骤:

  1. 启动 VisualVM(免费)或您最喜欢的商业 Java 分析器。
  2. 附加到服务器的 Java 进程。
  3. 切换到采样器选项卡。
  4. 查看代码中花费最多时间的地方。
  5. 解决问题或使用新信息发布更具体的问题。

您还需要通过不断向您的应用程序发送请求来在服务器上创建一些负载,例如使用脚本。

© www.soinside.com 2019 - 2024. All rights reserved.