2013-02-28 95 views
0

您好frnds我,我们已经迁移了Java Web应用程序上的Java 1.6,Tomcat的6,的Oracle 11g 但经过一段时间的网站,现在我们所面临的问题正在下降: 我们得到了Java堆内存不足的错误许多线程处于等待状态。 Tomcat是越来越吊起来,我们的网站正着手的Tomcat 6线程问题

信息:为连接器创建了地址空和端口80 2月21日线(200)的最大数量,2013下午9时56分04秒 这里是线程日志:

日志
"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) 
结束

请指导。

感谢, 阿鲁

+0

WAITING状态和OutOfMemoryErrors中的线程完全不同。第一个问题根本不是问题(但可以),也不能与后者相关。我会首先面对OOM错误。堆和permgen大小是否设置为与迁移之前相同? – MRalwasser 2013-02-28 17:30:39

+0

@MRalwasser:我们正在使用这些选项JAVA_OPTIONS =“ - Xms512m -Xmx2048m -XX:MaxPermSize = 512m -verbose:gc”; export JAVA_OPTIONS – aru 2013-02-28 17:32:35

+0

试试用JAVA_OPTS代替JAVA_OPTIONS。 – 2013-02-28 18:05:53

回答

1

根据您发布的日志,上述注释中提到的jvm设置(在JAVA_OPTIONS中定义)根本不受尊重/使用。
(例如,使用32m代替指定的512m)。

我的猜测是,你仅仅是为了环境变量中使用了错误的名称:
有关Tomcat指定JVM设置正确的环境变量名为JAVA_OPTS

+0

你能指导我怎么可以调查我是新的tomcat一件事我注意到在启动tomcat脚本无论我高写写出口它给我错误“:无效标识符” – aru 2013-02-28 17:41:55

+0

你不应该改变在所有的tomcat脚本。只需设置环境变量(在unix上,调用:export JAVA_OPTS =“ - Xms512m -Xmx2048m -XX:MaxPermSize = 512m”),然后执行startup.sh – MRalwasser 2013-02-28 17:44:32

+0

if hv user java_options然后它意味着它使用了一些默认值并非所有阅读java_options – aru 2013-02-28 17:53:02

0

看起来像烫发全部用于根空间。你有没有尝试用-XX增加它:MaxPermSize = 128M?

+0

是否有任何差异128M和128M – aru 2013-02-28 17:36:09