记录项目中遇到的一次jvm调优

项目中的导出导入功能出现问题,调用RPC服务后客户端卡住,服务方未收到请求。检查发现JVM内存设置与实际需求不符,FGC频繁。通过调整-Xms和-Xmx参数,减少FGC次数,问题得到解决。环境为JDK1.8,使用jstat等工具进行监控和诊断。

情况:

项目的导出导入功能突然用不了了,但是服务方(导入导出单独拆分出来了一个数据处理服务)重启后就又可以用了。

客户端调用rpc服务时,调用前的log有打印,但是打印后(调用服务后)就没有下文直接卡住了(还好是异步操作不影响主流程),客户端无报错。

服务方没有发现请求log,也就是说,请求没有打到服务方上来。

但是项目一直稳定运行,且最近也没上线无变动,

也查了下客户端调用的服务方ip,无误

后来ps -aux | grep java看了下-Xms(初始堆大小)和-Xmx(最大堆大小)都是2G(公司的服务管理平台中的服务不配置jvm参数的话默认2G,我们服务由服务管理平台管理),但是服务实例的内存申请了10G,于是猜想是不是内存不够用了,

然后jstat -gcutil 进程号 线程号 命令查看资源使用情况,发现FGC次数有点高,修改了内存大小之后再重启服务,FGC次数大幅度减少。

环境:jdk1.8

附:用到的jstat命令(后文有命令详情)

jstat参数

\*C => (Capacity)区容量

\*U => (Used)使用量

  1. jstat -gcutil pid  总结垃圾回收统计                                                                    

S0:幸存1区当前使用比例

S1:幸存2区当前使用比例

E:伊甸园区使用比例

O:老年代使用比例

M:元数据区使用比例

CCS:压缩使用比例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值