找出應用程式的疑難雜症 by process Monitor
這篇文章主要說明應用程式出錯的幾種情況,例如:
- 應用程式變得很慢
- 異常錯誤
- 耗用許多的 CPU 資源
- 應用程式無法正常啟動
建議可以使用 Process Monitor 觀察並且解決這些異常的狀況。
如何取得 process Monitor
相關的工具可以在這個網站上取得 www.microsoft.com/technet/sysinternals
啟動 process Monitor
工具下載之後,直接執行就會開始擷取系統所有的”事件”
事件包含:網路、檔案存取、Registry Key 存取
事件擷取之後,可以利用這個工具分析檔案、網路與CPU使用狀況,如下圖所示:
Tools > Process Activity Summary
Filter
由於抓取的電腦系統事件可能超過上千個,因此可以利用 Filter 的功能,
將關鍵的事件過濾,筆者這邊建議幾種常用而且有效的過濾方式
- Operation is “TCP Connect”
- Operation is “RegSetValue”
- Operation is “WriteFile”
- “Category” is “Write”
為什麼建議設定這些 filter 呢?
主要是因為我們想要專注應用程式對於系統做那些改變?
這個改變主要不外乎是檔案的寫入或是註冊碼的寫入
另外 Operation is “TCP Connect”,主要看的是這個應用程式是否有異常或是往外連線的狀況,如果有往外連線,那麼主要的溝通內容與目的就必須進一步釐清。
舉例來說,如果一個”小算盤”的應用程式,有大量的 TCP connect 對外部的電腦連線與溝通,那麼該連線的目的就很可疑,也是另外一個偵測可疑病毒的方法之一。
Log量還是很大怎麼辦?
這邊建議三個設定
- Options > history Depth (限制事件擷取的深度)
- Filter > Drop Filtered Events (將部分不需要的系統事件排除)
- File > Backing File > To Disk (擷取時儲存至檔案)
Analysis Summary
Process Monitor 功能最強的就是它的分析功能
可以針對 process , activity, File, Registry, Network ..等提供各式歷史的分析摘要
可以初步了解電腦主要都在忙什麼, CPU, process, Memory, Disk or Network
對於效能瓶頸分析,這是一個利器 !