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