内存的大量占用,造成系统吞吐量急剧下降

本文探讨了一项API在压力测试中因大量数据导致的性能问题。问题源于一次调用返回过多数据,使得年轻代内存不足,进而频繁触发Full GC,严重影响了应用性能。文中提出扩大堆内存作为临时解决方案,并寻求更根本的优化方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近阿里的朋友,遇到一个性能问题,现象如下:

 

他的一个api里面有5个外部的service需要调用,在压力测试情况下,出现性能很差,响应速度很慢,系统吞吐量也很快下降。

 

最终查明,他的api调用其中一个service的时候,return的数据有700多条数据,进行压力测试的时候,young generation不够分配,大量的请求后的数据,直接分配到old generation了,而当大量的请求并发执行时,full gc频繁启动,我们知道full gc的时候,对于默认的parallel gc,整个应用程序会停顿,从而造成程序执行速度很慢,于此同时垃圾回收的速度远比需要分配的内存大,从而造成吞吐量随着时间的推延,速度越来越慢。

 

朋友解决的问题方案如下(不是很好):扩大堆内存。

 

这个解决方案不是最终的解决方案,最终的结果是表面上,造成性能下降的时间推延了,据测试8个小时的持续压力下没有问题,但是时间再长一点问题可能会更加严重。。。。。。

 

有没有更好的解决方案呢?我需要去了解具体的需求再尽兴阐述。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值