windows下配置tomcat服務器的jvm內存大小的兩種方式

可貴遇到一次java堆內存溢出(內心想着,終於能夠來一次jvm性能優化了$$)html

先看下報錯信息,java

 java.lang.OutOfMemoryError: GC overhead limit exceeded

錯誤就是發出了這樣的信號: 執行垃圾收集的時間比例太大, 有效的運算量過小. 默認狀況下, 若是GC花費的時間超過 98%, 而且GC回收的內存少於 2%, JVM就會拋出這個錯誤。數據庫

形成這個問題的緣由多是項目裏某個地方定義的太多的map,list對象,或者一次從數據庫中查詢的數據量過大。

 資料來源:OutOfMemoryError系列(2): GC overhead limit exceededwindows

查看tomcat服務啓動信息,默認tomcat的內存分配大小是初始化128,最大值爲256MBtomcat

根據網上教程,在tomcat\bin\catalina.bat文件性能優化

rem ----- Execute The Requested Command ---------------------------------------

echo Using CATALINA_BASE:   "%CATALINA_BASE%"
echo Using CATALINA_HOME:   "%CATALINA_HOME%"
echo Using CATALINA_TMPDIR: "%CATALINA_TMPDIR%"

在Execute The Request Command註釋下面添加參數,設置jvm內存最大值服務器

set "JAVA_OPTS=%JAVA_OPTS% -Xms256m -Xmx512m"

 

配置完以後再次查看啓動日誌tomcat/logs/catalina.2019-07-08.logjvm

發現日誌裏顯示,jvm參數仍是128 - 256 沒變化post

繼續查詢資料,咱們修改的catalina.bat配置文件對以服務方式啓動的tomcat無效果Tomcat內存設置詳解性能

6.0以上的tomcat須要在tomcatw.exe文件中設置參數,好比個人tomcat9w.exe

用這個方法的前提是咱們的服務名稱必須是tomcat9,不然這個tomcat9w.exe運行會報錯,服務tomcat9未安裝

安裝tomcat服務的方法:在tomcat/bin目錄下,運行命令 service.bat install

Usage: service.bat install/remove [service_name] [/user username]

服務安裝完後,設置如上圖的配置,啓動服務後,內存修改完成。

下監控的截圖(這張圖本來的jvm內存最大爲256MB時,內存使用率爲89%),修改內存爲512MB以後就好不少了

 

經過以上內存的配置,能夠總結windows下修改tomcat服務器jvm內存的兩種方法:一種,直接修改catalina.bat文件,修改完後能夠經過startup.bat方式啓動直接生效

另外一種就是做爲windows服務後臺運行方式啓動,這個須要修改tomcatw.exe的啓動參數(不知道是否是動態參數修改,猜想不是)

相關文章
相關標籤/搜索