2013-02-28 90 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