疑難排解問題

疑難排解是一種解決問題的系統性方法。疑難排解的目標是判斷未如預期運作的原因,以及問題的解決方式。

疑難排解程序的第一個步驟是完整說明問題。問題說明可協助技術支援中心代表,瞭解從何處開始尋找問題的原因。這個步驟包括自問一些基本問題:

  • 問題的症狀為何?
  • 發生問題的位置?
  • 問題何時發生?
  • 問題是在怎樣的情況下發生?
  • 問題會重新產生嗎?

這些問題的答案一般會為問題提供適當的說明,然後提供問題的解決方案。

問題的症狀為何?

這個問題似乎太過直接;不過,您可以將它細分為若干重點問題,以深入描述問題。這些問題包括:

  • 是誰或何者提報問題?
  • 錯誤碼及訊息是什麼?
  • 系統失敗的狀況為何?例如,系統是迴圈、當掉、當機、效能下降還是產生不正確的結果?

發生問題的位置?

判斷問題的發生位置不是總是那麼簡單,但是卻是解決問題的其中一個最重要步驟。報告元件與失敗元件之間具有許多技術層次。在您探索問題時,網路、磁碟與驅動程式只是少數幾個會考量到的元件。

下列問題可協助您明確找出發生問題的位置,以隔離問題層:

  • 問題是發生在特定的一個平台或作業系統,或是普遍發生在多個平台或作業系統?
  • 是否支援現行環境與配置?

如果一個層報告了問題,則該問題不一定發生在該層中。瞭解該問題所在的環境,是識別問題源頭過程的一部分。請花一些時間完整地說明問題環境,包括作業系統和版本、所有對應軟體和版本以及硬體資訊。請確認您是在配置受支援的環境內執行;許多問題都可以追溯至不是預定要一起執行或尚未同時完整測試過的不相容軟體層次。

問題何時發生?

請列出導致失敗的事件詳細時間表,特別是那些只發生一次的案例。從後往前列出時間表是最輕鬆的方式:從系統產生錯誤報告時間開始(盡可能精確,甚至精細到毫秒),透過可用的日誌及資訊,從後往前列出時間表。一般而言,您最多只需要查看診斷日誌中找到的第一個可疑事件即可。

若要列出詳細的事件時間表,請回答下列問題:

  • 問題是否只在白天或晚上的特定時間發生?
  • 問題發生的頻率為何?
  • 在報告問題的時間之前的一連串事件為何?
  • 問題是發生在環境變更之後嗎?例如升級或安裝軟體或硬體?

回應這些類型的問題可提供您探索問題的參照標準。

問題是在怎樣的情況下發生?

疑難排解的一個重要部分,是瞭解發生問題時哪些系統和應用程式處於執行中。有關環境的這些問題可協助您識別問題的根本原因:

  • 問題是否一律在執行相同的作業時發生?
  • 是否需要進行特定的一連串事件,問題才會浮現?
  • 同時間是否還有其他應用程式執行失敗?

回答這些類型的問題可協助您解釋發生問題的環境,並產生任何相依關係。請注意,因同時間是有可能發生多個問題的,因此這些問題未必彼此相關。

問題會重新產生嗎?

從疑難排解的角度而言,理想的問題是可以重新產生的問題。通常,當問題可以重新產生時,您可以隨意使用更多的工具集或程序集,來協助您進行探索。因此,可以重新產生的問題通常較容易除錯和解決。不過,您可以重現的問題可能有個缺點:如果問題對業務運作會有重大影響,您不會希望它再次發生。如有可能,請在測試環境或開發環境中重建該問題,這樣通常可讓您在探索期間更具彈性,也更能掌控所發生的一切。

  • 問題是否可以在測試系統上重建?
  • 是否有多位使用者或應用程式遇到相同類型的問題?
  • 是否可以透過執行單一指令、一組指令或特定應用程式來重建問題?