應用比較耗資源的話,tomcat啟動時會報內存溢出的錯誤,修改方法如下:
用vi命令打開tomcat安裝目錄/bin下的catalina.sh文件
在該文件的第一行(具體在:cygwin=false上面一行)添加如下配置:
JAVA_OPTS="-Xms1024m -Xmx1024m -Xss512K -XX:PermSize=256m -XX:MaxPermSize=256m"
具體的配置參數可根據機器配置調整。
『貳』 Eclipse的.vm屬性是什麼,如何設置
使用 -vm 設置 java VM
建 議顯式指定在運行 Eclipse 時要使用哪個 Java VM。使用 -vm 命令行自變數(例如,-vm c:\jre\bin\javaw.exe)可以實現此目的。如果不使用 -vm,則 Eclipse 將使用在 O/S 路徑上找拍空到的一個 Java VM。當安裝消賀胡其它產品時,它們可更改您的路徑,導致在下一次啟動 Eclipse 時使用另拿攔一 Java VM。
http://geeker.javaeye.com/blog/60063
看看這個就你知道了。
希望對你有幫助
『叄』 如何設定java VM的最大內存大小
C:\Users\lenopvo>滑族java -X
-Xmixed mixed mode execution (default)
-Xint interpreted mode execution only
-Xbootclasspath:<directories and zip/jar files separated by ;>
set search path for bootstrap classes and resources
-Xbootclasspath/旦讓亮a:<directories and zip/jar files separated by ;>
append to end of bootstrap class path
-Xbootclasspath/p:<directories and zip/jar files separated by ;>
prepend in front of bootstrap class path
-Xnoclassgc disable class garbage collection
-Xincgc enable incremental garbage collection
-Xloggc:<file> log GC status to a file with time stamps
-Xbatch disable background compilation
-Xms<size> set initial Java heap size
-Xmx<size> set maximum Java heap size
-Xss<模寬size> set java thread stack size
-Xprof output cpu profiling data
-Xfuture enable strictest checks, anticipating future default
-Xrs rece use of OS signals by Java/VM (see documentation)
-Xcheck:jni perform additional checks for JNI functions
-Xshare:off do not attempt to use shared class data
-Xshare:auto use shared class data if possible (default)
-Xshare:on require using shared class data, otherwise fail.
The -X options are non-standard and subject to change without notice.
『肆』 如何安裝JAVA虛擬機並設置JAVA環境變數
vi /etc/profile 末尾加上如下配置
export JAVA_HOME=/usr/local/jdk1.8.0_111
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
source /etc/profile
並檢查java版本
java -version
配置java虛擬機即調整JVM大小
進入tomcat的bin目錄編輯catalina.sh文件
在echo "Using CATALINA_BASE: $CATALINA_BASE"上面加入以下行:JAVA_OPTS="$JAVA_OPTS -server -Xms800m -Xmx800m -XX:MaxNewSize=256m"
手動設置MaxPermSize大小
在catalina.sh添加如下行
JAVA_OPTS="$JAVA_OPTS -server -XX:PermSize=128M -XX:MaxPermSize=512m"
如果tomcat的日誌中出現 java.lang.OutOfMemoryError: PermGen space
不是存在內存泄露問題就是JVM設置過小
『伍』 關於設置Java虛擬機(JVM)的內存問題
最近做畢設時 遇到了一點小問題 在解析dblp xml文件時(該文件很大 最新版本為 MB) 老是報錯
java lang OutOfMemoryError: Java heap space
最後通過查資料才知道 這是由於JVM堆內存不足造成的 JVM在啟動動的時候一般會設置JVM Heap的值
其初始空間(即 Xms)是物理內存的 / 最大空間( Xmx)不可超過物理內存 在JVM中如果 %的時間是用於GC 且可用的Heap size 不足 %的時候將拋出此異常信息 出現這種問題可以通過修改JVM heap大小解決
如
點擊(此處)折疊或打開
java Xms M Xmx M className
以上設置JVM初始化堆內存為 M 最大可用堆內存為 M
( )在命令行中設置的方法就如上面所述
( )在Eclipse中可以這樣設置
在eclipse的 Run >Run Configurations >Arguments下的VM Arguments中設置
Xms M Xmx M
另外可以使用 java X查看其它JVM參數情況
點擊(此處)折疊或打開
D:work>java X
Xmixed mixed mode execution (default)
Xint interpreted mode execution only
Xbootclasspath:<directories and zip/jar files separated by ;>
set search path for bootstrap classes and resources
Xbootclasspath/a:<directories and zip/jar files separated by ;>
append to end of bootstrap class path
Xbootclasspath/p:<directories and zip/jar files separated by ;>
prepend in front of bootstrap class path
Xnoclassgc disable class garbage collection
Xincgc enable incremental garbage collection
Xloggc:<file> log GC status to a file with time stamps
Xbatch disable background pilation
Xms<size> set initial Java heap size
Xmx<size> set maximum Java heap size
Xss<size> set java thread stack size
Xprof output cpu profiling data
Xfuture enable strictest checks anticipating future default
Xrs rece use of OS signals by Java/VM (see documentation)
Xcheck:jni perform additional checks for JNI functions
Xshare:off do not attempt to use shared class data
Xshare:auto use shared class data if possible (default)
Xshare:on require using shared class data otherwise fail
The X options are non standard and subject to change without notice
可以通過java lang Runtime的一些方法查看jvm的內存使用情況
點擊(此處)折疊或打開
System out println( Total Memory: + Runtime getRuntime() totalMemory() / ( * + MB )
System out println( Free Memory: + Runtime getRuntime() freeMemory() / ( * ) + MB )
System out println( Max Memory: + Runtime getRuntime() maxMemory() / ( * ) + MB )
maxMemory()這個方法返回的是java虛擬機(這個進程)能構從操作系統那裡挖到的最大的內存 以位元組為單位
totalMemory()這個方法返回的是java虛擬機現在已經從操作系統那裡挖過來的內存大小 也就是java虛擬機這個進程當時所佔用的所有內存
freeMemory為當前jvm中沒有使用的內存
附 jvm參數說明 (轉自)
server:一定要作為第一個參數 在多個CPU時性能佳
Xms java Heap初始大小 默認是物理內存的 /
Xmx java heap最大值 建議均設為物理內存的一半 不可超過物理內存
XX:PermSize:設定內存的永久保存區初始大小 預設值為 M (我用visualvm exe查看的)
XX:MaxPermSize:設定內存的永久保存區最大 大小 預設值為 M (我用visualvm exe查看的)
XX:SurvivorRatio= :生還者池的大小 默認是 如果垃圾回收變成了瓶頸 您可以嘗試定製生成池設置
XX:NewSize: 新生成的池的初始大小 預設值為 M
XX:MaxNewSize: 新生成的池的最大大小 預設值為 M
如果 JVM 的堆大小大於 GB 則應該使用值 XX:newSize= m XX:MaxNewSize= m XX:SurvivorRatio= 或者將堆的總大小的 % 到 % 分配給新生成的池 調大新對象區 減少Full GC次數
+XX:AggressiveHeap 會使得 Xms沒有意義 這個參數讓jvm忽略Xmx參數 瘋狂地吃完一個G物理內存 再吃盡一個G的swap
Xss 每個線程的Stack大小 Xss 這使得JBoss每增加一個線程(thread)就會立即消耗 M內存 而最佳值應該是 K 默認值好像是 k
verbose:gc 現實垃圾收集信息
Xloggc:gc log 指定垃圾收集日誌文件
Xmn young generation的heap大小 一般設置為Xmx的 分之一
XX:+UseParNewGC 縮短minor收集的時間
XX:+UseConcMarkSweepGC 縮短major收集的時間 此選項在Heap Size 比較大而且Major收集時間較長的情況下使用更合適
XX:userParNewGC 可用來設置並行收集【多CPU】
XX:ParallelGCThreads 可用來增加並行度【多CPU】
lishixin/Article/program/Java/hx/201311/26103
『陸』 eclipserunconfiguration配置啟動參數
Eclipse啟動參數配置
eclipse.exe -vmargs -Xverify:none -XX:+UseParallelGC -XX:PermSize=20M -Xms64M -Xmx256M
將工作空間位置設置為在當前工作目錄內
在此方案中,工作空間位置將是當前工作目錄中稱為workspace的目錄。
實現此目的最容易的方法可能是使用下列步驟來創建快捷方式:
瀏覽至 Windows 資源管理器中的 eclipse.exe 並使用右鍵拖動來創建 eclipse.exe 的快捷方式。
編輯快捷方式的屬性,以使啟動位置:欄位標識工作空間位置的父目錄(例如,c:/users/robert)。
關閉屬性對話框並雙擊快捷方式(如果提供的目錄為c:/users/robert,則工作空間位置將為c:/users/robert/workspace)。
當然,您也可以使用命令提示符(通過將目錄切換為工作空間父目錄然後運行 eclipse.exe)來獲得同樣的效果。
使用 -data 設置工作空間的特定位置
要使用-data命令行自變數,只要將-datayour_workspace_location(例如,-data c:/users/robert/myworkspace)添加至快捷方式屬性中的目標欄位或顯式地將它包括在命令行上。
使用 -vm 設置 java VM
建議顯式指定在運行 Eclipse 時要肆吵使用哪個 Java VM。使用-vm命令行自變數(例如,-vm c:/jre/bin/javaw.exe)可以實現此目的。如果不使用-vm,則 Eclipse 將使用在 O/S 路徑上找到的一個 Java VM。當安裝其它產品時,它們可更改您的路徑,導致在下一次啟動 Eclipse 時使用另一 Java VM。
運行 Eclipse 中的高級主題
Eclipse 可執行文件及平台本身提供了人們感興趣的開發或調試 Eclipse 各部件的許多執行選項。這是常用選項列表,有關完整列表,請參閱 Platform Plug-in Developer Guide 中的 Eclipse 運行時選項頁面。運行 Eclipse 可執行文件的一般格式是:
eclipse [platform options] [-vmargs [Java VM arguments]]
Eclipse 啟動參數
命令描述
原因
-arch architecture
定義 Eclipse 平台在其上運行的處理器體系結構。Eclipse 平台通常使用 Javaos.arch屬性的常用值來計算最佳設置。如果在此處指定該項,則這是 Eclipse 平台使用的值。此處指定的值可作為 BootLoader.getOSArch() 用於插件。示例值有:「x86」、「sparc」、「PA-RISC」和「ppc」。
2.0
-application applicationId
要運行的應用程序。應用程序由向 org.eclipse.core.runtime.applications 擴展點提供擴展的插件來聲明。通常不需要此自變數。如果指定了此項,則該值會覆蓋配置提供的值。如果不指定此項,則會運行「Eclipse 工作台」。
1.0
-configuration configurationFileURL
Eclipse 平台配置文件的位置,表示為 URL。配置文件確定 Eclipse 平台、可用插件集和主要功能部件的位置。注意,不允許使用相對 URL。當安裝或更新 Eclipse 平台時配置文件被寫至此位置。
2.0
-consolelog
將 Eclipse 平台的錯誤日誌鏡像到用來運行 Eclipse 的控制台。與-debug組合時很方便使用。
1.0
-data workspacePath
要運行 Eclipse 平台的工裂灶侍作空間的路徑。工作空間位置也是項目的預設位置。相對於從中啟動 eclipse 的目錄來解釋相對路徑。
1.0
-debug [optionsFile]
將平台置於調試方式,並從給定位置處的文件裝入調試選項(如果指定的話)。此文件指示哪些調試點可用於插件以及是否已啟用它們。如果未給出文件位置,則平台在啟動 eclipse 的目錄中查找稱為「.options」的文件辯敏。URL 和文件系統路徑都可作為文件位置。