当bug滚滚而来时,不要怀疑,你的发布的应用基本是不可用状态了。
观察哨兵监控数据,特别是内存打到80%基本就挂机了,或者监控数据缺失也基本是挂机了。
此时应当立刻决断:app
实例:运维
根据各方面的反馈,加自身的迭代,找寻线索,积极在预发尝试,以求肯定病根。工具
实例:
见上描述,导出每次不可用,立刻在预发复现此问题。
感谢运营的反馈,此处可总结,运营在使用系统过程当中出现问题要及时反馈,不要害羞。调试
线上通常内存偏大,有6-8G,用jmap下来文件很大,也不易分析。
此时可转换思路,建立一个干净的环境,调试此固定逻辑。
这里的问题是线上数据怎么来?日志
搭建本地环境,调试固定逻辑:中间件
实例:
在本地环境调试后发现导出正常,20M内存能够支撑导出37万条数据没有问题。
此时回过头去看线上逻辑代码,比本地多一个文件加水印,此时修改代码,再文件生成后打印一条日志,部署预发。
发现文件能够生成,但文件加水印迟迟未结束。
去掉文件加水印后部署预发,导出正常。
此时排查出问题出在文件加水印,此为中间件的工具,故而不作解决,直接去掉加水印提测。并报告问题给相应人。接口