Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Tomcat6线程问题_Java_Unix_Tomcat_Tomcat6 - Fatal编程技术网

Java Tomcat6线程问题

Java Tomcat6线程问题,java,unix,tomcat,tomcat6,Java,Unix,Tomcat,Tomcat6,您好,我们已经将java web应用程序迁移到java 1.6、tomcat 6和oracle 11g上 但现在我们面临的问题是,一段时间后,网站将关闭: 我们发现java堆内存不足错误,许多线程处于等待状态。 tomcat被绞死了,我们的网站也被关闭了 信息:为地址为null且端口为80的连接器创建的最大线程数(200) 2013年2月21日晚上9:56:04 以下是线程日志: 日志 “主”优先级=10 tid=0x09f67c00 nid=0x2d51可运行[0xf7622000] java

您好,我们已经将java web应用程序迁移到java 1.6、tomcat 6和oracle 11g上 但现在我们面临的问题是,一段时间后,网站将关闭: 我们发现java堆内存不足错误,许多线程处于等待状态。 tomcat被绞死了,我们的网站也被关闭了

信息:为地址为null且端口为80的连接器创建的最大线程数(200) 2013年2月21日晚上9:56:04 以下是线程日志:

日志
“主”优先级=10 tid=0x09f67c00 nid=0x2d51可运行[0xf7622000]
java.lang.Thread.State:可运行
位于java.net.PlainSocketImpl.socketAccept(本机方法)
在java.net.PlainSocketImpl.accept(PlainSocketImpl.java:390)
-锁定(一个java.net.socksocketimpl)
“VM线程”优先级=10 tid=0x09f8ac00 nid=0x2d52可运行
“VM定期任务线程”优先级=10 tid=0x09f9cc00 nid=0x2d58等待状态
JNI全球参考:1074
堆
def新一代总计78656K,使用78533K[0xbf760000,0xc4cb0000,0xc4cb0000)
伊甸园空间69952K,100%使用[0xbf760000,0xc3bb0000,0xc3bb0000)
从空间8704K开始,98%已使用[0xc4430000、0xc4c91428、0xc4cb0000)
到空间8704K,0%已使用[0xc3bb0000,0xc3bb0000,0xc4430000)
终身发电总计174784K,使用174783K[0xc4cb0000、0xcf760000、0xcf760000)
空间174784K,99%已使用[0xc4cb0000,0xcf75fff8,0xcf760000,0xcf760000)
压实永久发电机总计33792K,使用33647K[0xcf760000、0xd1860000、0xd3760000)
空间33792K,99%已使用[0xcf760000,0xd183be68,0xd183c000,0xd1860000)
ro空间10240K,61%已使用[0xd3760000、0xd3d86298、0xd3d86400、0xd4160000)
rw空间12288K,60%已使用[0xD41600000、0xd4896cb8、0xd4896e00、0xd4d60000)
结束 请导游

谢谢,
Aru

看起来perm gen空间已全部使用。您是否尝试将其增加到-XX:MaxPermSize=128M?

根据您发布的日志,上面评论中提到的jvm设置(在
JAVA\u选项中定义)根本不受尊重/使用。
(例如,使用permgen的
32m
代替指定的
512m

我猜您刚刚使用了错误的环境变量名称:

在tomcat中指定JVM设置的正确环境变量名为
JAVA\u OPTS

处于等待状态的线程和OutOfMemoryErrors是完全不同的事情。第一个绝对不是问题(但可以是)并且不能与后者相关。我首先要面对OOM错误。堆和permgen大小是否设置为与迁移前相同?@MRalwasser:我们正在使用这些选项JAVA_options=“-Xms512m-Xmx2048m-XX:MaxPermSize=512m-verbose:gc”;导出JAVA_选项尝试使用JAVA_选项,而不是JAVA_选项。128m和128m之间是否存在任何差异?您能指导我如何调查我对tomcat是新手吗?在我编写导出的start tomcat脚本中,我注意到一件事:“无效标识符”您根本不应该更改tomcat脚本,只需设置环境变量(在unix上,invoke:export JAVA_OPTS=“-Xms512m-Xmx2048m-XX:MaxPermSize=512m”)在执行startup.shif i hv user java_options之前,这意味着它正在使用一些默认值。它并不都在读取java_选项。正如我在回答中所述,正确的名称是java_OPTS-而不是java_options。恢复对tomcat脚本所做的所有更改,并调用我之前的注释中所述的命令-这很可能会解决问题您的问题。感谢您的帮助,我将使用您建议的更改。您能告诉我unix中的命令以查看默认jvm堆大小吗
"main" prio=10 tid=0x09f67c00 nid=0x2d51 runnable [0xf7622000]
       java.lang.Thread.State: RUNNABLE
        at java.net.PlainSocketImpl.socketAccept(Native Method)
        at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:390)
        - locked <0xc5078c60> (a java.net.SocksSocketImpl)          
    "VM Thread" prio=10 tid=0x09f8ac00 nid=0x2d52 runnable     
    "VM Periodic Task Thread" prio=10 tid=0x09f9cc00 nid=0x2d58 waiting on condition     
    JNI global references: 1074    
    Heap
     def new generation   total 78656K, used 78533K [0xbf760000, 0xc4cb0000, 0xc4cb0000)
      eden space 69952K, 100% used [0xbf760000, 0xc3bb0000, 0xc3bb0000)
      from space 8704K,  98% used [0xc4430000, 0xc4c91428, 0xc4cb0000)
      to   space 8704K,   0% used [0xc3bb0000, 0xc3bb0000, 0xc4430000)
     tenured generation   total 174784K, used 174783K [0xc4cb0000, 0xcf760000, 0xcf760000)
       the space 174784K,  99% used [0xc4cb0000, 0xcf75fff8, 0xcf760000, 0xcf760000)
     compacting perm gen  total 33792K, used 33647K [0xcf760000, 0xd1860000, 0xd3760000)
       the space 33792K,  99% used [0xcf760000, 0xd183be68, 0xd183c000, 0xd1860000)
        ro space 10240K,  61% used [0xd3760000, 0xd3d86298, 0xd3d86400, 0xd4160000)
        rw space 12288K,  60% used [0xd4160000, 0xd4896cb8, 0xd4896e00, 0xd4d60000)