![](/img/trans.png)
[英]For java applications with dedicated memory, does it make sense to have a lower Min Heap Size than Max Heap Size?
[英]Running a few java applications with total heap size memory set to more than phisycal memory
您將體驗到的是在主要垃圾收集期間增加交換,從而增加GC暫停時間。
當使用的內存超過物理內存時(實際上甚至在此之前),現代操作系統會將一些較少使用的內存寫入磁盤。 使用JVM,這很可能是堆的終生代的一些部分。 當主要GC發生時,它將不得不觸及所有堆,因此它必須在它卸載到磁盤的所有頁面中交換回來,導致大量的IO活動和增加的CPU負載。
由於一個JVM的堆應該很容易適應物理內存,但是由於一個JVM的堆超出物理內存或者來自多個JVM的同時主要GC,這可能會導致大量的交換,因此有多個主要GC的JVM可能會稍微增加暫停時間。進出內存頁面(“捶打”)和GC可能需要一段時間(最多幾分鍾)。
Xmx僅保留虛擬地址空間。 它是虛擬的而不是物理的。
此設置的響應取決於操作系統:
Windows:限制由swap + physical定義。 例外是大頁面(需要使用組策略設置啟用),這將通過物理ram限制它(XMS是不可能的)。
Linux的行為更復雜。 (它取決於vm.overcommit_memory和相關的sysctls以及mmap系統調用中的各種標志)可以(但不是全部)由JVM配置標志控制。 行為可以是: - Xms可以超過總ram + swap - Xmx受可用物理ram的限制。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.