日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

linux与windows下tomcat的java内存设置

發(fā)布時間:2025/3/19 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux与windows下tomcat的java内存设置 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Linux下修改JVM內(nèi)存大小:


要添加在tomcat 的bin 下catalina.sh文件中,找到cygwin=false,在這一行的前面加入?yún)?shù),具體如下# vi TOMCAT_HOME/bin/catalina.sh(默認文件內(nèi)容

1 export?JAVA_OPTS="-server?-Xms800m?-Xmx800m?-XX:PermSize=256m?-XX:MaxPermSize=512m?-XX:MaxNewSize=512m"
1 export?JAVA_OPTS="-server?-Xms512m?-Xmx1024m?-Xss256k?-XX:PermSize=128m?-XX:MaxNewSize=256m?-XX:MaxPermSize=256m"


以下是自己設置的另外增加一個setenv.sh文件來設置tomcat內(nèi)存,給文件加上執(zhí)行權(quán)限

1 2 3 4 5 6 7 #vi?/opt/app/tomcat6/bin/setenv.sh? export?JAVA_OPTS="-server?-Xms512m?-Xmx1024m?-XX:MaxNewSize=512m?-XX:PermSize=128m??-XX:MaxPermSize=256m?-XX:SurvivorRatio=14?-XX:+UseParallelOldGC" 或直接修改tomcat的配置文件 #vi?TOMCAT_HOME/bin/catalina.sh JAVA_OPTS="-server?-Xms512m?-Xmx1024m?-XX:MaxNewSize=512m?-XX:PermSize=128m??-XX:MaxPermSize=256m?-XX:SurvivorRatio=14?-XX:+UseParallelOldGC" 或 JAVA_OPTS="-Xms512m?-Xmx2048m?-Xss1024K?-XX:PermSize=512m?-XX:MaxPermSize=512m"


jvm參數(shù)說明:

-server ? ? ? ? ? ? ? ?一定要作為第一個參數(shù),啟用JDK的server版本,在多個CPU時性能佳?

-Xms ? ? ? ? ? ? ? ? ? ?啟動應用時,JVM 堆空間的初始大小值(java Heap初始大小), 默認是物理內(nèi)存的1/64。

-Xmx? ? ? ? ? ? ? ? ? ? 應用運行中,JVM 堆空間的極限值(?java heap最大值)。為了不消耗擴大JVM 堆控件分配的開銷,將此參數(shù)和-Xms 這個兩個值設為相等,考慮到需要開線程,建議將此值設置為物理內(nèi)存的80%,不可超過物理內(nèi)存。

-Xmn? ? ? ? ? ? ? ? ? ? 此參數(shù)硬性規(guī)定堆空間的新生代空間大小,推薦設為堆空間大小的1/4(java heap最小值,一般設置為Xmx的3、4分之一)。

-XX:PermSize ? ? ? ? ? ?應用服務器啟動時,永久存儲區(qū)的初始內(nèi)存大(設定內(nèi)存的永久保存區(qū)初始大小,缺省值為64M)。

-XX:MaxPermSize? ? ? ? 應用運行中,永久存儲區(qū)的極限值。為了不消耗擴大JVM 永久存儲區(qū)分配的開銷,將此參數(shù)和-XX:PermSize這個兩個值設為相等。堆空間相關參數(shù)參數(shù)名參數(shù)說明(設定內(nèi)存的永久保存區(qū)最大大小,缺省值為64M)。

-XX:SurvivorRatio=2 ? ?生還者池的大小,默認是2。如果垃圾回收變成了瓶頸,您可以嘗試定制生成池設置

-XX:NewSize ? ? ? ? ? ?新生成的池的初始大小。 缺省值為2M。

-XX:MaxNewSize ? ? ? ? ?新生成的池的最大大小。 缺省值為32M。

+XX:AggressiveHeap ? ? ?讓jvm忽略Xmx參數(shù),瘋狂地吃完一個G物理內(nèi)存,再吃盡一個G的swap。?

-Xss ? ? ? ? ? ? ? ? ? ?每個線程的Stack大小

-verbose:gc ? ? ? ? ? ?現(xiàn)實垃圾收集信息

-Xloggc:gc.log ? ? ? ? ?指定垃圾收集日志文件

-XX:+UseParNewGC ? ? ? ?縮短minor收集的時間

-XX:+UseConcMarkSweepGC 縮短major收集的時間

-XX:userParNewGC ? ? ? ?可用來設置并行收集(多CPU)

-XX:ParallelGCThreads ?可用來增加并行度(多CPU)

-XX:UseParallelGC ? ? ?設置后可以使用并行清除收集器(多CPU)

-XX:+UseParallelOldGC:配置年老代垃圾收集方式為并行收集。JDK6.0支持對年老代并行收集。


上面所列的JVM 參數(shù)關系到系統(tǒng)的性能,而其中-XX:PermSize,-XX:MaxPermSize,-Xms,-Xmx 和-Xmn 這5 個參數(shù)更是直接關系到系統(tǒng)的性能,系統(tǒng)是否會出現(xiàn)內(nèi)存溢出。

