我有一個在 tomcat 上運行的 java web 應用程式(tomcat 作為 Windows 服務安裝),我
Exception in thread "Thread-7" java.lang.OutOfMemoryError: GC overhead limit exceeded
在嘗試使用 web 應用程式處理檔案時得到了。所以我試圖增加為tomcat分配的記憶體。我查看了增加 Tomcat 記憶體設定、處理“java.lang.OutOfMemoryError: PermGen space”錯誤和其他一些博客中的解決方案。這是我在 setenv.bat 檔案中嘗試的命令。
rem export JAVA_OPTS="-Dfile.encoding=UTF-8 -Xms256m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=1024m"
rem set "JAVA_OPTS=%JAVA_OPTS% -Xms512m -Xmx8192m -XX:MaxPermSize=256m -server"
rem set JAVA_OPTS="-Xms256m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=1024m"
rem set JAVA_OPTS=%JAVA_OPTS% -Xms256m -Xmx2048m
rem set JAVA_OPTS=-Dfile.encoding=UTF-8 -Xms256m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=1024m
我一一嘗試了這些命令。每次我添加一個新命令時,我都會重新啟動 tomcat。這些命令都不起作用,tomcat 正在使用其默認配置。所以我從 tomcat8w.exe -> java 選項卡更改了初始記憶體池和最大記憶體池。這奏效了。但我想使用 setenv.bat 更改配置。我怎樣才能做到這一點?
uj5u.com熱心網友回復:
如您所見,您的 tomcat 服務根本不使用 setenv.bat。根據您必須呼叫的檔案tomcat8 //US//
來更新服務定義。這些設定存盤在 Windows 注冊表中的某個位置。
所以你需要的命令可能看起來像
tomcat8 //US//Tomcat8 --JvmMx 2048m
tomcat8w
或者,按照您所描述的那樣使用 GUI 版本是完全可以的。
簡而言之:您不能使用 setenv.bat 來配置作為服務運行的 Tomcat。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/504808.html