你看过的JVM调优文章可能是盗版葵花宝典!

310 阅读2分钟
  • 欲练神功
  • 必先自宫
  • 如若自宫
  • 未必成功
  • 若未自宫
  • 一定成功

如果用关键字“JVM 参数调优”搜索,一定会得到若干文章,上面说了一堆"-XX:xxx"参数。然而,这些都是盗版葵花宝典。。。。。。

请看收下这本正版葵花宝典,哦不,请收下下面的九阳神功。

docs.oracle.com/en/java/jav…

你只需要设置两个参数:

  • -XX:MaxGCPauseMillis 最大GC停顿时间(毫秒)
  • -XX:GCTimeRatio CPU用在GC上的时间比例,cpu最大用的时间比例为:1/(1+GCTimeRatio)

大道至简,一波A平。

其它一大堆-XX参数设置了,多半概率是在自宫。 因为JVM会根据上面两个参数自动调整JVM堆内存大小,新生代老年代XX带大小的比例。你不设置他们的大小还好,设置了之后,JVM就不会自动调整了,如果设置不合理,就和自宫一样。。。

最关键是,如果你是一个复杂的业务系统,不同的业务使用内存特性不一样。可能上午和下午需要的堆大小,各代的比例根本就不一样。设置死了反而不好。

当然,如果你服务器除了运行一个Java,还运行其它Java程序或者其它程序。 可以设置一个-Xmx。防止内存泄漏祸害整个服务器。

另外,可以将GC日志打出来,用于分析将来可能出现的问题。

如果性能有问题,捣鼓那一堆-XX参数可能没有啥效果,第一时间看GC日志,考虑加内存,加CPU,最后考虑改代码。(程序员一天的成本可能几千块呢。。。)

记得将上面的九阳神功看完,仅看只言片语就急着修炼走火入魔可不许赖我。