就像警察破案,查问题也是一项及有挑战性的事情。这篇文当用来总结我查问题时的一些方法论。
- 不要有压力,保持一个好心态
- 把每次查问题,看做一次思维锻炼的机会。你不能保证一定查出结果,但你可以看看你的思维能够走多远!
- 不要看一眼,就把问题推卸给别人。
- 只要你不停的思索,比如:洗澡在思索,吃饭在思索..迟早你会有思路。
- 广搜
- 深搜
- 深搜遇到困难时,应该跳出来,试试广搜
- 优先考虑
- 能复现吗?
tips: 如果问题规模很大,可以复现小规模问题- 100GB的单个文件,本地未发现问题,但上传到hadoop集群上,用mapreduce运行出现问题
- 来龙去脉?
待查的数据,是怎么产生的;上游模块,下游模块- 忘记运行collector,导致正排是旧数据
- 查看历史版本?
tips: 看看最近做了哪些改动- 属性倒排链异常变短
- 查看犯罪现场?
tips:启动命令,代码版本,配置,需加载的数据,日志,gdb调试core,机器现场:IO,内存,CPU,网络,机器上是否安装特定库..- 微信index运行时,创建lqdb失败 (机器缺少库)
- 测试同学,配置错误 (配置)
- 开发同学,inst index共享内存配置错误 (配置)
- 能复现吗?
- 死磕
- 查代码,加日志,重跑
- 死磕一些你也不太懂的猜想 (比如,mapreduce如何切分数据,请教专员吧)