JVM調優總結 -Xms -Xmx -Xmn -Xss


JVM調優總結 -Xms -Xmx -Xmn -Xss

采集服務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 :與上面幾個配合使用,把相關日志信息記錄到文件以便分析
具體參數參考:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM