|      1xbh1794970183564      2021-11-21 11:48:53 +08:00 合理 | 
|      2xbh1794970183564      2021-11-21 11:50:39 +08:00 3W 你们指望几台机器就顶住吗。。。 | 
|      3wudaye      2021-11-21 14:54:12 +08:00 排查过瓶颈在哪吗?做过 tomcat 调优吗? | 
|  |      4moshiyeap100      2021-11-21 16:27:01 +08:00 如果不是简单查询接口,我觉得还算合理的,我们的核心业务接口单机 qps 估计 400 都不到。。。。 | 
|      5fighterhit      2021-11-21 16:34:33 +08:00 听听楼下大佬怎么说 | 
|  |      6mind3x      2021-11-21 18:06:09 +08:00 via Android Spring Boot 什么版本?同步还是异步(WebFlux)? Redis 命中率多高? JVM heap 使用如何? GC 开销占多少? | 
|  |      7reeco      2021-11-21 18:20:56 +08:00 via iPhone 信息太少了,没法评估 | 
|      8coderbbb      2021-11-21 18:34:48 +08:00 盲猜。按你说的程序流程的话,CPU 大头应该在 VO 转换上,建议把转换后的 VO 缓存。另外,还得看具体业务,比如 VO 的更新频率高不高,缓存命中率能到多少。 | 
|  |      9Salticey      2021-11-21 19:15:17 +08:00 合理吧,我之前有压过一个和你说得类似的模块,还是 16C16G 的,但是是容器部署的(我晓得性能会损失多少),单纯命中缓存的数据 tps 能到 3700 ,再往上 cpu 打满直接宕机了。 | 
|  |      10mazyi PRO 就看 vo 转换要多少 cpu 了,一个字段还是一百个字段都不一样 | 
|      11lixintcwdsg      2021-11-21 22:00:07 +08:00  8 不合理,一般来说 QPS200 CPU70%,大概率存在大量线程切换,检查一下几个地方 1. spring boot 线程数是不是满了,自带 tomcat 默认 200 ,如果满了说明后端处理太慢了。 2. 看一下你的 mysql 线程池大小多少,是不是默认的 8 。 3. 看一下你的 mysql 每条查询到底多少毫秒,开一下 druid 这类链接池监控就行,看看是不是 mysql 查询存在瓶颈。 4. 开 jprofile 之类的工具,在线看一下 CPU 事件消耗在哪里,大概是 mysql 引起的线程等待 可能的处理方案: 1. 如果 mysql 存在瓶颈,建议把 spring boot 的线程数调低,高了毫无意义。 2. mysql 查询快,你可以缩小你的 mysql 线程池数量,反之扩大。 3. redis 确保用异步驱动不要用 jedis 4. 客户端是离散的还是集中的,如果固定一些极其请求你这个服务,http keep-alive 记得开。 最后,你这类服务如果要用 java ,不建议 spring boot 。至少不要用同步的 jdbc ,该用异步数据库驱动+异步 redis 驱动+少线程(一般都是基于 netty )的 web 容器。比如干脆 vert.x 当然这个涉及到技术选型,可能你说了不算。还有一个方案你可以参考,就是把 spring boot 不要自己接 http 请求,spring boot 就启动一个 netty 就好了,netty 负责 http 编解码和 vo 转换部分,netty 和 spring boot 通过 applicationContext 交互。至少保证线程数不太多,CPU 也不会飙多高,你专心调整的 mysql 线程池到一个合理数量。 最后,CPU 飙高说来说起大概率还是线程太多的问题~~ | 
|  |      12R4rvZ6agNVWr56V0      2021-11-21 23:11:04 +08:00  1 4c8g 的虚拟机能跑出这种 QPS 已经很好了。毕竟云上都是 vCPU ,主频分配是动态的。 btw 从实用角度来看,单机这种量级的线上应用估计起码是个准独角兽公司吧 | 
|      13Feiex      2021-11-21 23:50:42 +08:00 #11 基础上,再加一项:是不是日志打印太多了,关掉日志再看下 | 
|      14salmon5      2021-11-22 09:54:28 +08:00 关键是“qps 有 3w”,不差这几块钱 | 
|  |      15pmispig      2021-11-22 10:01:47 +08:00 单机居然有这么多,我们单机 qps 只有 20 | 
|      16securityCoding      2021-11-22 11:24:47 +08:00 @Feiex 日志打印可太影响效率了,曾经压测一个接口关闭日志后 qps 提高了 40%。。。 | 
|      17securityCoding      2021-11-22 11:27:28 +08:00  1 可以使用阿里开源的 arthas 注入进程看下整体的链路耗时 | 
|      18jorneyr      2021-11-22 12:55:19 +08:00 云主机的性能不好,同样的配置,比物理机差很多。 2014 年的 MBP, i7 4C 8G ,也是 Spring Boo 程序,和你这个逻辑差不多。 2018 年做的压测,同时连上无线和有线双网卡都工作,QPS 达到 15000 左右,如果只有无线或者有线,QPS 为 7000 多。 | 
|      19xinQing      2022-01-28 16:20:32 +08:00 单机居然有这么多,我们单机 qps 只有 100 |