gpt4 book ai didi

java - TCPTransportConnection 内存泄漏

转载 作者:太空宇宙 更新时间:2023-11-04 10:24:12 24 4
gpt4 key购买 nike

我正在对我的应用超时内存泄漏进行故障排除。我启动我的应用程序并将其放置几天,没有发送任何请求。

应用程序是一个简单的应用程序,它有一些引发的 CFX 端点和监听它们的 Camel 路由。

当我启动应用程序时,堆快速增长并达到最大值,约为 300 Mb。

enter image description here

几天后,堆平均大小约为 500 Mb,最大约为 750 Mb。

这是分析结果:

enter image description here

我查看了大量幸存对象的堆栈跟踪:

enter image description here

所有这些都导致 TCPTransport.ConnectionHandler 或其共同封装类。

使用的库版本和pom:

Java 8 (1.8.0_172)

<properties>
<fabric8.version>2.3.7.fuse-000036-redhat-2</fabric8.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.fabric8</groupId>
<artifactId>fabric8-project-bom-camel-spring-boot</artifactId>
<version>${fabric8.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>

<!-- CAMEL dependency -->
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-servlet-starter</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-swagger-java-starter</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-jackson</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-cxf</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-http</artifactId>
</dependency>

<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-spring-boot-starter-jaxws</artifactId>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-ws-security</artifactId>
</dependency>
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-undertow</artifactId>
</dependency>
</dependencies>

这是 cfx-enpoint 配置:

   <cxf:cxfEndpoint address="/{{cxf.version}}/MyService"
endpointName="a:MyServicePort" id="MyService"
serviceClass="mypackage.here"
serviceName="a:MyService"
wsdlURL="my.wsdl" xmlns:a="http://localhost/v1/MyService">
<cxf:inInterceptors>
<ref bean="wssSecurityInterceptor"/>
</cxf:inInterceptors>
</cxf:cxfEndpoint>

有人知道内存泄漏在哪里吗?

最佳答案

确实看到了同样的问题,恢复到 tomcat。切换到 G1 有一点帮助,但它在 GC 的某些时间间隔减慢了事务响应时间。

关于java - TCPTransportConnection 内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50736798/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com