对问题进行故障诊断
故障诊断是用于解决问题的系统方法。 故障诊断的目的是为了确定某个对象未如预期工作的原因及说明如何解决问题。
故障诊断过程的第一步是完整描述问题。 问题描述有助于您和 IBM® 支持人员知道从哪里入手查找问题原因。 此步骤涉及到收集必要的信息以回答以下提问:
了解这些问题的答案有助于您为 IBM Support 创建一个良好的问题描述。 这些回答有助于更快地解决问题。
问题的症状是什么?
要描述问题,首先要将该问题拆分成几个有针对性的提问,以便勾画出更具描述性的问题情景。 提问如以下所示:
- 谁或哪个组件在报告问题?
- 错误代码和消息是什么?
- 系统的故障情况如何? 例如,是循环、挂起、崩溃、性能下降,还是结果错误?
- 问题对业务有何影响?
问题在何处发生?
确定问题源自何处是解决问题的最重要步骤之一。 报告组件和故障组件之间可能存在多层技术。 网络、磁盘和驱动器仅仅是调查问题时需要考虑的组件中的一部分。
以下提问可帮助您聚焦发生问题的位置,以明确具体的问题层:
- 问题是特定于某个平台或操作系统,还是为多个平台或操作系统所共有?
- 当前环境和配置是否受支持?
请记住,如果某个层报告问题,该问题不一定就源自该层。 确定问题源自何处包括了解问题存在的环境。 花点时间对问题环境进行完整的描述,包括操作系统和版本、所有相应的软件和版本以及硬件信息。 确认您所运行环境中的配置受支持。 许多问题的根源在于软件级别不兼容,这些软件在设计时并未考虑在一起运行,或者尚未经过充分的兼容性测试。
问题在何时发生?
确定导致失败的事件的详细时间线,尤其是对于那些仅发生一次的情况。 如果从错误报告时间(尽可能精确,甚至精确到毫秒)开始,就更容易确定此时间线。 然后,根据可用的日志和信息向后追溯。 通常,诊断日志中的第一个可疑事件是最好的起点。 但是,做到这一点往往并不容易。 当涉及多个技术层,并且每个层都有自己的诊断信息时,要弄清楚在何时停止查看尤为困难。
要确定事件的详细时间线,可回答以下提问,作为了解是否收集了相应信息的准则:
- 问题是否仅在白天或夜间的某一特定时间发生?
- 问题发生的频率如何?
- 何种事件序列导致了在该时间报告问题?
- 问题是否发生在环境更改(如升级或安装软件或硬件)之后?
问题在什么条件下发生?
了解问题发生时有哪些系统和应用程序在运行是故障诊断的一个重要部分。 有关环境的以下提问可帮助确定问题的根本原因:
- 问题是否总是发生在执行同一任务时?
- 是否必须发生特定的事件序列才会出现该问题?
- 是否有任何其他应用程序同时失败?
回答这些类型的提问可帮助说明问题发生的环境并关联到任何依赖关系。 请记住,虽然多个问题可能在同一时间左右发生,但这些问题并不一定相关。
能否再现问题?
可以再现的问题通常更易于调试及解决。 通常,如果某个问题可以再现,您就可以使用更多的工具和过程来帮助调查该问题的原因。 如果可能,在测试或开发环境中重新生成问题,这通常可在调查期间为您提供更大的灵活性和控制能力。
- 能否在测试系统上再现问题?
- 是否有多个用户或应用程序遇到相同类型的问题?
- 能否通过运行单个命令、一组命令、特定应用程序或独立应用程序重新生成问题?