Leo Yeh's Blog

SAS 系統管理 (89)

教學目標

初步了解 SAS 9 平台中有關 JVM 中執行緒分析的基本概念。

重點概念

首先當我們要開始分析 JAVA 執行緒之前,建議先了解 JAVA 執行緒狀態主要有六種,分別為:

  1. 新增狀態 (NEW):主要為建立一個執行緒物件。
  2. 就緒狀態 (RUNNABLE):主要為執行緒在可執行執行緒池中等待獲取 CPU 使用權執行。
  3. 等待狀態 (WAITING):主要為執行緒在無限等待喚醒。
  4. 特定時間內等待狀態 (TIMED WAITING):主要為執行緒在無限等待喚醒,但是有設定特定時間內。
  5. 阻擋狀態 (BLOCKED):主要為執行緒在等待鎖解除。
  6. 終止狀態 (TERMINATED):主要為執行緒執行完畢或異常終止。

通常當網站應用程式開始變慢時,很有可能就是 JAVA 執行緒被 HANG 住了,所謂 HANG 就是一個程序正在執行中,但是不再提供回應,導致原因主要有四種,分別為資料爭奪、無限循環、工作量和網路。

接著我們先能夠透過「SAS Thread Dump Collection Tool」工具收集執行緒的相關資訊,主要能夠設定多少回收數量和每個回收延遲幾秒,此時將會產生執行緒的相關資訊記錄檔,以利進行後續更進一步進行分析。

再來我們還能夠透過「SAS Thread Dump Diagnostic Tool」工具診斷是否有死結的情況發生,並且產生相關狀態比例圖表,並且我們能夠選取相關記錄按右鍵選擇「Stack Trace Analysis」或「Monitor Analysis」更進一步查看執行緒導致死結發生原因的詳細資訊。

最後我們更能夠透過「SAS Web Application Server Diagnostics Console」工具除了取得所有網站應用程式伺服器的設定檔之外,更能夠直接收集執行緒的相關資訊。因此我們若要針對 SAS 平台中的網站應用程式伺服器進行執行緒的診斷分析,則主要能夠使用「SAS Thread Dump Collection Tool」、「SAS Thread Dump Diagnostic Tool」和「SAS Web Application Server Diagnostics Console」三大工具搭配進行執行緒的診斷分析。

相關資源

⬅️ Go back