全部產品
Search
文件中心

Cloud Monitor:進程監控

更新時間:Aug 18, 2026

CloudMonitor通過安裝在阿里雲主機(ECS執行個體)和非阿里雲主機上的CloudMonitor外掛程式,為您採集最近一段時間內活躍進程的CPU使用率、記憶體使用量率和檔案開啟數。您還可以添加進程監控,查看其進程數,並為這些進程設定警示規則,及時關注進程數的變化,確保其正常運行。

前提條件

請確保您已為阿里雲主機(ECS執行個體)和非阿里雲主機安裝CloudMonitor外掛程式。具體操作,請參見安裝CloudMonitor外掛程式。

背景資訊

CloudMonitor每分鐘統計一次CPU消耗Top5的進程,記錄進程的CPU、記憶體使用量率和開啟檔案數。

  • 進程的CPU使用率與記憶體使用量率:您可以參考Linux中的top命令理解這兩個監控項的含義。

  • 進程的開啟檔案數:您可以參考Linux中的lsof命令理解這個監控項的含義。

CloudMonitor採集CPU消耗Top5進程的CPU使用率,可能存在以下問題:

  • 如果您的進程佔用多個CPU,則會出現CPU使用率超過100%的情況,因為採集結果為多核CPU的總使用率。

  • 如果您查詢的時間範圍內,CPU消耗Top5的進程不固定,進程列表會顯示該時間範圍內全部進入過Top5的進程,列表中的時間表示該進程最後一次進入Top5的時間。

  • CloudMonitor只採集CPU消耗Top5進程的CPU使用率、記憶體使用量率和開啟檔案數。如果進程在查詢的時間範圍內未持續進入Top5,則監控圖表中會出現資料點不連續的情況,資料點的密集程度表明了該進程在主機上的活躍程度。樣本如下:

    • Wrapper進程未持續進入主機CPU消耗Top5,監控圖表中的資料點稀疏,且不連續,表示有資料點的時間該進程進入Top5。wrapper

    • Java進程在監控圖表中的資料點非常密集,且連續,表示該進程已持續進入CPU消耗Top5。

  • 當系統級任務(如核心線程 kworker、ksoftirqd 或中斷處理)佔用大量 CPU 但未進入 Top5 時,進程監控可能顯示 idle 或暫無資料,而整體 CPU 使用率仍達 100%。此時可通過 top -H 命令查看線程級 CPU 佔用分布,識別未進入 Top5 的高 CPU 限定核心線程。

為什麼進程監控指標資料從特定時間點開始有資料,而非歷史全量?

進程監控資料依賴於手動添加的進程監控項,CloudMonitor Agent 僅從您添加監控項的時刻起採集對應進程的指標資料。若未提前添加監控項,則無法擷取歷史資料,也無法觸發歷史時段的警示。

定時 CPU 警示排查

當主機在固定時段出現 CPU 警示時,可通過進程監控回溯查詢該歷史時段的進程 CPU 佔用情況,定位佔用 CPU 的進程:

  1. 登入CloudMonitor控制台,在左側導覽列選擇雲資源監控 > 主機監控。在執行個體列表中,單擊目標 ECS 執行個體的執行個體名稱,進入主機監控詳情頁。

  2. 查看 CPU 使用率趨勢圖,確認警示時段的 CPU 變化曲線。

  3. 切換到進程監控頁簽,在時間範圍選取器中選擇警示時段對應的時間範圍(1 小時/6 小時/12 小時/1 天/3 天/7 天/14 天/自訂)。如果警示發生在無人值守時段(例如淩晨),選擇自訂並填入異常時段的起止時間(例如 01:00~02:00),然後單擊確定。在進程 TopN 表格中查看該時段 CPU 使用率最高的 Top5 進程,可查看進程名稱/CMD、進程 ID、使用者、CPU 使用率(%)、記憶體使用量率(%)、開啟檔案數和時間等欄位。

  4. 根據進程名稱判斷 CPU 佔用原因:

    • ids.exe / hbrclient:雲備份(HBR)用戶端進程,負責資料轉送與任務調度。登入雲備份控制台查看備份計劃執行時間是否與警示時間吻合。

    • crontab / Windows 工作排程器:檢查 Linux 執行個體的 crontab -l 輸出或 Windows 工作排程器,確認是否存在消耗 CPU 的定時指令碼。

    • AliYunDun / AliYunDunMonitor:Apsara Stack Security安全進程,執行定期安全掃描時 CPU 短暫上升,屬正常行為。

回溯歷史時段的進程資料依賴提前添加的進程監控項。CloudMonitor Agent 僅從您添加監控項的時刻起採集對應進程的指標資料,未提前添加監控項的時段無法擷取該時段的進程資料。

結合進程名稱判斷是否為正常業務進程。如果 Top5 進程列表中未發現異常進程,可進一步檢查執行個體內的計劃任務(Linux 執行 crontab -l,Windows 查看工作排程器)和系統日誌(Windows 查看事件檢視器),也可參考本文「背景資訊」中關於系統級核心線程未進入 Top5 的說明。

添加進程監控

您可以通過監控主機的進程數,採集關鍵進程的數量,及時擷取關鍵進程的存活狀態。

假設您的主機運行了如下進程:

  • /usr/bin/java -Xmx2300m -Xms2300m org.apache.catalina.startup.Bootstrap

  • /usr/bin/ruby

  • nginx -c /etc/nginx/nginx.conf