-XX:PermSize 和-XX:MaxPermSize 分別設置應用服務器啟動時,永久存儲區(qū)的初始大小和極限大小;在生成環(huán)境中強烈推薦將這個兩個值設置為相同的值,以避免分配永久存儲區(qū)的開銷,具體的值可取系統(tǒng)“疲勞測試”獲取到的永久存儲區(qū)的極限值;如果不進行設置-XX:MaxPermSize 默認值為64M,一般來說系統(tǒng)的類定義文件大小都會超過這個默認值。

-Xms 和-Xmx 分別是服務器啟動時,堆空間的初始大小和極限值。-Xms的默認值是物理內(nèi)存的1/64 但小于1G,-Xmx 的默認值是物理內(nèi)存的1/4 但小于1G.在生產(chǎn)環(huán)境中這些默認值是肯定不能滿足我們的需要的。也就是你的服務器有8g 的內(nèi)存,不對JVM 參數(shù)進行設置優(yōu)化,應用服務器啟動時還是按默認值來分配和約束JVM 對內(nèi)存資源的使用,不會充分的利用所有的內(nèi)存資源。

?

結(jié)論:“永久存儲區(qū)溢出(java.lang.OutOfMemoryError:Java Permanent Space)”乃是永久存儲區(qū)設置太小,不能滿足系統(tǒng)需要的大小,此時只需要調(diào)整-XX:PermSize 和-XX:MaxPermSize 這兩個參數(shù)即可。“JVM 堆空間溢出(java.lang.OutOfMemoryError: Java heap space)”錯誤是JVM 堆空間不足,此時只需要調(diào)整-Xms 和-Xmx 這兩個參數(shù)即可。


windows下修改JVM內(nèi)存大小:


情況一:解壓版本的Tomcat, 要通過startup.bat啟動tomcat才能加載配置


要添加在tomcat 的bin 下catalina.bat來添加內(nèi)存在

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

增加下面命令:

1 2 3 4 5 6 7 set?JAVA_OPTS=-server?-Xms512m?-Xmx600m?-XX:PermSize=128m?-XX:MaxNewSize=256m?-XX:MaxPermSize=256m?-XX:SurvivorRatio=14?-XX:+UseParalledlOldGC 或 set?JAVA_OPTS=-server?-Xms512m?-Xmx1024m?-XX:PermSize=128m?-XX:MaxNewSize=256m?-XX:MaxPermSize=256m? 或 set?JAVA_OPTS=%JAVA_OPTS%?-server?-XX:PermSize=128M?-XX:MaxPermSize=512m 或 set?JAVA_OPTS="%JAVA_OPTS%?-server?-Xms800m?-Xmx3072m?-XX:PermSize=512m?-XX:MaxNewSize=256m?-XX:MaxPermSize=1024m"



另翻注(詳細解釋):

常見JVM參數(shù)配置匯總

堆設置

-Xms:初始堆大小


-Xmx:最大堆大小


-XX:NewSize=n:設置年輕代大小


-XX:NewRatio=n:設置年輕代和年老代的比值。如:為3,表示年輕代與年老代比值為1:3,年輕代占整個年輕代年老代和的1/4


-XX:SurvivorRatio=n:年輕代中Eden區(qū)與兩個Survivor區(qū)的比值。注意Survivor區(qū)有兩個。如:3,表示Eden:


Survivor=3:2,一個Survivor區(qū)占整個年輕代的1/5


-XX:MaxPermSize=n:設置持久代大小


收集器設置

-XX:+UseSerialGC:設置串行收集器


-XX:+UseParallelGC:設置并行收集器


-XX:+UseParalledlOldGC:設置并行年老代收集器


-XX:+UseConcMarkSweepGC:設置并發(fā)收集器


垃圾回收統(tǒng)計信息

-XX:+PrintGC


-XX:+PrintGCDetails


-XX:+PrintGCTimeStamps


-Xloggc:filename


并行收集器設置

-XX:ParallelGCThreads=n:設置并行收集器收集時使用的CPU數(shù)。并行收集線程數(shù)。


-XX:MaxGCPauseMillis=n:設置并行收集最大暫停時間


-XX:GCTimeRatio=n:設置垃圾回收時間占程序運行時間的百分比。公式為1/(1+n)


并發(fā)收集器設置

-XX:+CMSIncrementalMode:設置為增量模式。適用于單CPU情況。


-XX:ParallelGCThreads=n:設置并發(fā)收集器年輕代收集方式為并行收集時,使用的CPU數(shù)。并行收集線程數(shù)。








本文轉(zhuǎn)自ling118 51CTO博客,原文鏈接:http://blog.51cto.com/meiling/1655007,如需轉(zhuǎn)載請自行聯(lián)系原作者

總結(jié)

以上是生活随笔為你收集整理的linux与windows下tomcat的java内存设置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。