内存不足导致的耗时增大

内存不足导致的耗时增大

给项目添加新功能,功能比较简单,就是对数据做打分过滤等操作,上线后发现CPU使用率明显上升,线程cpu使用率不均衡,有线程cpu使用率会达到100%

top -H命令查看到的

根据日志发现,服务耗时明显增大,由于是对每一条数据进行操作,数据量每天在千万以上,开始考虑是CPU资源不足导致,申请增加CPU资源。

增加以后,监控发现,CPU消耗和服务耗时没有明显改善。

通过ps -ef|grep pid发现,在启动时指定了jvm参数:

-Xms4g -Xmx4g -Xmn2g -Xss1024K

指定了堆内存时4G,其中新生代占2G.

登录到服务器,使用jvm命令监控,看到

使用 jstat -gc 865查看到

S0C        S1C    S0U    S1U        EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT  

209664.0 209664.0  0.0   182199.5 1677824.0 1396223.0 3145728.0  1355282.2  93968.0 93050.3 14492.0 14329.5     45    3.257   2      0.219    3.476

  • S0C:第一个幸存区的大小
  • S1C:第二个幸存区的大小
  • S0U:第一个幸存区的使用大小
  • S1U:第二个幸存区的使用大小
  • EC:伊甸园区的大小
  • EU:伊甸园区的使用大小
  • OC:老年代大小
  • OU:老年代使用大小
  • MC:方法区大小
  • MU:方法区使用大小
  • CCSC:压缩类空间大小
  • CCSU:压缩类空间使用大小
  • YGC:年轻代垃圾回收次数
  • YGCT:年轻代垃圾回收消耗时间
  • FGC:老年代垃圾回收次数
  • FGCT:老年代垃圾回收消耗时间
  • GCT:垃圾回收消耗总时间

发现老年代使用率超过90%,并且FGC回收比较频繁,考虑代码中是否使用了大量的内存缓存,拼接字符串,static变量,大对象等,感觉并无导致老年代暴增的因素,考虑扩大内存。

申请内存资源后,发现任然没有改善,再次使用ps -ef|grep pid,发现指定了jvm参数

-Xms4g -Xmx4g -Xmn2g -Xss1024K

修改jvm参数重启后,监控,服务cpu和耗时均回复正常。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值