再来一波 jdk21 生产环境项目真实压测数据 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ebony0319
V2EX    Java

再来一波 jdk21 生产环境项目真实压测数据

  •  2
     
  •   ebony0319 2023-12-27 11:09:04 +08:00 3145 次点击
    这是一个创建于 655 天前的主题,其中的信息可能已经有所发展或是发生改变。

    先说下结论

    单 pod ,4 核 8G 的情况下,接口压测可以到 6W TPS. 用 JdbcTemplate 查询的数据库。数据表大小 > 20 亿,这里跟索引的大小有关系,正常情况下可以到 1.1 万样子,数据量小的时候可以到 5w(这里我不敢发),sql 走了联合索引,sql 大是

    select b,status where member_id=1 and b in (11111,22222,3333) 

    压测图展示

    • 应用 应用压测

    • db db

    在此过程中我遇到的问题

    在开启虚拟线程下,Hikari 表现非常糟糕。 https://github.com/brettwooldridge/HikariCP/issues/2151

    为了解决这个问题,我是将 spring.threads.virtual.enabled=false,并且手动开启 tomat 的来解决的。

    @Bean @ConditionalOnProperty(prefix = "server.tomcat.threads.virtual", name = "enabled", havingValue = "true") public TomcatProtocolHandlerCustomizer<?> protocolHandlerVirtualThreadExecutorCustomizer() throws LifecycleException { StandardVirtualThreadExecutor standardVirtualThreadExecutor = new StandardVirtualThreadExecutor(); standardVirtualThreadExecutor.start(); return protocolHandler -> protocolHandler.setExecutor(standardVirtualThreadExecutor); } 

    大致情况就是这样,大家有兴趣可以一起交流。

    第 1 条附言    2023-12-28 14:43:23 +08:00

    资源占用情况大概是这样,差不太多。有点久了,我当时的截图七零八落的。

    WX20231228-143255@2x

    这是在HikariCP虚拟线程下与非虚拟线程下表现,虚拟线程有点差劲。 ![xxx]https://github.com/brettwooldridge/HikariCP/assets/3062476/2d987251-653c-49a3-bcfa-fd964cb3b03a)

    有一个内存占用情况,但是忘记是哪种情况下的占用了。 xxxx

    16 条回复    2023-12-28 16:40:58 +08:00
    drupal
        1
    drupal  
       2023-12-27 12:46:54 +08:00
    这数据很了不起了
    lsk569937453
        2
    lsk569937453  
       2023-12-27 15:32:26 +08:00
    我压测 4 核 8G 的 nginx ,tps 不到 5w 。配置在这里 https://github.com/lsk569937453/silverwind/blob/main/benchmarks/nginx/docker-compose.yaml

    你 4 核 8G 居然能到 6W 。。。。。
    allblux
        3
    allblux  
       2023-12-27 16:02:17 +08:00
    请问一下这个压测工具是啥
    daiv
        4
    daiv  
       2023-12-27 16:10:08 +08:00
    请问你用了那个画图的库, 谢谢
    ebony0319
        5
    ebony0319  
       2023-12-27 17:38:29 +08:00
    @allblux 阿里云的 PTS
    ebony0319
        6
    ebony0319  
    OP
       2023-12-27 17:38:52 +08:00
    @daiv 这里阿里云 PTS 的压测报告图。
    ebony0319
        7
    ebony0319  
    OP
       2023-12-27 17:42:58 +08:00
    @lsk569937453 这里跟您的配置与方案有关系,比如长链接,短链接,我们之前单纯压 nginx ,2 核心 2G 就可以达到 4 ,5 万样子了。那个图找不到了。
    ebony0319
        8
    ebony0319  
    OP
       2023-12-27 17:45:33 +08:00
    @lsk569937453 还有一个跟你压测的工具有关系,你有没有足够的机器能对你的压测机器产生足够的压力么。
    ebony0319
        9
    ebony0319  
    OP
       2023-12-27 17:46:30 +08:00
    @ebony0319 长连接,短连接。纠正一下。
    ebony0319
        10
    ebony0319  
    OP
       2023-12-27 17:49:44 +08:00
    @lsk569937453 https://github.com/brettwooldridge/HikariCP/issues/2151 这里有我测试占用的资源情况,差不太多,您可以看下。
    keepRun
        11
    keepRun  
       2023-12-27 22:52:41 +08:00 via Android
    java gc 、内存等监控怎样?
    allblux
        12
    allblux  
       2023-12-28 09:24:18 +08:00
    @ebony0319 好的.多谢
    siweipancc
        13
    siweipancc  
       2023-12-28 10:01:46 +08:00 via iPhone
    照我之前在 3.2.1 的测试,实际上你这个配置也就没有开虚拟线程池,那如果查询结果返回给前段前随机睡一段时间,tps 真能爬这么高吗?
    ebony0319
        14
    ebony0319  
    OP
       2023-12-28 14:34:09 +08:00
    ebony0319
        15
    ebony0319  
    OP
       2023-12-28 14:36:20 +08:00
    @keepRun 大概如上图,有点久了,我找不到的 gc 情况,应该就是这样。上图应该是压 Hikari 的情况。
    keepRun
        16
    keepRun  
       2023-12-28 16:40:58 +08:00
    感觉 jdk21 会成为下一个 jdk8 ,相比之前的版本优势比较大
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2407 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 15:36 PVG 23:36 LAX 08:36 JFK 11:36
    Do have faith in what you're doing.
    ubao 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