如何排查程序出现的问题

简介

有很多同学在排查问题经常会感觉难度大,自己搞不定的情况,一般都有以下三种原因:

(1)对功能模块不熟悉

(2)没有老员工指明方向,不知道怎么查

(3)对自己的能力不自信

      以个人经验来说,排查问题,要有一个良好的心态,平时丰富知识积累,调试工具的熟练使用,良好的逻辑分析能力和良好的沟通能力。本文也将从这几个角度来进行详细分析。

一、心态

     在平时的开发过程中,我们经常会遇到很多我们从未接触过的东西,那么就会产生一种畏难心理和不自信的状态。这个是我们在排查问题过程中是一个大忌,我们主管之前说过:“当你为了解决手上工作难度而感觉到痛苦的时候,那么你就是在进步的时候。”。痛苦是必然的,不经历风雨,就无法独挡一面。

1.1 自信心

      讲一个真实的故事,我在刚接手公司技术支持岗位的时候,是一个刚入职的新人,面对着自己从未参与开发的版本的维护工作,当时面对问题是非常的崩溃。在每次遇到问题的时候,总是想着这个问题难度大,我是不是应该找人帮忙看一下。每次都寻求帮助,久而久之,对别人形成了一种依赖,出现自己不熟悉问题的时候,就会不自主的想寻求帮助。但是,并不是每次问题自己就真的解决不了,有时候找了别人一起看,可能其他同事并没有提出建设性意见的时候,你会发现居然自己查出来了。这个就是自信心的问题,同事这时给予的只是一个稳定心态的作用自己的力量也可以完成。

    所以,自信心,必备。

1.2 稳定心态

    在我们平时的问题排查过程中,会遇到一些紧急的情况,这个时候一个稳定的心态,就变的很重要,如果心一乱,那么我们自己分析问题的能力也会下降,导致问题排查进度慢,甚至一些本可以迅速排查出来的问题,因为心态的问题,排查不出来,需要等待别人的帮助。任何时候,冷静的心态都是有助于我们分析问题的。

    所以,稳定的心态,必备。

1.3 一颗好胜的心

     大家都知道,在问题排查的过程中,总有一些问题是大家都不清楚的,那么是否有勇气去攻克就成为至关重要的问题。一颗好胜的心,可以保持我们在排查问题的时候,会尽可能的寻找它的根因,在根本上去解决这个问题。越难排查出来的问题,最后排查出真正的结果之后,所带来的成就感也是我们工作辛苦最大的奖赏,因为它会令你开心。

    缺少好胜之后,随之而来的就是,畏难心理,当你畏惧一个东西的时候,那么这个东西就会变得难以理解和分析,不愿意去为这个艰难的问题(即使有的只是看起来艰难)付出努力,那么这个问题,自然是解不开的。

   所以,好胜之心,必备。

二、积累

2.1 知识体系积累

      公司的业务的不同,知识体系自然是不一致的。但是只有你知道的够多,那么在分析问题的时候,才能最快速的找到正确排查思路,避免走弯路。根据网上的招聘信息,大体列举一下:

(1)网络知识

网络协议:TCP/IP协议、HTTP协议等

组网知识:静态路由,策略路由,动态路由协议,VLAN,VXLAN等

(2)编程语言知识

Python、PHP、Perl、C/C++,Shell等

(3)系统知识

协议栈、进程间通信,内存,进程等

(4)虚拟化

kvm、qemu等

(5)调试方法

gdb、pdb,perl –d,strace,shell -x, bash –x等

2.2 模块功能积累

      对每个模块的原理基本熟悉,知道哪个问题对应着哪个模块,在出现问题,即使在无法直接排查出根本原因的时候,也可以凭借自己对模块的了解,可以知道应该怎么快速恢复业务,应该取哪部分的日志,确认自己下一步的排查思路。

     这个没有什么好的方法,只能一点一滴的去做。

后续待更新。。。。。

三、分析逻辑

3.1 由点及面

3.2 大胆假设,小心验证

四、调试

4.1 调试工具

4.2 日志分析

五、阅读源码

5.1 源码阅读工具

5.2 快速定位代码(重要)

六、请教他人

猜你喜欢

转载自www.cnblogs.com/CloudCodeMan/p/11551394.html