pmispig
V2EX  ›  Java

对于 spring web 应用, jvm old generation 是不是应该设置小一点比较合理?

  •  
  •   pmispig · Jun 17, 2021 · 2037 views
    This topic created in 1794 days ago, the information mentioned may be changed or developed.
    比如 Xmx4g , old generation 应该 512m 就够了?
    看网上很多都说建议 1 比 1. 像 web 应该,持久化的对象应该不太多吧?有点疑惑.
    8 replies    2021-06-20 19:58:32 +08:00
    fkname
        1
    fkname  
       Jun 17, 2021
    一般都是老年代比新生代大吧,因为老年代会接收新生代的对象,如果老年代空间不足会导致 oom
    linbiaye
        2
    linbiaye  
       Jun 17, 2021
    具体情况具体分析吧,web 大多数请求生成的 object 都是用完就丢,old generation 都是 spring 的 bean 和容器生成的 object,确实不用太大,4g 先给个 1g 然后观察下是否可以继续缩减。
    hhjswf
        3
    hhjswf  
       Jun 17, 2021
    @fkname 老年代满了不是 full gc 吗
    securityCoding
        4
    securityCoding  
       Jun 17, 2021
    这是条不归路,上 G1
    fkname
        5
    fkname  
       Jun 17, 2021
    @hhjswf full gc 后还是不够呢?
    chendy
        6
    chendy  
       Jun 17, 2021
    看用不用应用内缓存( guava cache 之类的),用的话多给点,不用的话少给
    注意观察 gc 情况慢慢调就行
    tachikomachann
        7
    tachikomachann  
       Jun 17, 2021 via Android
    设一下 xmx,xms 和一些常见参数,然后线上运行一段时间看看,或者压测看下结果。
    很多应用的使用场景还不需要调优。
    hdfg159
        8
    hdfg159  
       Jun 20, 2021 via Android
    毕竟单例对象可能较多,按照默认 1 比 1 就行了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2773 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 11:11 · PVG 19:11 · LAX 04:11 · JFK 07:11
    ♥ Do have faith in what you're doing.