Serverless冷扩机器在压测中被击穿问题

科技资讯 投稿 8800 0 评论

Serverless冷扩机器在压测中被击穿问题

一、现象回顾

分析结论: 内存已经被处理线程全部占完,FullGC之后基本收不回多少内存,那么意味着很快又会继续FullGC,频繁FullGC占用大量CPU时间片段和暂停会导致系统处理能力剧烈下降,最终导致整个JVM进入崩溃状态

二、问题重现

分析结论: 我们需要避免瞬间流量让服务进入超高负载,进而被击穿

三、解决方案

1.冷启动状态下,没有设置系统保护规则的场景

2.热启动状态下,没有设置系统保护规则:

3.冷启动状态下,设置系统保护规则

如下是压测端视图

4.冷启动性能差之谜

1)HotSpot JVM优化:热点监测JVM会在程序运行期间不断对代码进行不同级别的优化,高频执行代码会被JIT Compiler优化到最佳的状态,而在冷启动开始运行的时候,代码还处于原始状态,性能相对会差

3)崩溃循环:当CPU升高之后,线程切换等操作本身可能会导致CPU更高,从而让系统螺旋式进入一种越来越糟糕的状态,直到达到一个平衡点,而上面的1)和2)随着运行的优化会在达到平衡点之后打破平衡点,螺旋式下降让系统恢复到比较好的状态,但最糟糕的情况是达不到平衡点系统直接崩溃无法恢复

四、题外话

作者:京东零售 吴毓群

内容来源:京东云开发者社区

编程笔记 » Serverless冷扩机器在压测中被击穿问题

赞同 (44) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