一个信息系统,在建设过程中,会面对各处问题,在运行过程中,又会出现各种故障。只有迅速准确地找到问题所在,才能及时解决问题。怎样迅速找到问题的根源呢?在这里想跟大家分享一次事故的教训。
    前段时间,一个试用中的,终端分布在全国各处的IT系统出现了状况,系统只允许一部分用户登录,服务器不断地报错说内存不足。笔者查看了错误信息、检查了服务器设置后,根据以往的经验,认为是服务器的资源不足,无法承载当前的用户数,经过一番调整优化,仍然不见好转,觉得很奇怪,报错信息明明是说资源不足,优化了还是不行,难道有什么地方还隐藏着资源瓶颈?然后是更多的优化和调整,故障还是依旧,似乎是山重重水复疑无路了。
    这时,项目总监和我一起从头分析问题,冷静下来,以问题显现的时机为突破口,从根本上分析问题发生的原因,思考这样几个问题:问题什么时候出现的?2天前。这两天使用系统的人数有突然的增加吗?调查下来发现并没有,也就是实际的资源耗用并没有增加。然后就是仔细推敲,这2天系统在各个方面都发生了哪些改变?哪个改变可能引发资源使用异常?分析下来,认为系统这2天升级的一个程序包,出问题的可能性最大。仔细检查程序包后,发现了程序的BUG,写得不严密的程序导致了服务器的过载。
    归根结底,牵牛要牵牛鼻子,解决问题要抓住本质。以系统表面的报错信息和单纯的过往经验来判断问题,就象进入了层层迷雾,身在此山中,云深不知处,很容易就钻入了牛角尖,而适时的跳出问题,重新思考,特别是换个角度,从根本上考虑问题,就能走出迷雾,拨云见日。