jvm 堆大小,蚂蚁面试 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
badboy17
V2EX    Java

jvm 堆大小,蚂蚁面试

  •  
  •   badboy17 2022-09-16 21:16:02 +08:00 3323 次点击
    这是一个创建于 1201 天前的主题,其中的信息可能已经有所发展或是发生改变。

    面试被问到我们的机器内存多大,我们的 jvm 参数怎么设置的,如果是 32g 的内存机器,堆应该设置多大比较合适,怎么考量的,我答得不好,问问大家怎么看

    6 条回复    2022-09-21 08:59:59 +08:00
    546L5LiK6ZOt
        1
    546L5LiK6ZOt  
       2022-09-16 21:28:06 +08:00
    我觉得这种很难通过理论分析来确定一个最优值的,可以先凭经验设置一个大概的参数,例如 30g 堆内存,再通过压测来不断调参,直到满足性能需求
    chendy
        2
    chendy  
       2022-09-16 22:55:10 +08:00
    24g ,预留 8g 给堆外内存
    参数一个 Xms24g 一个 Xmx24g 再来一个 alwayspretouch ,心情好再给一个 eden 分一半
    差点忘了 urandom

    考量是虽然我们服务没人用,但是如果内存用的不够的话,基础设施会找我们收机器
    git00ll
        3
    git00ll  
       2022-09-16 23:01:01 +08:00
    如果是我配置的话 cms 回收器,
    xms26g xmx26g xmn10g -XX:MaxPermSize=3g ,新生代其实不需要设置特别大,不然 YGC 的时间会太长

    g1 的话,配个最大值就好
    ihehe
        4
    ihehe  
       2022-09-17 07:52:26 +08:00 via iPhone
    这个得先看部署什么应用了
    kafka 这种的 jvm 给超过 8g 就是浪费,全靠 mmap 浪
    还有其他一些高性能的都在堆外浪的,有的大部分在直接内存浪的;
    xuanbg
        5
    xuanbg  
       2022-09-17 10:42:16 +08:00
    堆设置多大,和机器内存多大有个半毛钱关系?肯定是需要多大设多大啊。内存多可以多跑几个 docker 容器,不是用来给你浪费的。
    int0x03
        6
    int0x03  
       2022-09-21 08:59:59 +08:00
    对于这个问题, 很有可能是问关于 压缩指针 的问题.
    对于 32 位系统, 理论最多 4G.
    对于 64 位系统, 理论值非常大, 指针宽度是 64 位, 但是这样会导致系统消耗非常多内存, 我们的实际内存又不能完全用到 64 位内存.
    Java 都是字节对齐的, 所以引用指针的最后 3 位一定是 000, 那么这 3 位没用到. 所以对于一个 32 位指针可以指明的空间, 实际我们只需要 29 位, 因为最后 3 位都是 0. 那么同理, 如果我们想使用 32 位指针, 并且最后 3 位也上, 那么其实可以把内存扩展到 32G (4 -> 8 -> 16 -> 32), (后边 3 位也补 0). 所以可以做到 虽然我们使用了 32G 内存, 这些内存指针可以在 32 位里保存. 压缩指针就是在使用内存 32G 以下时候, 系统的引用指针仍然使用 32 位. 这样系统的效率会更好.

    实际的测试是大概 28G 以下, 压缩指针的效率远高于 非压缩指针(64 位).
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1054 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 23:04 PVG 07:04 LAX 15:04 JFK 18:04
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86