1
xbh1794970183564 2021-11-21 11:48:53 +08:00
合理
|
2
xbh1794970183564 2021-11-21 11:50:39 +08:00
3W 你们指望几台机器就顶住吗。。。
|
3
wudaye 2021-11-21 14:54:12 +08:00
排查过瓶颈在哪吗?做过 tomcat 调优吗?
|
4
moshiyeap100 2021-11-21 16:27:01 +08:00
如果不是简单查询接口,我觉得还算合理的,我们的核心业务接口单机 qps 估计 400 都不到。。。。
|
5
fighterhit 2021-11-21 16:34:33 +08:00
听听楼下大佬怎么说
|
6
mind3x 2021-11-21 18:06:09 +08:00 via Android
Spring Boot 什么版本?同步还是异步(WebFlux)? Redis 命中率多高? JVM heap 使用如何? GC 开销占多少?
|
7
reeco 2021-11-21 18:20:56 +08:00 via iPhone
信息太少了,没法评估
|
8
coderbbb 2021-11-21 18:34:48 +08:00
盲猜。按你说的程序流程的话,CPU 大头应该在 VO 转换上,建议把转换后的 VO 缓存。另外,还得看具体业务,比如 VO 的更新频率高不高,缓存命中率能到多少。
|
9
Salticey 2021-11-21 19:15:17 +08:00
合理吧,我之前有压过一个和你说得类似的模块,还是 16C16G 的,但是是容器部署的(我晓得性能会损失多少),单纯命中缓存的数据 tps 能到 3700 ,再往上 cpu 打满直接宕机了。
|
10
mazyi 2021-11-21 20:57:06 +08:00
就看 vo 转换要多少 cpu 了,一个字段还是一百个字段都不一样
|
11
lixintcwdsg 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 飙高说来说起大概率还是线程太多的问题~~ |
12
GeekGao 2021-11-21 23:11:04 +08:00 1
4c8g 的虚拟机能跑出这种 QPS 已经很好了。毕竟云上都是 vCPU ,主频分配是动态的。
btw 从实用角度来看,单机这种量级的线上应用估计起码是个准独角兽公司吧 |
13
Feiex 2021-11-21 23:50:42 +08:00
#11 基础上,再加一项:是不是日志打印太多了,关掉日志再看下
|
14
salmon5 2021-11-22 09:54:28 +08:00
关键是“qps 有 3w”,不差这几块钱
|
15
pmispig 2021-11-22 10:01:47 +08:00
单机居然有这么多,我们单机 qps 只有 20
|
16
securityCoding 2021-11-22 11:24:47 +08:00
@Feiex 日志打印可太影响效率了,曾经压测一个接口关闭日志后 qps 提高了 40%。。。
|
17
securityCoding 2021-11-22 11:27:28 +08:00 1
可以使用阿里开源的 arthas 注入进程看下整体的链路耗时
|
18
jorneyr 2021-11-22 12:55:19 +08:00
云主机的性能不好,同样的配置,比物理机差很多。
2014 年的 MBP, i7 4C 8G ,也是 Spring Boo 程序,和你这个逻辑差不多。 2018 年做的压测,同时连上无线和有线双网卡都工作,QPS 达到 15000 左右,如果只有无线或者有线,QPS 为 7000 多。 |
19
xinQing 2022-01-28 16:20:32 +08:00
单机居然有这么多,我们单机 qps 只有 100
|