java經常使用JVM參數介紹

採集服務JVM參數說明
-Xmx4g -Xms4g -Xmn512m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=4g -Xss256k
Xms 是指設定程序啓動時佔用內存大小
Xmx 是指設定程序運行期間最大可佔用的內存大小。若是程序運行須要佔用更多的內存,超出了這個設置值,就會拋出OutOfMemory異常。
Xss 是指設定每一個線程的堆棧大小。
JDK5.0之後每一個線程堆棧大小爲1M,之前每一個線程堆棧大小爲256K。更具應用的線程所需內存大小進行調整。在相同物理內存下,減少這個值能生成更多的線程。可是操做系統對一個進程內的線程數仍是有限制的,不能無限生成,經驗值在3000~5000左右。
-Xmn2g :設置年輕代大小爲2G。整個堆大小=年輕代大小 + 年老代大小 + 持久代大小 。持久代通常固定大小爲64m,因此增大年輕代後,將會減少年老代大小。此值對系統性能影響較大,Sun官方推薦配置爲整個堆的3/8
JVM源碼分析之Metaspace解密
https://www.jianshu.com/p/92a5fbb33764
MetaspaceSize
默認20.8M左右(x86下開啓c2模式),主要是控制metaspaceGC發生的初始閾值,也是最小閾值,
MaxMetaspaceSize
默認基本是無窮大,可是我仍是建議你們設置這個參數,這個參數會限制metaspace(包括了Klass Metaspace以及NoKlass Metaspace)被committed的內存大小,會保證committed的內存不會超過這個值,一旦超過就會觸發GC
kafka jKAFKA_GC_LOG_OPTS
JVM提供了大量命令行參數,打印信息,供調試使用。主要有如下一些:
-Xloggc:$LOG_DIR/$GC_LOG_FILE_NAME -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps
-Xloggc:filename :與上面幾個配合使用,把相關日誌信息記錄到文件以便分析
具體參數參考:
https://www.cnblogs.com/ceshi2016/p/8447989.html
相關文章
相關標籤/搜索