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

接口访问次数多了变慢是 tomcat 限制还是服务器 cpu 限制?

  •  
  •   liu1996 · 2021-11-03 09:16:54 +08:00 · 3403 次点击
    这是一个创建于 877 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我们的项目是单机部署。
    有一个接口,平常访问是 300ms 左右,有一次 4 分钟内项目所有请求是 12000 次,其中这个接口被访问了 8000 次,有 1000 次左右响应时间都是 11s 。
    我们的服务器是 8 核 16 线程的,一共部署了 4 个项目,其他项目是内部使用,访问量不会太大,tomcat 参数没有配置过。
    现在我想问一下,那次访问变慢是 8 核 cpu 处理太多请求的原因,还是 tomcat 限制 200 并发的原因?
    求各位大佬解答
    19 条回复    2021-11-05 15:00:48 +08:00
    hulala1021
        1
    hulala1021  
       2021-11-03 09:19:45 +08:00
    应该是并发问题,阻塞了
    liuxu
        2
    liuxu  
       2021-11-03 09:51:17 +08:00   ❤️ 3
    我的电脑平时用的挺好了,开了个软件就卡了,怎么回事,是不是我的电脑限制了这个软件运行,求大佬解答
    BBCCBB
        3
    BBCCBB  
       2021-11-03 09:55:43 +08:00
    要做监控.. 才能知道是 tomcat, cpu 还是说压力大了你代码里某部分执行的慢了. 比如 sql 在压力下执行的慢了.

    猜是猜不出来的.
    theOneMe
        4
    theOneMe  
       2021-11-03 09:55:59 +08:00
    就你单机部署,单个接口而言,限制并发的原因就是接口的响应耗时和线程数配置,当然这些影响因素要以其中的短板来说
    Mithril
        5
    Mithril  
       2021-11-03 09:58:07 +08:00
    性能调优要先做 profile ,不要虚空打靶随便瞎调。除非这问题你见过,不然纯属浪费时间。
    dranfree
        6
    dranfree  
       2021-11-03 09:58:50 +08:00
    这个信息不够啊,你只描述了现象,响应慢的话和 CPU 负载、数据库负载都有关系的,还是得看当时的服务器状态
    securityCoding
        7
    securityCoding  
       2021-11-03 10:01:54 +08:00
    接口反应慢第一时间查 sql ,一上来就开始 tomcat 调优大概率会调了个寂寞
    clf
        8
    clf  
       2021-11-03 10:07:09 +08:00
    接口做了啥操作,数据库是啥,信息呢?

    (我电脑很卡,你能帮我修一下吗)
    MaxTan
        9
    MaxTan  
       2021-11-03 10:45:23 +08:00
    我最近在拿上游接口数据,也是跑个几分钟就开始变慢,最后干脆 timeout 无响应,老实说是不是你?
    dqzcwxb
        10
    dqzcwxb  
       2021-11-03 11:05:47 +08:00
    接口响应 11s 你不去优化再怎么提高线程池数并发数都白搭
    ch2
        11
    ch2  
       2021-11-03 11:08:33 +08:00
    查日志
    byte10
        12
    byte10  
       2021-11-03 11:14:19 +08:00
    只有一个原因那就是代码烂,8 核 闭着眼睛写,只要逻辑正确,随便几千的并发问题不大。4 分钟 8000 次,平均每秒 40 并发,赶紧看看代码把,tomcat 默认配置都不至于这么差的并发,哪怕配置负优化,也不至于这么差。
    kiracyan
        13
    kiracyan  
       2021-11-03 11:34:12 +08:00
    跑个压测看看服务器瓶颈在哪
    3kkkk
        14
    3kkkk  
       2021-11-03 15:18:12 +08:00
    查代码吧你是有多看不起 tomcat 和 8 核主机。
    Latin
        15
    Latin  
       2021-11-03 15:57:25 +08:00
    开个 ssh 让我上去看看(
    yuseoikei
        16
    yuseoikei  
       2021-11-03 16:18:41 +08:00
    看一下哪些更新操作的 sql 比较耗时,而且没走索引
    nekoyaki
        17
    nekoyaki  
       2021-11-03 17:46:35 +08:00
    老板让你同时干 10 个活,你干得比干一个活的时候慢,是公司的限制还是老板的限制?
    zeni123
        18
    zeni123  
       2021-11-03 20:49:14 +08:00
    用 java 自带工具 jvisualvm 连上去看看

    1. CPU 占用量
    2. 线程的数量 一台机器最大 10000 ,也也可看看有多少是 WAITING 状态。看看是否有死锁
    3. Full GC 是否频繁

    上面是 JAVA 的,然后就是看数据库的了
    Konys
        19
    Konys  
       2021-11-05 15:00:48 +08:00
    遇到这种问题我一般先往 SQL 上想
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2790 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 14:44 · PVG 22:44 · LAX 07:44 · JFK 10:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.