V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
chunrong918
V2EX  ›  程序员

jvm 性能调优--问题请教

  •  
  •   chunrong918 · 2020-01-12 13:40:02 +08:00 · 3328 次点击
    这是一个创建于 1778 天前的主题,其中的信息可能已经有所发展或是发生改变。

    除了设置新生代,老年代比例大小,选择 gc 收集器,

    还可以进行哪些方面的调优

    14 条回复    2020-01-13 09:43:52 +08:00
    sagaxu
        2
    sagaxu  
       2020-01-12 13:59:29 +08:00 via Android
    如果有固定的调优参数,jvm 早做成默认参数了
    coolmenu
        3
    coolmenu  
       2020-01-12 14:25:38 +08:00 via Android
    Oracle 估计快出一版基于 ai 的调教了
    zartouch
        4
    zartouch  
       2020-01-12 15:39:39 +08:00
    建议去翻 gc 参数,不同的 gc 收集器是不一样的。比如 cms 之前我们还会设置,objects 占比多少的时候启动 cms,启用多少线程数,full gc 时强制预处理( CMSMaxAbortablePrecleanTime 默认 5s )。其他的还有晋升老年代的阈值等
    wysnylc
        5
    wysnylc  
       2020-01-12 16:15:45 +08:00
    建议开始了解 zgc,已经取消新生代老年代永久代,就剩下个元空间
    chendy
        6
    chendy  
       2020-01-12 16:52:15 +08:00
    HiShan
        7
    HiShan  
       2020-01-12 17:17:23 +08:00
    具体场景是啥?每个场景适用不同的 gc 就行了,一般都不用调
    anyele
        8
    anyele  
       2020-01-12 18:28:21 +08:00 via Android
    搭车问,有 zgc 后,还需要 jvm 调优吗
    lewis89
        9
    lewis89  
       2020-01-12 19:24:22 +08:00
    其实说实话 JVM 真的没啥好调优的,除了在 吞吐量 内存占用 延时上 做个取舍,选个 GC 算法,其余真的没啥好调的,默认就够了,像 CMS 新生代采用 标记复制算法,已经给你配好比例了 你自己去优化完全就是 自取其辱。
    cubecube
        10
    cubecube  
       2020-01-12 22:24:59 +08:00
    @lewis89 也不完全对。jvm 丰富的 gc 参数灵活性还是很棒的,不同的场景下不同的适用参数,在内存受限或者进程常驻的情况下还挺重要的。另外 cms 部分参数乱调整的话,还不如不调整, 容易适得其反,导致频繁 full gc
    cubecube
        11
    cubecube  
       2020-01-12 22:25:33 +08:00
    cms 在 jdk14 貌似都要被删除了,新项目最好直接 g1
    lewis89
        12
    lewis89  
       2020-01-13 07:24:28 +08:00
    @cubecube #10 就微服务架构这块,我觉得没啥好调优的,一个服务实例撑死就给几个 G 的内存,在 GC 回收参数上调优基本上没有太大意义,单个服务实例如果出现问题,通过链路监测降低它的负载,或者直接让它下线,让其它实例顶上,反正实例都是无状态的,问题不大。
    lewis89
        13
    lewis89  
       2020-01-13 07:26:50 +08:00   ❤️ 1
    @cubecube #10 主要现在已经不是单体时代了,网上有很多段子,说公司老的服务 老是 OOM 重启,但是又排查不了原因,leader 为了大家晚上睡个好觉,后来干脆搞了十几个实例副本,自动负载均衡,如果哪个服务挂壁了 让它直接 down 掉重启,让备用实例顶上。
    Aresxue
        14
    Aresxue  
       2020-01-13 09:43:52 +08:00
    感觉还不如研究下怎么调整线程数、数据库连接这些东西。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   965 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 19:28 · PVG 03:28 · LAX 11:28 · JFK 14:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.