有关对问题进行故障诊断的技术

某些常用技术可以帮助完成故障诊断任务。故障诊断过程的第一步是完整地描述问题。

问题描述可以帮助您及 IBM 技术支持代表找到问题原因。此步骤包含问一些需要“问自己”的基本问题:

  • 问题的症状是什么?
  • 问题发生在什么地方?
  • 问题在何时发生?
  • 问题在何种情况下发生?
  • 是否可以重现此问题?

准确回答这些提问通常可以详细描述所发生的问题,从而使问题得以解决。

问题的症状是什么?

开始描述问题时,最明显的一个提问是“问题是什么?”此提问可能看起来简单明了;但是,您可以将其分解为若干针对性更强的提问,以更好地描述问题。这些提问可能包括:

  • 谁或哪个组件报告了该问题?
  • 错误代码和错误消息是什么?
  • 系统是如何发生故障的? 例如,系统发生了循环、挂起、崩溃、性能下降还是结果不正确?

问题发生在什么地方?

确定问题发生的位置通常并不容易,但这是解决问题的最重要步骤之一。在报告组件和失败组件之间可能存在许多技术层。在调查问题时,网络、磁盘以及驱动程序只是要考虑的一些组件。

以下提问有助于您重点了解发生问题的位置,以便隔离问题层:

  • 此问题特定于某个操作系统还是在多个操作系统中普遍存在?
  • 当前环境和配置是否受支持?
  • 是否所有用户都遇到该问题?
  • (对于多站点安装。)是否所有站点都遇到该问题?

如果某一层报告了问题,那么此问题并不一定起源于该层。识别问题发源地的一部分工作是了解问题所在的环境。花一些时间来完整地描述问题环境,包括操作系统和版本、所有相应的软件和版本以及硬件信息。确认您在受支持的配置环境中运行。很多问题可以追溯到不兼容的软件级别,这些软件级别不应一起运行或者没有在一起进行充分测试。

问题在何时发生?

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

要绘制详细的事件时间线,请回答这些疑问:

  • 此问题是否只在白天或晚上的某个时间发生?
  • 此问题的发生频率如何?
  • 导致报告此问题的事件序列是什么?
  • 问题是否在环境更改之后发生,如升级或安装软件或硬件?

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

问题在何种情况下发生?

了解在问题发生时有哪些系统和应用程序正在运行,是故障诊断的一个重要部分。关于环境的这些疑问可以帮助您识别问题的根源:

  • 此问题是否始终在执行同一任务时发生?
  • 是否需要特定的事件序列才能导致发生此问题?
  • 是否有任何其他应用程序同时发生失败?

回答这类疑问可以帮助您解释问题发生时所处的环境,并且将任何依赖性相关起来。请记住,可能在同一时间附近发生的多个问题并不一定相关。

是否可以重现此问题?

从故障诊断的角度来说,理想的问题是可重现的问题。通常,当问题可以重现时,将有更多工具或过程可用来帮助您进行调查。可以重现的问题通常更容易调试和解决。

不过,可以再现的问题也有缺点:如果该问题会对业务产生重大影响,则您不会希望它重现。如果可能,请在测试或开发环境(它们通常可以在您进行调查时,为您提供更大的灵活性和更强大的控制能力)中再现问题。

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