问题故障诊断方法

故障诊断是解决问题的一种系统方法。故障诊断的目标是确定某部分不按预期工作的原因以及如何解决该问题。某些常用方法可帮助完成故障诊断任务。

故障诊断过程中的第一步是完整描述问题。问题描述可帮助您和 IBM 软件支持机构代表了解从何处着手查找问题原因。该步骤包含一些对您自己提出的基本问题:

这些问题的答案通常会形成对问题的准确描述,然后此描述可帮助您获取问题解决方法。

问题有哪些症状?

开始描述问题时,最明显的问题是问题是什么? 此提问似乎比较简单;但是,您可以将它分解为多个更有针对性的提问,从而更详细地描述所发生的问题。这些提问可以包括:

  • 哪个人员或对象报告了该问题?
  • 有哪些错误代码和消息?
  • 系统的故障情况如何?例如,系统是由于循环、挂起、崩溃、性能下降还是结果不正确而发生故障?

问题是在何处出现的?

确定问题发生的位置并不总是那么容易,但它是解决问题的一个最重要步骤。报告组件和失败组件之间可能存在多层技术。调查问题时,网络、磁盘和驱动程序仅为要考虑的组件中的一小部分。

以下提问有助于您关注发生问题的位置,从而找出发生问题的层:

  • 问题是特定于一个平台或操作系统,还是多个平台或操作系统中的共有问题?
  • 是否支持当前环境和配置?
  • 是否所有用户都遇到此问题?
  • (对于多站点安装。)是否所有站点都遇到此问题?

如果某一层报告问题,并不一定说明问题源于该层。在确定问题起源位置的过程中,其中一部分工作是了解该问题的发生环境。请花点时间完整地描述问题环境,包括操作系统和版本、所有相应的软件和版本以及硬件信息。确认运行的环境是否包含受支持的配置;许多问题都可以追溯到不兼容的软件级别,这些软件级别本不应该一起运行,或者尚未在一起经过充分测试。

问题在何时发生?

针对发生故障前的事件建立详细的时间线,尤其是仅发生一次的情况。通过倒推法最容易制定时间表:从报告错误时开始(时间要尽可能精确,甚至精确到毫秒),一直倒推到可用的日志和信息。通常,您只需要查看到您在诊断日志中找到的第一个可疑事件即可。

要建立事件的详细时间线,请回答下列问题:

  • 该问题是否只在白天或晚上的某个时间发生?
  • 该问题多久发生一次?
  • 报告该问题前的事件序列如何?
  • 该问题是否在环境更改(如升级或安装软件/硬件)之后发生?

回复这些类型的问题可为您提供用于调查问题的参考框架。

问题在何种情况下发生?

了解问题发生时哪些系统和应用程序正在运行是故障诊断的一个重要方面。这些有关环境的问题有助于确认问题的根源:

  • 执行相同的任务时,该问题是否总是发生?
  • 是否需要发生一系列特定事件才会出现该问题?
  • 是否有其他应用程序同时也发生故障?

回答这些类型的问题可以帮助您说明问题发生时的环境并关联所有依赖性。请记住,正是因为多个问题有可能大约在同一时间发生,所以这些问题不一定相关。

能否再现问题?

从故障诊断的角度来说,理想的问题是可以重现的问题。通常,如果可以重现问题,那么您可以通过更多的工具或处理过程来帮助进行调查。因此,可以重现的问题通常更易于调试和解决。

但是,可重现的问题也存在缺点:如果该问题对业务有严重影响,那么您不会希望它再次发生。请尽量在测试或开发环境中重现该问题,这通常可以使您在调查过程中具备更高的灵活性并进行更好的控制。

  • 能否在测试系统上重现该问题?
  • 是否有多个用户或应用程序遇到同一类型的问题?
  • 是否可以通过运行单个命令、一组命令或特定应用程序来重现该问题?