慣例,交代背景,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