RPC 框架异常引起的系统崩溃
您目前处于:技术核心竞争力  2015-11-13

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 (文/张松然)  ©著作权归作者所有