您好,登錄后才能下訂單哦!
這篇文章主要講解了“JVM參數(shù)如何優(yōu)化”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“JVM參數(shù)如何優(yōu)化”吧!
適當(dāng)調(diào)整Tomcat的運行JVM參數(shù)可以提升整體性能。
當(dāng)一個URL被訪問時,內(nèi)存申請過程如下:
A. JVM會試圖為相關(guān)Java對象在Eden中初始化一塊內(nèi)存區(qū)域
B. 當(dāng)Eden空間足夠時,內(nèi)存申請結(jié)束。否則到下一步
C. JVM試圖釋放在Eden中所有不活躍的對象(這屬于1或更高級的垃圾回收), 釋放后若Eden空間仍然不足以放入新對象,則試圖將部分Eden中活躍對象放入Survivor區(qū)
D. Survivor區(qū)被用來作為Eden及OLD的中間交換區(qū)域,當(dāng)OLD區(qū)空間足夠時,Survivor區(qū)的對象會被移到Old區(qū),否則會被保留在Survivor區(qū)
E. 當(dāng)OLD區(qū)空間不夠時,JVM會在OLD區(qū)進(jìn)行完全的垃圾收集(0級)
F. 完全垃圾收集后,若Survivor及OLD區(qū)仍然無法存放從Eden復(fù)制過來的部分對象,導(dǎo)致JVM無法在Eden區(qū)為新對象創(chuàng)建內(nèi)存區(qū)域,則出現(xiàn)”out of memory錯誤”
修改文件:bin/catalina.sh
JAVA_OPTS="-Dfile.encoding=UTF-8 -server -Xms1024m -Xmx1024m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:NewRatio=2 -XX:MaxTenuringThreshold=50 -XX:+DisableExplicitGC"
參數(shù)說明:
1、 file.encoding 默認(rèn)文件編碼 2、 -Xmx1024m 設(shè)置JVM最大可用內(nèi)存為1024MB 3、 -Xms1024m 設(shè)置JVM最小內(nèi)存為1024m。此值可以設(shè)置與-Xmx相同,以避免每次垃圾回收完成后JVM重新分配內(nèi)存。 4、 -XX:NewSize 設(shè)置年輕代大小 5、 XX:MaxNewSize 設(shè)置最大的年輕代大小 6、 -XX:PermSize 設(shè)置永久代大小 7、 -XX:MaxPermSize 設(shè)置最大永久代大小 8、 -XX:NewRatio=4:設(shè)置年輕代(包括Eden和兩個Survivor區(qū))與終身代的比值(除去永久代)。設(shè)置為4,則年輕代與終身代所占比值為1:4,年輕代占整個堆棧的1/5 9、 -XX:MaxTenuringThreshold=0:設(shè)置垃圾最大年齡,默認(rèn)為:15。如果設(shè)置為0的話,則年輕代對象不經(jīng)過Survivor區(qū),直接進(jìn)入年老代。對于年老代比較多的應(yīng)用,可以提高效率。如果將此值設(shè)置為一個較大值,則年輕代對象會在Survivor區(qū)進(jìn)行多次復(fù)制,這樣可以增加對象再年輕代的存活時間,增加在年輕代即被回收的概論。 10、 -XX:+DisableExplicitGC這個將會忽略手動調(diào)用GC的代碼使得 System.gc()的調(diào)用就會變成一個空調(diào)用,完全不會觸發(fā)任何GC
修改bin/catalina.bat文件設(shè)置參數(shù)(第一行)
set JAVA_OPTS=-Dfile.encoding=UTF-8 -server -Xms1024m -Xmx2048m -XX:NewSize=512m -XX:MaxNewSize=1024m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:MaxTenuringThreshold=10 -XX:NewRatio=2 -XX:+DisableExplicitGC
修改bin/catalina.sh文件參數(shù)(第一行)
JAVA_OPTS=”-Dfile.encoding=UTF-8 -server -Xms1024m -Xmx2048m -XX:NewSize=512m -XX:MaxNewSize=1024m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:MaxTenuringThreshold=10 -XX:NewRatio=2 -XX:+DisableExplicitGC”
感謝各位的閱讀,以上就是“JVM參數(shù)如何優(yōu)化”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對JVM參數(shù)如何優(yōu)化這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。