Spring RMI TCP连接内存消耗正在增加

时间:2014-07-14 15:16:47

标签: java spring memory jboss rmi

我有一个使用spring框架(使用SpringToolSuite)开发的webapp,它部署在JBoss 7.1.1.Final服务器上。 该应用程序运行良好一段时间,但一段时间后(取决于负载)jvm崩溃。我意识到如果java进程的内存消耗非常高,就会发生这种情况。有趣的是,堆(使用visualvm,java任务控制等进行检查)是稳定的而不是增加。也没有堆空间错误或类似的东西。 使用visualvm我看到一个名为“RMI TCP连接”的线程正在消耗最大量的内存,并且它每秒都会得到更多。如果我只运行Spring Tool Suite附带的默认spring应用程序,也会发生这种情况。

所以我的问题是什么导致这个线程消耗这么多内存,为什么不刷新/释放内存。

线程转储的跟踪如下:

"RMI TCP Connection(3)-10.1.3.19" #23 daemon prio=5 os_prio=0 tid=0x09b08c00 nid=0x1de4  runnable [0x0988f000]
   java.lang.Thread.State: RUNNABLE
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:150)
    at java.net.SocketInputStream.read(SocketInputStream.java:121)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:265)
    - locked <0x060c3768> (a java.io.BufferedInputStream)
    at java.io.FilterInputStream.read(FilterInputStream.java:83)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:539)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:812)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:671)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

   Locked ownable synchronizers:
    - <0x060c38e0> (a java.util.concurrent.ThreadPoolExecutor$Worker)

0 个答案:

没有答案