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。

-
Java進程在監控圖表中的資料點非常密集,且連續,表示該進程已持續進入CPU消耗Top5。
-
為什麼進程監控指標資料從特定時間點開始有資料,而非歷史全量?
進程監控資料依賴於手動添加的進程監控項,CloudMonitor Agent 僅從您添加監控項的時刻起採集對應進程的指標資料。若未提前添加監控項,則無法擷取歷史資料,也無法觸發歷史時段的警示。
添加進程監控
您可以通過監控主機的進程數,採集關鍵進程的數量,及時擷取關鍵進程的存活狀態。
假設您的主機運行了如下進程:
-
/usr/bin/java -Xmx2300m -Xms2300m org.apache.catalina.startup.Bootstrap -
/usr/bin/ruby -
nginx -c /etc/nginx/nginx.conf
您添加了6個進程關鍵字,採集結果如下:
|
進程關鍵字 |
採集進程數 |
結果 |
|
|
1 |
命中進程名稱。 |
|
|
1 |
命中進程名稱與參數。 |
|
|
2 |
命中路徑(2個進程包含該路徑)。 |
|
|
1 |
命中部分參數。 |
|
|
1 |
命中部分參數。 |
|
|
1 |
命中部分參數。 |
進程名匹配嚴格區分大小寫,配置的進程關鍵字(processName)必須與作業系統中實際啟動並執行進程名完全一致(包括大小寫),否則無法匹配進程,導致採集失敗或警示不觸發。
在左側導覽列,選擇。
-
在主機監控列表中,單擊目標主機的執行個體名稱連結,或單擊目標主機對應操作列的監控圖表,選擇頁簽進程監控。
-
在進程監控頁面下方,單擊進程數監控摺疊面板,再單擊右上方的添加進程監控。
-
在添加進程監控面板,先輸入進程名稱,再單擊增加,然後單擊右上方的
表徵圖。說明添加進程監控後,請您稍等幾分鐘,才能看到進程數的監控資料。
為進程設定警示規則
您添加進程後,可以為該進程設定警示規則。當進程數發生變化時,您可以收到警示通知。
在左側導覽列,選擇。
-
在主機監控頁面,單擊目標主機的執行個體名稱連結,或單擊目標主機對應操作列的監控圖表,選擇頁簽進程監控。
-
先單擊進程數監控摺疊面板,然後單擊右上方的
表徵圖。在 進程數監控 地區,單擊進程數圖表右上方的警示表徵圖,開啟警示規則設定面板。 -
在設定規則描述面板,先設定規則名稱,再設定進程監控指標進程 / 當前進程數的閾值和警示層級,然後單擊確定。
-
在建立警示規則面板,先設定警示規則的相關參數,再單擊確認。
關於如何設定警示規則中的相關參數,請參見建立警示規則。
-
查看進程警示規則。
-
在左側導覽列,選擇警示服務 - 警示規則。
-
在警示規則頁面,您可以查看警示規則列進程維度警示規則。
-
關於進程總數警示閾值的設定,建議參考以下原則:
-
系統進程總數受 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的值。
刪除進程監控
通過應用分組菜單的組進程監控添加的進程,只能在組進程監控中刪除。
在左側導覽列,選擇。
-
在主機監控頁面,單擊目標主機的執行個體名稱連結,或單擊目標主機對應操作列的監控圖表,選擇頁簽進程監控。
-
先單擊進程數監控摺疊面板,然後單擊右上方的添加進程監控。
-
在添加進程監控面板,單擊目標進程對應操作列的刪除。
-
在刪除確認對話方塊,單擊確定。
-
單擊右上方的
表徵圖。
常見問題
CloudMonitor是否支援查看單個進程(如 Nginx、Java)的網路頻寬/流量佔用?
CloudMonitor當前不支援查看單個進程的出網頻寬或指定時間段(每天/每小時)的下行流量統計。如需以進程視角監控網卡流量,建議在 ECS 執行個體內部使用 nethogs 等第三方工具實現。
如何監控 Java 線程數?
CloudMonitor進程監控僅支援監控進程數量(可通過添加關鍵字 java 實現),不支援直接監控 Java 線程數。如需監控線程數,建議使用 ARMS 應用監控。