中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JVM中Xms和Xmx參數要設置為相同值的原因是什么

發布時間:2022-02-25 15:59:37 來源:億速云 閱讀:731 作者:iii 欄目:開發技術

這篇文章主要介紹了JVM中Xms和Xmx參數要設置為相同值的原因是什么的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇JVM中Xms和Xmx參數要設置為相同值的原因是什么文章都會有所收獲,下面我們一起來看看吧。

IDEA 的 VM 配置(安裝時默認配置)中有如下的配置:

# custom IntelliJ IDEA VM options


-Xms2048m
-Xmx2048m

看到 Xms 和 Xmx 的參數設置一樣,是不是稍微有些奇怪?這里就寫篇文章分析一下,JVM 的 Xms 和 Xmx 參數設置為相同的值有什么好處?首先來了解一下相關參數的概念及功能。

Xms和Xmx參數定義

在啟動 Java 應用程序時,我們通常可以通過參數XmsXmx來配置 JVM 的堆信息。不配置雖然會有默認值,但如果受硬件所限或需對 JVM 進行調優,則需要根據情況指定這兩個參數的值。

-Xms:堆內存的最小Heap值,默認為物理內存的1/64,但小于1G。默認當空余堆內存大于指定閾值時,JVM 會減小heap的大小到-Xms指定的大小。

-Xmx:堆內存的最大Heap值,默認為物理內存的1/4。默認當空余堆內存小于指定閾值時,JVM 會增大Heap-Xmx指定的大小。

內存情況的變化

常規的JVM參數使用如下:

java -Xms512m -Xmx1g

在這種配置下,JVM 啟動時會分配512M的堆內存空間,隨著程序的執行,所需的堆空間越來越大,則會逐漸增大堆內存空間,直到Xmx參數指定的堆最大空間1G。

當堆內存使用率降低,則會逐漸減小該內存區域的大小。整個過程看似非常合理,但為什么很多生產環境卻也將兩個值配置為相同的值呢?

JVM垃圾回收的不足

當堆內存使用情況變化時,并不是單純的擴大和縮小堆內存就完事了。在此之前還會執行GC(垃圾回收)操作。如果-Xms起初值設置的比較小,那么就頻繁觸發GC操作。當GC操作無法釋放更多內存時,才會進行內存的擴充。

我們都知道GC操作是需要耗時的,而且Full GC會引起“Stop the World”,也就是說會引起線程停止,不可避免就會引起性能問題。

相同值的好處

面對上面的問題,為了避免在生產環境由于heap內存擴大或縮小導致應用停頓,降低延遲,同時避免每次垃圾回收完成后JVM 重新分配內存。所以,-Xmx-Xms一般都是設置相等的。

當然,如果生產系統上線前有一段預熱時間的話,也可以不設置相等。對于需要高吞吐量的應用來說,可以不在乎這種停頓,比如一些后臺的應用之類,那么內存可以適當調大一些。(停頓時間越長,吞吐量反而越大),需要根據具體情況權衡。

其實關于在生產環境中把XmsXmx設為相同值也是 Oracle 官方推薦的。在Xms的參數描述中有這樣一段話:

Oracle recommends setting the minimum heap size (-Xms)equal to the maximum heap size (-Xmx) to minimize garbage collections.

其實這里還有一個小前提,那就是生產環境往往一臺服務器或一個容器只有一個服務,獨占服務器意味著沒有必要調整 JVM 大小,每次調整反而會加大開銷。只有在多開發環境,比如個人電腦等運行進程比較多時,動態調整JVM才有必要。

注意事項

其實雖然設置為相同值有很多好處,但也會有一些不足。比如,如果兩個值一樣,會減少 GC 的操作,也意味著只有當 JVM 即將使用完時才會進行回收,此前內存會不停的增長。

并且同一 JDK 的 GC 策略也有很多種,不能一概而論。另外,對于Hotspot虛擬機,XmsXmx設置為一樣的,可以減輕伸縮堆大小帶來的壓力。但對于IBM虛擬機,設置為一樣會增大堆碎片產生的幾率,并且這種負面影響足以抵消前者產生的益處。

關于“JVM中Xms和Xmx參數要設置為相同值的原因是什么”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“JVM中Xms和Xmx參數要設置為相同值的原因是什么”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

彩票| 旅游| 安岳县| 苍梧县| 伽师县| 惠安县| 竹溪县| 获嘉县| 广安市| 犍为县| 阳春市| 芦山县| 金寨县| 镇坪县| 辉县市| 桦甸市| 丽江市| 柳河县| 蓬溪县| 芮城县| 自贡市| 和硕县| 萝北县| 邹城市| 谢通门县| 金塔县| 孟津县| 丹寨县| 达日县| 吉木萨尔县| 洛南县| 万年县| 老河口市| 稻城县| 来凤县| 恩施市| 鹤岗市| 寿阳县| 亚东县| 丘北县| 盖州市|