RPC 框架异常引起的系统崩溃

转自:RPC 框架异常引起的系统崩溃

RPC 接口调用框架如下:

当 Register 出现异常,Provider 重复注册地址,Register 就会不停地向 Consumer 推送大量的无效地址,造成 RPC 调用失败、超时等异常。

系统崩溃定位如下(就像滚雪球一样,迅速的崩溃):

我们通过当时的快照进行分析:

服务器系能监控(Load 飙升)

服务器性能监控(Net IO 下降)

JVM 监控 堆区(持续高位)

JVM 监控 Full GC 频繁

JVM 监控 线程数高

监控日志(IO 、GC、内存溢出)

JVM 栈信息(BIO 阻塞)

定位问题后重启服务器,再进行监控:

JVM Young GC

JMV Full GC

JVM Heap

总结

分析系统,线程数高,CPU、Load、内存良好,一定是出现线程死锁,分析 jstack。

分析系统,线程数高,CPU 抖动、Load 飙升、频繁 Full GC,而 Net IO 降低,一定是有内存泄露,分析 jmap。

 

转载请并标注: “本文转载自 linkedkeeper.com (文/张松然)”

此条目发表在java分类目录,贴了, 标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注