如何使用 atop 工具取得 EC2 Linux 執行個體上的處理程序的歷史使用率統計信息?

上次更新日期:2021 年 10 月 25 日

我想監控我的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上的歷史資源使用情況。如何使用 atop 工具來做到這一點?

簡短描述

atop 工具是一款效能監控工具,可記錄歷史資源使用情況,以供日後分析。此工具也可以執行即時報告。您可以擷取每個處理程序和執行緒的 CPU 使用率、記憶體耗用量和磁碟輸入/輸出的使用情況。atop 工具會在背景中保持作用中狀態 (作為服務) 並記錄統計資料,以支援長期伺服器分析。根據預設,統計資料會存放 28 天。

解決方案

安裝 atop

閱讀 atop 報告日誌以進行歷史審查和分析

atop 工具會在 /var/log/atop 中建立日誌檔案。這些檔案會以下列格式命名:「atop_ccyymmdd」。舉例來說,「atop_20210902」是 2021 年 9 月 2 日的記錄。

若要存取日誌檔案,請執行命令 atop -r atoplogfilepath。將 atoplogfilepath 取代為 atop 日誌檔案的完整路徑。命令和日誌檔案如以下範例中所示:

atop -r /var/log/atop/atop_20210902 

ATOP - ip-172-20-139-91                2021/09/02  17:03:44                ----------------                 3h33m7s elapsed
PRC |  sys    6.51s  |  user   7.85s  |  #proc    103  |  #tslpi    81 |  #tslpu     0  |  #zombie    0  |  #exit      0  |
CPU |  sys     0%  |  user      3%  |  irq       0%  |  idle    197% |  wait      0%  |  ipc notavail  |  curscal   ?%  |
cpu |  sys     0%  |  user      1%  |  irq       0%  |  idle     98% |  cpu000 w  0%  |  ipc notavail  |  curscal   ?%  |
cpu |  sys     0%  |  user      1%  |  irq       0%  |  idle     98% |  cpu001 w  0%  |  ipc notavail  |  curscal   ?%  |

在上述輸出範例中,第一個記錄的快照的擷取時間為 2021/09/02 17:03:44。若要向前移至下一個快照,可以按鍵盤上的「t」鍵。若要向後移至上一個快照,可以按「T」(大寫的「t」) 鍵。

若要分析特定時段,可以按「b」鍵,然後輸入日期和時間。atop 工具會略過輸入新時間變數中指定的時間:

NET |  lo      ----  |  pcki       2  |  pcko       2  |  sp    0 Mbps |  si    0 Kbps  |  so    0 Kbps  |  erro       0  |
Enter new time (format [YYYYMMDD]hhmm):
  PID              TID              RDDSK              WRDSK             WCANCL              DSK             CMD        1/4

快速鍵

您可以按快速鍵檢視不同的統計數字。以下是快速鍵範例:

快速鍵 描述
g 一般資訊 (預設)。
m 記憶體詳細資訊。
d 磁碟詳細資訊。
n 網路詳細資訊。只有在安裝 netatop 核心模組後,才能使用此鍵。
c 每個處理程序的完整命令列

您可以使用下列快速鍵來對處理程序清單進行排序:

快速鍵 排序方式
C CPU 活動。
M 記憶體耗用量。
D 磁碟活動。
N 網路活動。只有在安裝 netatop 核心後,才能使用此鍵。
A 最活躍的系統資源 (自動模式)。

h 鍵可檢視說明文件。

atopsar 命令

atopsar 命令是類似於傳統 UNIX sar 命令的功能。您可以使用 atopsar 命令產生各種系統活動報告。

atopsar 命令使用顏色編碼和 (要求時) 標記來反白資源的使用率。使用率極高用紅色標示,使用率非常高用青色標示。

如以下範例中所示使用標記「-c」時,會產生關於系統目前 CPU 使用率的報告。以下範例會間隔一秒顯示兩個結果。

$ atopsar -c 1 2

ip-172-20-139-91  4.14.238-182.422.amzn2.x86_64  #1 SMP Tue Jul 20 20:35:54 UTC 2021  x86_64  2021/09/02

-------------------------- analysis date: 2021/09/02 --------------------------

18:50:16  cpu  %usr %nice %sys %irq %softirq  %steal %guest  %wait %idle  _cpu_
18:50:17  all     0     0    0    0        0       0      0      0   200
            0     0     0    0    0        0       0      0      0   100
            1     0     0    0    0        0       0      0      0   100
18:50:18  all     0     0    0    0        0       0      0      0   200
            0     0     0    0    0        0       0      0      0   100
            1     0     0    0    0        0       0      0      0   100

atopsar 命令也可以分析歷史資料。例如,執行下列命令可產生當天 13h00 (-b) 開始、13h35 (-e) 結束的所有報告 (-A)。

atopsar -A -b 13:00 -e 13:35

您可以使用「-r」選項並指定日誌檔案名稱,以讀取前一天的檔案。