atop是一款用於監控Linux系統資源與進程的工具,能夠報告所有進程的活動。其以一定的頻率記錄系統和進程活動,採集的資料包含CPU、記憶體、磁碟、網路的資源使用方式和進程運行情況,並能以記錄檔的方式儲存在磁碟中。對於每個進程,會顯示CPU使用率、記憶體增長、磁碟使用率、優先順序、使用者名稱、狀態和退出碼等。當ECS執行個體出現問題後,您可以擷取相應的atop記錄檔進行分析。本文介紹如何在Linux執行個體中安裝、配置並使用atop監控工具。
安裝atop
Alibaba Cloud Linux 3/2 & CentOS 7.x
本步驟以Alibaba Cloud Linux 3.2104 LTS 64位作業系統的ECS執行個體為例,介紹如何安裝atop監控工具。
遠端連線ECS執行個體。
具體操作,請參見通過密碼或密鑰認證登入Linux執行個體。
執行如下命令,安裝atop。
sudo yum install atop
(可選)如需監測網路使用率,可安裝網路監控模組netatop。
說明netatop是atop中的網路監控模組,可以監測每個進程或線程發送或接收的TCP和UDP資料包統計資訊。atop中預設未安裝netatop,本文以安裝netatop 3.1為例。更多資訊,請參見Module netatop。
執行如下命令,安裝核心開發包。
sudo yum install kernel-devel-$(uname -r)
執行如下命令,安裝netatop所需的模組。
sudo yum install elfutils-libelf-devel
執行如下命令,下載netatop安裝包。
sudo wget https://www.atoptool.nl/download/netatop-3.1.tar.gz --no-check-certificate
執行如下命令,解壓netatop安裝包。
tar -zxvf netatop-3.1.tar.gz
切換到netatop-3.1目錄。
cd netatop-3.1
執行如下命令,編譯並安裝netatop。
sudo make && sudo make install
執行如下命令,啟動netatop。
sudo systemctl start netatop
Ubuntu / Debian 作業系統
本步驟以Ubuntu 22.04 64位作業系統的ECS執行個體為例,介紹如何安裝atop監控工具。
更新軟體源中的所有軟體列表。
sudo apt update
執行如下命令,安裝atop。
sudo apt install atop
(可選)如需監測網路使用率,可安裝網路監控模組netatop。
說明netatop是atop中的網路監控模組,可以監測每個進程或線程發送或接收的TCP和UDP資料包統計資訊。atop中預設未安裝netatop,本文以安裝netatop 3.1為例。更多資訊,請參見Module netatop。
執行如下命令,安裝netatop所需的模組。
sudo apt install zlib1g-dev
執行如下命令,下載netatop安裝包。
sudo wget https://www.atoptool.nl/download/netatop-3.1.tar.gz --no-check-certificate
執行如下命令,解壓netatop安裝包。
tar -zxvf netatop-3.1.tar.gz
切換到netatop-3.1目錄。
cd netatop-3.1
執行如下命令,編譯並安裝netatop。
sudo make && sudo make install
執行如下命令,啟動netatop。
sudo systemctl start netatop
配置並啟動atop
您可以參考以下步驟,配置atop監控周期和日誌保留時間,然後啟動atop。
配置atop監控周期和日誌保留時間。
執行如下命令,開啟atop設定檔。
Alibaba Cloud Linux 3/2 & CentOS 7.x
sudo vim /etc/sysconfig/atop
Ubuntu/Debian
sudo vim /etc/default/atop
按
i
進入編輯模式。修改以下配置。
LOGOPTS:用於控制記錄檔記錄選項的一個重要參數,允許您自訂記錄檔的儲存路徑、命名規則、滾動周期以及其他與日誌記錄相關的選項。為空白
""
表示不使用任何額外選項。LOGINTERVAL:監控周期,建議將預設的監控周期600s修改為30s。
LOGGENERATIONS:日誌保留時間,為避免atop長時間運行佔用太多磁碟空間,建議將預設的日誌保留時間28天修改為7天。
LOGPATH:指定atop記錄檔的路徑。預設值為/var/log/atop。
LOGOPTS="" LOGINTERVAL=30 LOGGENERATIONS=7 LOGPATH=/var/log/atop
按
Esc
鍵,輸入:wq
,儲存並退出編輯。
(可選)如果您想每天產生一個atop日誌。
Ubuntu/Debian::請設定
LOGOPTS="-w /var/log/atop/atop_$(date +\%Y\%m\%d)"
。Alibaba Cloud Linux 3/2 & CentOS 7.x:
執行
crontab -e
,配置系統定時任務。在開啟的檔案中添加:
0 0 * * * sudo systemctl restart atop
。按
Esc
鍵,輸入:wq
,儲存並退出編輯。
執行如下命令,重啟atop服務。
sudo systemctl restart atop
執行如下命令,查看atop服務狀態。
sudo systemctl status atop
分析atop日誌
atop啟動後,會將採集記錄存放在/var/log/atop
目錄下的記錄檔中。執行如下命令,查看記錄檔。
2023XXXX指具體的時間。
atop -r /var/log/atop/atop_2023XXXX
atop常用命令
開啟記錄檔後,您可以使用以下命令篩選資料。
g:切換回預設的綜合輸出視圖。
c:顯示進程列完整命令列。
m:按照進程記憶體使用量率進行降序篩選。
d:按照進程磁碟使用率進行降序篩選。
a:按照進程資源綜合使用率進行降序篩選。
n:按照進程網路使用率進行降序篩選。
t:跳轉到下一個監控採集點。
T:跳轉到上一個監控採集點。
b:指定時間點,格式為YYYYMMDDhhmm。
系統資源監控欄位含義
下圖為部分監控欄位以及數值,具體數值根據採樣周期有所不同。下圖僅供參考,具體資料以您實際資料為準。
主要參數說明如下:
參數 | 說明 |
ATOP行 | 主機名稱、資訊採樣日期和時間點。 |
PRC行 | 進程整體運行情況。
|
CPU行 | CPU整體的使用方式,即多核CPU作為一個整體CPU資源的使用方式。CPU行各個欄位數字相加結果為N*100%,其中N為CPU的核心數。
|
CPL行 | CPU負載情況。
|
MEM行 | 記憶體的使用方式。
|
SWP行 | 交換空間的使用方式。
|
PAG行 | 虛擬記憶體分頁情況。 swin、swout:分別代表換入和換出記憶體頁數。 |
DSK行 | 磁碟使用方式,每一個磁碟裝置對應一列,如果有vdb裝置,那麼將會增加一行DSK資訊。
|
NET行 | 多列NET展示了網路狀況,包括傳輸層TCP和UDP、IP層以及各活動的網口資訊。
|