JVM引數說明介紹

2022-11-24 22:51:38 字數 2211 閱讀 1122

1.jvm執行時資料區記憶體引數說明

2.jvm垃圾收集器引數總結

原文:

-xmx 2000m:設定jvm最大堆記憶體為2000m。

-xms 2000m : 設定jvm最小堆記憶體為2000m.

-xss 1m:設定每個執行緒的棧大小。

-xmn 2g:設定年輕代大小為2g。

-xx:newsize=1024m:設定年輕代初始值為1024m。

-xx:maxnewsize=1024m:設定年輕代最大值為1024m。

-xx:permsize=256m:設定持久代初始值為256m。

-xx:maxpermsize=256m:設定持久代最大值為256m。

高優先順序:-xx:newsize/-xx:maxnewsize

中優先順序:-xmn(預設等效 -xmn=-xx:newsize=-xx:maxnewsize=?)

低優先順序:-xx:newratio

承受海量訪問的動態web應用

伺服器配置:8 cpu, 8g mem, jdk 1.6.x

引數方案:

-server -xmx3550m -xms3550m -xmn1256m -xss128k -xx:survivorratio=6 -xx:maxpermsize=256m -xx:parallelgcthreads=8 -xx:maxtenuringthreshold=0 -xx:+useconcmarksweepgc

調優說明:

-xmx 與 -xms 相同以避免jvm反覆重新申請記憶體。-xmx 的大小約等於系統記憶體大小的一半,即充分利用系統資源,又給予系統安全執行的空間。

-xmn1256m 設定年輕代大小為1256mb。此值對系統效能影響較大,sun官方推薦配置年輕代大小為整個堆的3/8。

-xss128k 設定較小的執行緒棧以支援建立更多的執行緒,支援海量訪問,並提升系統效能。

-xx:survivorratio=6 設定年輕代中eden區與survivor區的比值。系統預設是8,根據經驗設定為6,則2個survivor區與1個eden區的比值為2:6,一個survivor區佔整個年輕代的1/8。

-xx:parallelgcthreads=8 配置並行收集器的執行緒數,即同時8個執行緒一起進行垃圾**。此值一般配置為與cpu數目相等。

-xx:maxtenuringthreshold=0 設定垃圾最大年齡(在年輕代的存活次數)。如果設定為0的話,則年輕代物件不經過survivor區直接進入年老代。對於年老代比較多的應用,可以提高效率;如果將此值設定為一個較大值,則年輕代物件會在survivor區進行多次複製,這樣可以增加物件再年輕代的存活時間,增加在年輕代即被**的概率。根據被海量訪問的動態web應用之特點,其記憶體要麼被快取起來以減少直接訪問db,要麼被快速**以支援高併發海量請求,因此其記憶體物件在年輕代存活多次意義不大,可以直接進入年老代,根據實際應用效果,在這裡設定此值為0。

-xx:+useconcmarksweepgc 設定年老代為併發收集。cms(concmarksweepgc)收集的目標是儘量減少應用的暫停時間,減少full gc發生的機率,利用和應用程式執行緒併發的垃圾**執行緒來標記清除年老代記憶體,適用於應用中存在比較多的長生命週期物件的情況。

.tomcat maxconnections    最大連線數 伺服器在任何給定時間接受和處理的最大連線數。達到此數量後,伺服器將接受但不處理另一個連線。此附加連線將被阻止,直到正在處理的連線數低於maxconnections,此時伺服器將再次開始接受和處理新連線。請注意,一旦達到限制,作業系統仍可以根據acceptcount設定接受連線。預設值因聯結器型別而異。對於nio和nio2,預設值為10000。對於apr / native,預設為8192。 請注意,對於windows上的apr / native,配置的值將減小到1024的最大倍數,小於或等於maxconnections。這是出於效能原因而完成的。 如果設定為值-1,則禁用maxconnections功能並且不計算連線。

11.tomcat maxthreads    處理請求的最大執行緒數 此connector要建立的最大請求處理執行緒數,因此確定可以處理的最大併發請求數。如果未指定,則此屬性設定為200.如果執行程式與此聯結器關聯,則忽略此屬性,因為聯結器將使用執行程式而不是內部執行緒池執行任務。請注意,如果配置了執行程式,則會正確記錄為此屬性設定的任何值,但會報告(例如,通過jmx)

-1以明確表示未使用該值。

原文: