1. 程式人生 > 其它 >JVM常用引數整理

JVM常用引數整理

1.引數設定例項:

-Xmx3550m -Xms3550m -Xss128k -XX:MetaspaceSize=256m -XX:+PrintCommandLineFlags -XX:+PrintGCDetails -XX:+UseSerialGC

引數說明:

-Xmx3550m:設定JVM最大可用記憶體為3550M。等價於-XX:InitialHeapSize。
-Xms3550m:設定JVM促使記憶體為3550m。此值可以設定與-Xmx相同,以避免每次垃圾回收完成後JVM重新分配記憶體。等價於-XX:MaxHeapSize

-Xss128k:設定每個執行緒的堆疊大小。根據應用的執行緒所需記憶體大小進行調整。在相同實體記憶體下,減小這個值能生成更多的執行緒。但是作業系統對一個程序內的執行緒數還是有限制的,不能無限生成,經驗值在3000~5000左右。

JVM給了三種選擇:序列收集器、並行收集器、併發收集器,但是序列收集器只適用於小資料量的情況,所以這裡的選擇主要針對並行收集器和併發收集器。預設情況下,JDK5.0以前都是使用序列收集器,如果想使用其他收集器需要在啟動時加入相應引數。JDK5.0以後,JVM會根據當前系統配置進行判斷。

-XX:MetaspaceSize:元空間初始大小,一般要修改。預設情況下,64位伺服器,16G記憶體,元空間預設大小隻有21MB,一旦元空間的大小觸及這個高水位線,就會觸發Full GC並解除安裝沒有用的類,然後重置高水位線的值。容易造成元空間記憶體不夠用,報OOM。建議將-XX:MetaspaceSize設定為較高的值。

-XX:+PrintGCDetails: 蒐集gc詳細日誌資訊。

-XX:+UseSerialGC:序列收集器。jdk8預設並行收集器。併發收集器,但是序列收集器只適用於小資料量的情況,所以這裡的選擇主要針對並行收集器和併發收集器