您添加了6個進程關鍵字,採集結果如下:

進程關鍵字

採集進程數

結果

ruby

1

命中進程名稱。

nginx

1

命中進程名稱與參數。

/usr/bin

2

命中路徑(2個進程包含該路徑)。

apache.catalina

1

命中部分參數。

nginx.conf

1

命中部分參數。

-c

1

命中部分參數。

說明

進程名匹配嚴格區分大小寫,配置的進程關鍵字(processName)必須與作業系統中實際啟動並執行進程名完全一致(包括大小寫),否則無法匹配進程,導致採集失敗或警示不觸發。

  1. 登入CloudMonitor控制台。

  2. 在左側導覽列,選擇雲資源監控 > 主機監控。

  3. 在主機監控列表中,單擊目標主機的執行個體名稱連結,或單擊目標主機對應操作列的監控圖表,選擇頁簽進程監控。

  4. 在進程監控頁面下方,單擊進程數監控摺疊面板,再單擊右上方的添加進程監控。

  5. 在添加進程監控面板,先輸入進程名稱,再單擊增加,然後單擊右上方的image表徵圖。

    說明

    添加進程監控後,請您稍等幾分鐘,才能看到進程數的監控資料。

為進程設定警示規則

您添加進程後,可以為該進程設定警示規則。當進程數發生變化時,您可以收到警示通知。

  1. 登入CloudMonitor控制台。

  2. 在左側導覽列,選擇雲資源監控 > 主機監控。

  3. 在主機監控頁面,單擊目標主機的執行個體名稱連結,或單擊目標主機對應操作列的監控圖表,選擇頁簽進程監控。

  4. 先單擊進程數監控摺疊面板,然後單擊右上方的image表徵圖。在 進程數監控 地區,單擊進程數圖表右上方的警示表徵圖,開啟警示規則設定面板。

  5. 在設定規則描述面板,先設定規則名稱,再設定進程監控指標進程 / 當前進程數的閾值和警示層級,然後單擊確定。

  6. 在建立警示規則面板,先設定警示規則的相關參數,再單擊確認。

    關於如何設定警示規則中的相關參數,請參見建立警示規則。

  7. 查看進程警示規則。

    1. 在左側導覽列,選擇警示服務 - 警示規則。

    2. 在警示規則頁面,您可以查看警示規則列進程維度警示規則。

說明

關於進程總數警示閾值的設定,建議參考以下原則:

  • 系統進程總數受 Linux 核心參數 /proc/sys/kernel/pid_max 限制,建議將閾值設定為 pid_max 的 70%~80%,以預留緩衝空間,避免誤判或漏報。

  • 可通過命令 cat /proc/sys/kernel/pid_max 查看當前系統上限。

  • 也可基於業務穩週期性實際進程數(通過CloudMonitor歷史資料或執行 ps -eLf | wc -l 命令擷取),在此基礎上增加 20%~30% 作為閾值,避免直接設定為接近 pid_max 的值。

刪除進程監控

說明

通過應用分組菜單的組進程監控添加的進程,只能在組進程監控中刪除。

  1. 登入CloudMonitor控制台。

  2. 在左側導覽列,選擇雲資源監控 > 主機監控。

  3. 在主機監控頁面,單擊目標主機的執行個體名稱連結,或單擊目標主機對應操作列的監控圖表,選擇頁簽進程監控。

  4. 先單擊進程數監控摺疊面板,然後單擊右上方的添加進程監控。

  5. 在添加進程監控面板,單擊目標進程對應操作列的刪除。

  6. 在刪除確認對話方塊,單擊確定。

  7. 單擊右上方的關閉表徵圖。

常見問題

CloudMonitor是否支援查看單個進程(如 Nginx、Java)的網路頻寬/流量佔用?

CloudMonitor當前不支援查看單個進程的出網頻寬或指定時間段(每天/每小時)的下行流量統計。如需以進程視角監控網卡流量,建議在 ECS 執行個體內部使用 nethogs 等第三方工具實現。

如何監控 Java 線程數?

CloudMonitor進程監控僅支援監控進程數量(可通過添加關鍵字 java 實現),不支援直接監控 Java 線程數。如需監控線程數,建議使用 ARMS 應用監控。

歷史時段 CPU 佔用進程排查

收到 CPU 警示後,可以通過CloudMonitor的進程監控功能,回溯查詢歷史時段的進程 CPU 佔用情況,定位異常時段消耗 CPU 的進程。

  1. 登入CloudMonitor控制台。

  2. 在左側導覽列,選擇雲資源監控 > 主機監控。

  3. 在主機監控列表中,單擊目標 ECS 執行個體的執行個體名稱,進入主機監控詳情頁。

  4. 單擊進程監控頁簽。

  5. 在頁面右上方的時間範圍選取器中,選擇自訂,設定異常時段(例如淩晨 01:00~02:00),然後單擊確定。

  6. 在進程 TopN 表格中,查看 CPU 使用率最高的 Top5 進程,包括進程名稱、進程 ID、CPU 使用率、記憶體使用量率等指標。

說明

進程需提前添加監控項才能採集歷史資料。未提前添加監控項的時段,無法擷取進程資料。

結合進程名稱判斷佔用 CPU 的是否為正常業務進程。如需進一步排查,可以檢查作業系統的計劃任務和事件檢視器日誌。