日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux与windows下tomcat的java内存设置

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

Linux下修改JVM內存大小:


要添加在tomcat 的bin 下catalina.sh文件中,找到cygwin=false,在這一行的前面加入參數,具體如下# vi TOMCAT_HOME/bin/catalina.sh(默認文件內容

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內存,給文件加上執行權限

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參數說明:

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

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

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

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

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

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

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

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

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

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

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

-verbose:gc ? ? ? ? ? ?現實垃圾收集信息

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

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

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

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

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

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

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


上面所列的JVM 參數關系到系統的性能,而其中-XX:PermSize,-XX:MaxPermSize,-Xms,-Xmx 和-Xmn 這5 個參數更是直接關系到系統的性能,系統是否會出現內存溢出。

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

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

?

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


windows下修改JVM內存大小:


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


要添加在tomcat 的bin 下catalina.bat來添加內存在

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參數配置匯總

堆設置

-Xms:初始堆大小


-Xmx:最大堆大小


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


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


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


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


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


收集器設置

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


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


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


-XX:+UseConcMarkSweepGC:設置并發收集器


垃圾回收統計信息

-XX:+PrintGC


-XX:+PrintGCDetails


-XX:+PrintGCTimeStamps


-Xloggc:filename


并行收集器設置

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


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


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


并發收集器設置

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


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








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

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。