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

第一次写 springboot 项目,不知道如何进行压力测试,用满服务器资源,求大佬执教

  •  
  •   ningxing · 13 天前 · 1125 次点击

    用 JMeter 测试 springboot 程序,64 核心没用满,只是用了 1%,500G 内存只用了几十 G ,但是其他人访问 springboot 的时候卡死了,如何压测每天 5000 人左右访问 springboot 项目,求大佬解答

    9 条回复    2025-08-29 14:59:51 +08:00
    serverKnignt
        1
    serverKnignt  
       13 天前
    JVM 给少了吧,这玩意问问 AI 就知道了。一般没压测过,直接干就完事了。你这么大内存,如果没其他应用先给个 3/2 。不行再扩容呗
    Narcissu5
        2
    Narcissu5  
       13 天前
    线程数不够,或者线程都卡在同一个地方了,jstack 看一下
    话说第一次写 springboot 项目就能有 64 核心 500G 机器,贵公司咋这么有钱😵
    ningxing
        3
    ningxing  
    OP
       13 天前
    @Narcissu5 arm 架构的服务器,双 cpu ,总的 64 核心,512G 内存,现在准备上线系统了,JMeter 测试一个接口 500 个请求直接卡住了,返回好多报错,其他人再访问接口貌似 java 程序卡死了。不知道如何设置
    Goooooos
        4
    Goooooos  
       13 天前
    用的是 tomcat-starter 吧,调整下 tomcat 的线程,你把 tomcat 的线程压满肯定卡。
    Plutooo
        5
    Plutooo  
       13 天前   ❤️ 1
    默认你是用 tomcat ,yml 配置一下
    server:
    tomcat:
    threads:
    #最大线程数
    max: 1000
    teek
        6
    teek  
       13 天前
    压测要有监控指标作为参考,把 tomcat 监控弄一下,看看线程使用情况
    ningxing
        7
    ningxing  
    OP
       13 天前 via Android
    @Plutooo 没有用 tomcat ,用的国产东方通,然后系统是 arm 架构的华为服务器
    ningxing
        8
    ningxing  
    OP
       13 天前 via Android
    @serverKnignt JVM 设置全部内存也没有动,只用了几十 g
    guyeu
        9
    guyeu  
       11 天前
    1. 把每天 5000 人访问这个指标转换为可以通过压测量化的指标:请求接口分布、每秒请求数、响应延时、并发连接数、数据库的 TPS 、数据库的连接数,一般认为在预期载荷的情况下,内存/CPU 等核心硬件资源使用率在安全线( 50%)是符合预期的;
    2. 编写施压端方案,这方面的工具或者方法就很多了,不同的业务场景适用的东西也不一样;
    3. 确保施压端和服务端的可观测性,服务端重点是影响服务的可用性和稳定性的指标,施压端终点是影响用户体验的指标,这样才能产出有说服力的报告;
    4. 执行压测,分析性能瓶颈,解决问题,直到压测表现符合预期

    根据你的描述,很明显是业务逻辑的问题,包括但不仅限于死锁、死循环、资源争用、上游 API 的问题。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1010 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:30 · PVG 06:30 · LAX 15:30 · JFK 18:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.