故事是发生在几个月前的线上真实案例,我将在文章中以故事形式为大家还原本次解决游戏卡死的经历过程,其中有很多线上实战经验和技巧都值得分享借鉴的,也有作者自创的处理线上问题“四部曲”——望问闻切。而一般线上问题又可以分为以下三个大的方面的问题:
- CPU 繁忙型:主要原因可能由于程序中出现死循环、线程阻塞、频繁的 gc、线程的上下文切换等。
- 内存溢出型:堆外内存泄漏,如 JNI 调用、nio 中的 DirectByteBuffer 等;堆内内存溢出,大量创建的对象、全局集合或缓存使用不当、ClassLoader 加载的类过多、过多的线程开销等。
- IO 读写型:造成的原因可能是打开的文件句柄忘记关闭、网络请求或网络等待、数据库的操作等。
通过本场 Chat 能了解到一次真实的案例,遇到问题后按部就班的执行“四部曲”能很快的发现问题并给出解决方案。更多案例可以参考作者的《分布式服务架构》一书。
阅读全文: http://gitbook.cn/gitchat/activity/5975b680fea7622f8ed712c1
您还可以下载 CSDN 旗下精品原创内容社区 GitChat App ,阅读更多 GitChat 专享技术内容哦。