tomcat 的 maxThreads 和 maxConnections 有没有建议值啊 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
luxinfl
V2EX    程序员

tomcat 的 maxThreads 和 maxConnections 有没有建议值啊

  •  
  •   luxinfl 2023-01-08 22:54:45 +08:00 2404 次点击
    这是一个创建于 1091 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有个 8C32G 的服务器,部署了一个 springboot 服务,只有一个接口,这个接口执行时间正常大概 1ms 的样子(可能 1 毫秒都不到,接口具体逻辑就是往一个 LinkedBlockingQueue offer 数据,然后会有个定时任务把这个队列的数据写入 hbase )。经常每天都有>780ms 并且次数>100 的超时告警。

    现在默认设置是 maxThreads=200 maxCOnnections=10000 ,我在想是不是可以调大一点线程数,因为看了 cpu 和内存占用都蛮低的。 有看过一个帖子说 1C4G 建议 200 并发,4C8G 建议 800 并发。。

    暂时没有 tomcat 运行时的日志信息,还没打印,有什么手段可以排查这个高时延么。接口每天大概 2.7 亿调用量。

    第 1 条附言    2023-01-09 10:01:33 +08:00
    还发现一个奇怪的状况,我在测试环境压测,activeCount 还没到核心线程池的数量,然后队列就已经有数据了,这是个什么情况。按理说没到核心线程数队列不改有数据。是打印日志那一刻有问题么。。
    17 条回复    2023-01-10 09:18:52 +08:00
    roundgis
        1
    roundgis  
       2023-01-08 23:40:22 +08:00 via Android
    用 g1gc 看看
    NXzCH8fP20468ML5
        2
    NXzCH8fP20468ML5  
       2023-01-08 23:55:07 +08:00 via Android
    首先要判断一下,这个超时是哪方面的超时?
    是线程池不够来引起的?扩大线程池。
    还是垃圾回收引起的?换 G1 或 ZGC 。
    还是是队列被阻塞引起的?换队列实现,或者用 ThreadLocal 多队列。
    oldshensheep
        3
    oldshensheep  
       2023-01-09 01:18:53 +08:00 via Android
    用 java19 virtual thread 。。。
    开玩笑的,因为你还不知道为什么超时,可以参考楼上的。我觉得应该是队列的问题,可能满了。
    securityCoding
        4
    securityCoding  
       2023-01-09 08:36:38 +08:00 via Android
    最高 qps 呢
    FrankAdler
        5
    FrankAdler  
       2023-01-09 09:30:37 +08:00 via iPhone
    一毫秒的意思就是一个线程 1 秒能处理 1000 个请求,每天 2.7 亿平均一秒 3k ,算上峰谷不等,我觉得你线程数开 10 个就够了
    所以我建议你学学怎么排查慢请求
    imv2er
        6
    imv2er  
       2023-01-09 09:40:05 +08:00
    极极极大概率是没及时写入 hbase ,queue 满了 和 tomcat 无关
    luxinfl
        7
    luxinfl  
    OP
       2023-01-09 09:49:29 +08:00
    @xxfye 怀疑是 tomcat 的默认设置的问题,这个要等部署后才能看到线程池的运行信息。
    垃圾回收都是默认设置的,这个问题不大。
    队列阻塞应该不会,因为用的 offer 方法存数据,不存在锁,存不进去直接丢弃了。
    luxinfl
        8
    luxinfl  
    OP
       2023-01-09 09:49:49 +08:00
    @securityCoding 应该有七八千吧
    luxinfl
        9
    luxinfl  
    OP
       2023-01-09 09:50:58 +08:00
    @imv2er queue 满了的话,接口会直接返回不阻塞。
    yc8332
        10
    yc8332  
       2023-01-09 09:57:41 +08:00
    不是说开越多越快。
    luxinfl
        11
    luxinfl  
    OP
       2023-01-09 09:59:38 +08:00
    @FrankAdler 没啥头绪啊。。。。
    securityCoding
        12
    securityCoding  
       2023-01-09 10:23:34 +08:00
    大概率是 gc 引起的,重点查这个方向
    Vaspike
        13
    Vaspike  
       2023-01-09 10:43:21 +08:00
    推荐 Spring boot admin 这个 actuator
    tianmalj0613
        14
    tianmalj0613  
       2023-01-09 10:51:52 +08:00
    服务接入一下 prometheus ,或者其他监控工具,把系统的指标存下来才能定量定性分析。
    有数据之后,用 UI 工具,比如 grafana 展示成图表就知道问题了
    Chinsung
        15
    Chinsung  
       2023-01-09 11:14:42 +08:00
    看这个描述,看下内存使用情况,大概率是 GC 导致的
    GBdG6clg2Jy17ua5
        16
    GBdG6clg2Jy17ua5  
       2023-01-09 11:33:46 +08:00
    缺相关监控很难直接判断,安照经验应该大概率是 full GC 了
    luxinfl
        17
    luxinfl  
    OP
       2023-01-10 09:18:52 +08:00
    @securityCoding
    @Chinsung
    @angryfish
    我用 jstat 看了下,还真是,咋测的时候一秒一次 ygc ,大概停顿 10 几毫秒的样子
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2988 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 13:43 PVG 21:43 LAX 05:43 JFK 08:43
    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