有关对问题进行故障诊断的技术
某些常用技术可以帮助完成故障诊断任务。故障诊断过程的第一步是完整地描述问题。
问题描述可以帮助您及 IBM 技术支持代表找到问题原因。此步骤包含问一些需要“问自己”的基本问题:
- 问题的症状是什么?
- 问题发生在什么地方?
- 问题在何时发生?
- 问题在何种情况下发生?
- 是否可以重现此问题?
准确回答这些提问通常可以详细描述所发生的问题,从而使问题得以解决。
问题的症状是什么?
开始描述问题时,最明显的一个提问是“问题是什么?”此提问可能看起来简单明了;但是,您可以将其分解为若干针对性更强的提问,以更好地描述问题。这些提问可能包括:
- 谁或哪个组件报告了该问题?
- 错误代码和错误消息是什么?
- 系统是如何发生故障的? 例如,系统发生了循环、挂起、崩溃、性能下降还是结果不正确?
问题发生在什么地方?
确定问题发生的位置通常并不容易,但这是解决问题的最重要步骤之一。在报告组件和失败组件之间可能存在许多技术层。在调查问题时,网络、磁盘以及驱动程序只是要考虑的一些组件。
以下提问有助于您重点了解发生问题的位置,以便隔离问题层:
- 此问题特定于某个操作系统还是在多个操作系统中普遍存在?
- 当前环境和配置是否受支持?
- 是否所有用户都遇到该问题?
- (对于多站点安装。)是否所有站点都遇到该问题?
如果某一层报告了问题,那么此问题并不一定起源于该层。识别问题发源地的一部分工作是了解问题所在的环境。花一些时间来完整地描述问题环境,包括操作系统和版本、所有相应的软件和版本以及硬件信息。确认您在受支持的配置环境中运行。很多问题可以追溯到不兼容的软件级别,这些软件级别不应一起运行或者没有在一起进行充分测试。
问题在何时发生?
建立导致故障的事件的详细时间线,尤其是那些仅发生一次的情况。通过倒推法最容易制定时间表:从报告错误时开始(时间要尽可能精确,甚至精确到毫秒),一直倒推到可用的日志和信息。通常,您可以使用在诊断日志中找到的第一个可疑事件。
要绘制详细的事件时间线,请回答这些疑问:
- 此问题是否只在白天或晚上的某个时间发生?
- 此问题的发生频率如何?
- 导致报告此问题的事件序列是什么?
- 问题是否在环境更改之后发生,如升级或安装软件或硬件?
回复这些类型的疑问可为您提供用于调查问题的参考框架。
问题在何种情况下发生?
了解在问题发生时有哪些系统和应用程序正在运行,是故障诊断的一个重要部分。关于环境的这些疑问可以帮助您识别问题的根源:
- 此问题是否始终在执行同一任务时发生?
- 是否需要特定的事件序列才能导致发生此问题?
- 是否有任何其他应用程序同时发生失败?
回答这类疑问可以帮助您解释问题发生时所处的环境,并且将任何依赖性相关起来。请记住,可能在同一时间附近发生的多个问题并不一定相关。
是否可以重现此问题?
从故障诊断的角度来说,理想的问题是可重现的问题。通常,当问题可以重现时,将有更多工具或过程可用来帮助您进行调查。可以重现的问题通常更容易调试和解决。
不过,可以再现的问题也有缺点:如果该问题会对业务产生重大影响,则您不会希望它重现。如果可能,请在测试或开发环境(它们通常可以在您进行调查时,为您提供更大的灵活性和更强大的控制能力)中再现问题。
- 是否可以在测试系统中重现此问题?
- 是否有多个用户或应用程序遇到了同一类型的问题?
- 是否可通过运行单个命令、一组命令或特定应用程序来再现问题?