1
Seulgi 2022 年 12 月 7 日
你领导是在说理论 tps 5000?
|
2
cheng6563 2022 年 12 月 7 日
没用消息队列消峰?那瓶颈基本就在数据库了。
|
5
2han9wen71an 2022 年 12 月 7 日
@Kontinue 100QPS 的我觉得同步不太可能,等一手大佬回复
|
7
fengpan567 2022 年 12 月 7 日
看看接口的响应时长
|
8
Seulgi 2022 年 12 月 7 日
本身 2c 8g 的 mysql 配置也不算高. 同步峰值不到 1000, 感觉已经差不多了.
|
10
Kontinue OP @fengpan567 图里写了,正常 100 以内,压测下 avg:320ms
|
11
night98 2022 年 12 月 7 日
2c8g tps 顶天应该在 3-4000 左右,理论和实际肯定有差别,你领导在瞎编
|
13
cheng6563 2022 年 12 月 7 日
那没啥办法咯,MySQL 这类数据库的事务性能就这样了。要么怼高配置要么搞下数据分片咯。
|
14
pangdundun996 2022 年 12 月 7 日
有 cat 埋点吗?压测看调用耗时,看具体瓶颈在哪里:应用还是 mysql ,mysql 慢的话看负载,基本就知道该怎么优化了。
而且 QPS 和 TPS 是两码事,你领导要的是 QPS 还是 TPS ? |
15
fengpan567 2022 年 12 月 7 日
每台部署了几个服务,看能不能加下服务数量? btw ,压测时用 arthas 的 trace 命令看看方法的链路的消耗时长
|
16
Kontinue OP @fengpan567 一台一个服务,峰值 cpu 已经 90%,再多开也没意义吧?
|
17
Kontinue OP @pangdundun996 QPS 和 TPS 对于数据库,Q for 查询,T for 事务,那对于一个接口而言指的是什么?我也不太清楚= =
|
18
PlanV 2022 年 12 月 7 日
这是什么测试工具啊,小白认真提问,还有你们说的 TPS 、QPS 分别指什么呢
|
19
mango88 2022 年 12 月 7 日
你领导在瞎扯
|
21
Kontinue OP @PlanV 阿里云这边,我创建的测试是最高 1000 个 RPS ,就是每秒 1000 个请求,实际 TPS 峰值是 960 ,就是最多能处理这么多
|
22
liuhuansir 2022 年 12 月 7 日
@Kontinue 我的理解 tps 的 T 指的是用户通过客户端访问,到服务端响应的整个过程,业务有简单的一次查询 mysql ,也有复杂的多次查询,甚至查询多个库,qps 的 Q 则只是单独指 mysql 的一次查询,也就是说一次 t 可能包含多个 q
|
23
pangdundun996 2022 年 12 月 7 日
@Kontinue 我理解都是指客户端请求接口到返回的过程,但 QPS 是纯查询,而 TPS 是包含增删改操作,显然用 TPS 衡量系统性能更合理,很明显这都是跟特定接口相关联的,不可能每个接口 TPS 都能到 8000 ,所以压测指标一定是根据接口逻辑不同而不同,不可能一概而定,试想一下,查询订单跟下单这两个接口能一样吗?所以你领导的要求不准确
|
24
mango88 2022 年 12 月 7 日
可以尝试一下
1. 把 -xms -xmx 设置成相同的固定值,避免 JVM 自动伸缩堆大小带来影响 2. 增加一个空接口,作为基准测一下机器网络 IO 3. 看一下 redis 的负载监控和数据库的负载,压测时候看一下机器 CPU 负载高的原因,排除一下是否因为写日志造成的磁盘 io 高 |
25
justplaymore 2022 年 12 月 7 日
你的服务组成总共有三个组件:Java 应用,Redis ,MySQL 。
思路:隔离组件测试,找瓶颈点。 经验:大概率瓶颈点是 MySQL ,在上面的三个组件里,关系型数据库的性能是相对很低的。 |
26
xuanbg 2022 年 12 月 7 日
2 台 4C ,rps8000 ?接口响应时间要在 1ms 才能做得到。其实平均 400 就已经非常不错了
|
27
byte10 2022 年 12 月 7 日 @xuanbg 并不是的。https://www.bilibili.com/video/BV1FS4y1o7QB/ 可以看下,这里的压测说明。
从响应时间来说,你的 java 程序起码 大概需要开到 3000 个线程才可以。所以不管你什么配置,哪怕 32 核心,100G 内存。 首先设置足够的线程数: 先验证是否 mysql 的瓶颈,直接 mysql 加到 16 核,看看是否有改善。如果没有的话,那么就说明瓶颈在 java 程序上,估计是 java 的代码太复杂了。 如果瓶颈在 mysql ,要么优化 sql ,要么加配置。 https://www.bilibili.com/video/BV1FS4y1o7QB/ 可以看下,这里的有讲解吞吐量的实际情况。 还有你压测的 http 连接数一定要跟大于线程数,也就是你接口响应是 100ms ,那么你至少 1000 个 http 连接数才有可能达到 1w qps ,这个细节很少人知道。不解释,可以直接看视频。 另外 java 有 jit ,必须要预热一下,才可以得到 实际上的性能,不然不准确。 |