案例背景
醫院 HIS 系統:HP 伺服器 (Win2000 Server) + SQL 7.0 + PowerBuilder 6.0 客戶端。近一年發生兩起嚴重效能事故,幾近癱瘓。
故障一:日誌暴增導致系統緩慢、硬碟狂轉、CPU 高載
現象
- 掛號、劃價、發藥全線卡頓,螢幕刷新如動畫
- 硬碟指示燈持續閃爍,CPU 長期高佔用
- 殺毒掃描無毒、硬體檢測無誤
根因發現
「事件檢視器」中三大日誌(應用程式、安全性、系統)各累積近千筆記錄。Win2000 運行時頻繁讀取日誌進行比對,龐大日誌嚴重拖累效能;錯誤記錄更放大計算負擔。
解決
- 備份日誌(另存為 .evt)
- 清空所有日誌
- 重開機,系統瞬間恢復流暢
教訓
定期清理/封存日誌,設定日誌最大值與覆寫策略(如 50MB/7 天),避免無限增長。
故障二:每 16 小時週期性 CPU 100%、硬碟狂轉 1 分鐘
現象
- 網路閒置時發生,持續 ~1 分鐘自動消失
- 若剛好有門診/住院業務,系統嚴重卡頓
- 每日清空日誌無效
根因追蹤
- 觀察到精確每 16 小時 (960 分鐘) 發作一次
- 系統日誌發現配對的「錯誤」與「警告」同樣週期出現:
- 錯誤 (Event ID 62):
這台電腦是樹系根網域的 PDC。請用 'net time /setsntp:' 設定外部時間來源同步。
- 警告 (Event ID 64):
因重複網路問題,時間服務未找到同步的網域控制器。將等待 960 分鐘再試。累積時間誤差可能導致網路操作失敗。請執行 'w32tm /s' 重新同步。
根因確認
醫院為純內部網域,無外部網際網路連線,時間同步服務 (Windows Time) 不斷嘗試連線外部 NTP 失敗,觸發重試邏輯佔用資源。
解決
- 「管理工具」→「服務」
- 找到 Windows Time → 停止服務 → 啟動類型改為「手動」
- 故障徹底消失,不再週期性發作
綜合心得與建議
- 小設定釀大禍:日誌無限增長、不需要的服務預設啟動,表現如病毒/硬體故障,實為配置疏失
- 遇事查日誌、看週期:週期性故障多為排程任務/服務重試邏輯
- Win2000 + SQL Server 建議每 2 個月重開機一次,釋放記憶體碎片、清理暫時性狀態
- 精簡服務、限制日誌大小、停用非必要服務,是長期穩定運行的基石