您好,登錄后才能下訂單哦!
今天小編給大家分享一下Tomcat內存溢出及內存設置的方法是什么的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
java的內存有不同類型,不同類型的內存溢出,處理方法不同,一定要看清是那種異常。通常會碰到內存溢出異常有下面兩種:
java.lang.OutOfMemoryError: PermGen space
java.lang.OutOfMemoryError: Java heap space
PermGen space內存溢出最常見。全稱是Permanent Generation space,是指內存的永久保存區域。JDK8廢除了PermGen space,可以避免這種類型的內存溢出,也無需設置該項。碰到這種內存溢出建議升級到JDK8,或者設置Perm內存。
Jspxcms的內存設置建議值:
-XX:PermSize=128M:Perm內存最小值。
-XX:MaxPermSize=512M:Perm內存最大值。
Java heap space是堆內存溢出。碰到這種內存溢出,則需要加大堆內存。
Jspxcms的內存設置建議值:
-Xms256M:Heap內存最小值。
-Xmx512M:Heap內存最大值。內存充裕的可以配置為-Xmx1024M
java內存的類型分為:堆(Heap)和非堆(Non-heap)內存。
堆(Heap)內存。用于存放運行時產生的數據,如運行時創建的對象、數組等數據。堆內存快被占滿時,會啟動垃圾回收,釋放內存空間。如果沒有設置Heap內存,默認是物理內存的1/4。現在內存條容量越來越大,堆內存溢出的情況相對較少。堆內存溢出時,出現的錯誤信息是:java.lang.OutOfMemoryError: Java heap space。
非堆(Non-heap)內存。就是PermGen。用于存放類的空間。默認是物理內存的1/64。java設計之初,各種程序規模相對較小,java類不多,并且運行時類的數量是固定的,所以該空間默認非常小,并且不進行垃圾回收。隨著java的急劇發展,各種類庫逐漸增多,java程序也變得越來越龐大,類的數量急速膨脹,默認非堆內存的空間越來越不夠用。特別是反射機制與動態代理技術的廣泛應用,程序可以在運行時創建類,使得PermGen內存溢出變得更為常見。非堆內存溢出時,出現的錯誤信息是:java.lang.OutOfMemoryError: PermGen space。
Java的設計者們也看到了這個問題,在jdk8中廢除了PermGen,并且可以對存放類信息的空間進行垃圾回收。所以碰到java.lang.OutOfMemoryError: PermGen space異常,最好的辦法就是升級到jdk8。
不同軟件、不同版本、不同情況下的設置方法各有不同。如eclipse的內存設置在eclipse目錄下的eclipse.ini文件。
修改{TOMCAT_HOME}/bin/catalina.bat,在第二行(即在第一行@echo off之后)插入以下配置:
set JAVA_OPTS=-Xms256m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
修改TOMCAT_HOME/bin/catalina.sh,在第二行(即在第一行#!/bin/sh之后)插入以下配置:
JAVA_OPTS='-Xms256m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m'
安裝版需要在控制面板里設置。-XX:PermSize=128m -XX:MaxPermSize=512m在Java Options里設置,-Xms256m -Xmx512m分別對應Initial memory pool、Maximum memory pool。
修改{ORACLE_HOME}/user_projects/domains/base_domain/bin/setDomainEnv.sh(windows環境下是.cmd)
WLS_MEM_ARGS_64BIT="-Xms512m -Xmx1024m" export WLS_MEM_ARGS_64BIT WLS_MEM_ARGS_32BIT="-Xms512m -Xmx1024m" export WLS_MEM_ARGS_32BIT if [ "${JAVA_VENDOR}" != "HP" ] ; then if [ "${VM_TYPE}" = "HotSpot" ] ; then WLS_MEM_ARGS_64BIT="-Xms256m -Xmx1024m" export WLS_MEM_ARGS_64BIT WLS_MEM_ARGS_32BIT="-Xms256m -Xmx1024m" export WLS_MEM_ARGS_32BIT fi fi
在Eclipse中使用tomcat6:run或tomcat7:run啟動Tomcat,需要在Run Configurations - JRE - VM arguments選項中設置。
以上就是“Tomcat內存溢出及內存設置的方法是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。