碰到个很奇怪的问题,没有头绪

2022-02-26 17:18:46 +08:00
 luxinfl

服务器是 16U64G

在压测一个接口,这个接口只会走本地内存缓存。 第一次从 30 并发开始,步进 30 ,每次 3 分钟,到 180 并发结束。最大的吞吐量是在 30 并发的时候,吞吐量有 6000+,之后都是慢慢掉到 4000+。

第二次从 100 并发开始,步进 150 ,到 350 结束。最大的吞吐量也是在 6000+,然后回落到 4000+附近。

tomcat 的连接数都是 spring 的默认配置。

想知道为啥吞吐量只有一开始最大,后面就会掉落。有什么比较好的分析思路麽????

2407 次点击
所在节点    程序员
11 条回复
luxinfl
2022-02-26 17:31:07 +08:00
正常来说都是有一个拐点的啊,这个随着并发数增加,吞吐量一直在下降,就很不对劲啊。
yiXu
2022-02-26 17:55:37 +08:00
你这个正常来说有拐点,是因为什么因素,是否是一开始就达到了这个原因出现拐点。
fallingg
2022-02-26 17:56:57 +08:00
仅涉及内存操作的接口,并发很低的话也能把吞吐量打满,吞吐量下降是不是因为 jvm 开始 GC 了?
fallingg
2022-02-26 17:58:09 +08:00
程序启动的 Jvm 配置方便发下吗,本地内存缓存是用的什么库?
chendy
2022-02-26 17:59:39 +08:00
信息太少了
多少个实例?有没有指定特殊参数?
压测的同时检测一下机器的负载情况和 jvm 的 gc 情况
luxinfl
2022-02-26 20:16:34 +08:00
@yiXu 数据全走的本地缓存,一开始不可能出现拐点,因为 30 并发和 100 并发一样。
luxinfl
2022-02-26 20:18:21 +08:00
@fallingg 确实也想过是不是频繁 gc ,但是想了下没有新增什么东西,所以先排除了
luxinfl
2022-02-26 20:19:07 +08:00
@chendy
@fallingg
我也想过找下 jvm 和 gc 信息,可惜服务器上能搞
luxinfl
2022-02-26 20:45:35 +08:00
@chendy
@fallingg
性能低的原因可能找到了,因为服务启动脚本打了大量的日志,而且磁盘都快满了
redford42
2022-02-26 20:57:55 +08:00
@luxinfl 清了日志再试试复现呢
luxinfl
2022-02-27 17:17:54 +08:00
@redford42 我们是有个启动脚本,会默认输出控制台的日子到一个文件中,刚好配置文件是调测用的,打了很多日志到控制台,所以一直在写文件,后来删掉,qps 提高了 2000+。能看到拐点了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/836603

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX