JVM内存问题

6

请帮我解决一个问题。我有一台配置了Tomcat的CentOS服务器,内存为4GB,Tomcat占用大约1500MB内存。当Tomcat线程数达到最大值200时,我的机器会在某些时候挂起。我们必须重新启动应用服务器才能使其再次工作。

参数如下:

JAVA_OPTS="-server -Xss128k -Xms2048m -Xmx2048m -XX:MaxPermSize=512m -XX:NewRatio=3 -XX:SurvivorRatio=6 -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:CMSInitiatingOccupancyFraction=80 -Dfile.encoding=UTF8"

以下是JVM内存详细信息。 堆(Heap)
 PSYoungGen      total 435456K, used 73027K [0x00000000e0c00000, 0x00000000fb580000, 0x0000000100000000)
  eden space 435200K, 16% used [0x00000000e0c00000,0x00000000e5350c70,0x00000000fb500000)
  from space 256K, 0% used [0x00000000fb540000,0x00000000fb540000,0x00000000fb580000)
  to   space 256K, 88% used [0x00000000fb500000,0x00000000fb538600,0x00000000fb540000)
 PSOldGen        total 741376K, used 132680K [0x00000000a2400000, 0x00000000cf800000, 0x00000000e0c00000)
  object space 741376K, 17% used [0x00000000a2400000,0x00000000aa592030,0x00000000cf800000)
 PSPermGen       total 22912K, used 22880K [0x0000000092400000, 0x0000000093a60000, 0x00000000a2400000)
  object space 22912K, 99% used [0x0000000092400000,0x0000000093a58088,0x0000000093a60000)

Code Cache  [0x00002aaaab021000, 0x00002aaaab311000, 0x00002aaaae021000)
 total_blobs=1033 nmethods=670 adapters=317 free_code_cache=47372736 largest_free_block=12096

0x00002aaab41b7800 JavaThread ""http-apr-80"-exec-214" daemon [_thread_blocked, id=2636, stack(0x0000000043b06000,0x0000000043b27000)]

这个问题是否涉及编程组件,还是纯粹关于配置Tomcat? - NPE
我们也检查了与编程有关的组件。分析了使用堆转储和jhat创建的对象。我对内存大小定义和GC调优非常不确定。因此希望与其他人重新核实。 - Ashutosh
当线程被卡住时,可以生成线程转储以查看它们正在做什么。 可能存在一些死锁情况。 您可以使用jconsole来收集此信息。 - mrembisz
2
要在没有 jconsole 的情况下获取线程转储,您只需使用 kill -QUIT pid 命令,也可以参考此页面 - beny23
感谢mrembisz和beny23,我也会检查一下。我使用jstack来获取线程转储。一旦应用程序达到其最大线程数,就会获取线程转储并进行研究。 - Ashutosh
只是一个评论/问题,但为什么要使用“-Xms”预先分配这么多空间呢? - Jé Queue
1个回答

4

我认为这里不是内存问题。

我认为你只是在tomcat的内部线程池没有可用线程了。
如果tomcat的内部请求处理线程池没有任何空闲线程来处理更多工作,它就无法再处理请求,只会等待情况改变(可能永远等不到)。

我猜测你的一个或多个web应用程序的servlet/jsp至少有一个永远无法完成/返回

进行线程转储以确认此问题并轻松识别导致此问题的软件部分。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接