記一次網站打不開的解決 java.lang.OutOfMemoryError: PermGen sp

慣例,交代背景,Linux服務器、Java環境、tomcat ,固然,這些都是用了一個叫oneinstack的東西,安裝很方便。java

問題來了。chrome

症狀:打開網站的時候瀏覽器一直轉,頁面打不開 。瀏覽器

觀察:日誌裏寫了java.lang.OutOfMemoryError: PermGen space 。tomcat

分析:這個錯誤呢,也就是個內存溢出,內存通常分兩種,這種是保存new class 和mete信息的,基本上就是說,若是第三方jar包或者項目類太多,就會致使這個內存區間溢出。而且這個內存區是不會被Java回收的,Java的自留地。服務器

解決:設置java的啓動參數,也就是內存配置,相似-server -XX:PermSize=64M -XX:MaxPermSize=128m這種,是否是好眼熟。本身改改PERMSIZE的大小到合適就能夠了,我以前是64M,爆了,我如今改得256M 。工具

坑:通常的環境,若是是本身解壓或安裝的tomcat ,配置這個參數是在 %tomcathome%/bin/cataline.xx文件裏,那這個變態的oneinstack呢?他媽的是放在setenv.sh裏。。。。。。。。。。是這樣嗎? 原配有這個文件嗎 ?難怪勞資反覆改了好幾回,都tmd不生效。。。。網站

其餘:哦,還有,在追蹤這個問題的時候學會了Java原生調試跟蹤工具  ,兩個命令 jps、jstat ,相關用法問谷歌去吧,另外在用這兩個命令的時候我也遇到一個坑,oneinstack新建了一個WWW用戶,啓動tomcat的時候是用的www用戶,因此剛開始在使用這兩個命令的時候,死活找不到PID對應的內容,就是這兩個命令不能正確返回你想要得東西。而後只要su www ,再執行就OK了。google

相關文章
相關標籤/搜索