bestlong 怕失憶論壇

標題: [Tomcat] java.lang.OutOfMemoryError: PermGen space [打印本頁]

作者: bestlong    時間: 2012-11-30 10:56     標題: [Tomcat] java.lang.OutOfMemoryError: PermGen space

在 Tomcat 6.0.23 安裝後的預設環境下,操作某個程式中遇到了這個錯誤訊息

javax.servlet.ServletException: java.lang.OutOfMemoryError: PermGen space

基本上就是需要做一些環境調教,處理的方法不外乎就是設定 JAVA_OPTS 環境變數或是直接修改啟動的命令參數
若是不想影響其他 Java 相關程式,而只要針對 Tomcat 調整的處理方式
可以在 TOMCAT_HOME/bin 目錄內加入 setenv.sh 檔案來作環境設定

因為 Tomcat 的啟動程序 startup.sh 會執行 catalina.sh
而 catalina.sh 會檢查 setenv.sh 是否存在,若是存在就會執行 setenv.sh
所以可以透過增加或編輯 setenv.sh 的內容來調整 Tomcat 專有的執行環境設定

而 setenv.sh 的內容為
  1. JVM_MINIMUM_MEMORY="256m"
  2. JVM_MAXIMUM_MEMORY="768m"

  3. JVM_MAX_PERM_SIZE="256m"

  4. JAVA_OPTS="-Xms${JVM_MINIMUM_MEMORY} -Xmx${JVM_MAXIMUM_MEMORY} ${JAVA_OPTS}"
  5. JAVA_OPTS="-XX:MaxPermSize=${JVM_MAX_PERM_SIZE} ${JAVA_OPTS}"

  6. export JAVA_OPTS
複製代碼
以上為 Linux 環境的處理。




歡迎光臨 bestlong 怕失憶論壇 (http://www.bestlong.idv.tw/) Powered by Discuz! X1.5