全部產品
Search
文件中心

:安裝、配置並使用atop監控工具

更新時間:Sep 03, 2024

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監控工具。

  1. 遠端連線ECS執行個體。

    具體操作,請參見通過密碼或密鑰認證登入Linux執行個體

  2. 執行如下命令,安裝atop。

    sudo yum install atop
  3. (可選)如需監測網路使用率,可安裝網路監控模組netatop。

    說明

    netatop是atop中的網路監控模組,可以監測每個進程或線程發送或接收的TCP和UDP資料包統計資訊。atop中預設未安裝netatop,本文以安裝netatop 3.1為例。更多資訊,請參見Module netatop

    1. 執行如下命令,安裝核心開發包。

      sudo yum install kernel-devel-$(uname -r)
    2. 執行如下命令,安裝netatop所需的模組。

      sudo yum install elfutils-libelf-devel
    3. 執行如下命令,下載netatop安裝包。

      sudo wget https://www.atoptool.nl/download/netatop-3.1.tar.gz --no-check-certificate
    4. 執行如下命令,解壓netatop安裝包。

      tar -zxvf netatop-3.1.tar.gz
    5. 切換到netatop-3.1目錄。

      cd netatop-3.1
    6. 執行如下命令,編譯並安裝netatop。

      sudo make && sudo make install
    7. 執行如下命令,啟動netatop。

      sudo systemctl start netatop

Ubuntu / Debian 作業系統

本步驟以Ubuntu 22.04 64位作業系統的ECS執行個體為例,介紹如何安裝atop監控工具。

  1. 更新軟體源中的所有軟體列表。

    sudo apt update 
  2. 執行如下命令,安裝atop。

    sudo apt install atop
  3. (可選)如需監測網路使用率,可安裝網路監控模組netatop。

    說明

    netatop是atop中的網路監控模組,可以監測每個進程或線程發送或接收的TCP和UDP資料包統計資訊。atop中預設未安裝netatop,本文以安裝netatop 3.1為例。更多資訊,請參見Module netatop

    1. 執行如下命令,安裝netatop所需的模組。

      sudo apt install zlib1g-dev
    2. 執行如下命令,下載netatop安裝包。

      sudo wget https://www.atoptool.nl/download/netatop-3.1.tar.gz --no-check-certificate
    3. 執行如下命令,解壓netatop安裝包。

      tar -zxvf netatop-3.1.tar.gz
    4. 切換到netatop-3.1目錄。

      cd netatop-3.1
    5. 執行如下命令,編譯並安裝netatop。

      sudo make && sudo make install
    6. 執行如下命令,啟動netatop。

      sudo systemctl start netatop

配置並啟動atop

您可以參考以下步驟,配置atop監控周期和日誌保留時間,然後啟動atop。

  1. 配置atop監控周期和日誌保留時間。

    1. 執行如下命令,開啟atop設定檔。

      • Alibaba Cloud Linux 3/2 & CentOS 7.x

        sudo vim /etc/sysconfig/atop
      • Ubuntu/Debian

        sudo vim /etc/default/atop
    2. i進入編輯模式。

    3. 修改以下配置。

      • LOGOPTS:用於控制記錄檔記錄選項的一個重要參數,允許您自訂記錄檔的儲存路徑、命名規則、滾動周期以及其他與日誌記錄相關的選項。為空白""表示不使用任何額外選項。

      • LOGINTERVAL:監控周期,建議將預設的監控周期600s修改為30s。

      • LOGGENERATIONS:日誌保留時間,為避免atop長時間運行佔用太多磁碟空間,建議將預設的日誌保留時間28天修改為7天。

      • LOGPATH:指定atop記錄檔的路徑。預設值為/var/log/atop。

        LOGOPTS=""
        LOGINTERVAL=30
        LOGGENERATIONS=7
        LOGPATH=/var/log/atop
    4. Esc鍵,輸入:wq,儲存並退出編輯。

  2. (可選)如果您想每天產生一個atop日誌。

    • Ubuntu/Debian::請設定LOGOPTS="-w /var/log/atop/atop_$(date +\%Y\%m\%d)"

    • Alibaba Cloud Linux 3/2 & CentOS 7.x:

      1. 執行crontab -e,配置系統定時任務。

      2. 在開啟的檔案中添加:0 0 * * * sudo systemctl restart atop

      3. Esc鍵,輸入:wq,儲存並退出編輯。

  3. 執行如下命令,重啟atop服務。

    sudo systemctl restart atop
  4. 執行如下命令,查看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。

系統資源監控欄位含義

下圖為部分監控欄位以及數值,具體數值根據採樣周期有所不同。下圖僅供參考,具體資料以您實際資料為準。

2023-04-03_17-30-42

主要參數說明如下:

參數

說明

ATOP行

主機名稱、資訊採樣日期和時間點。

PRC行

進程整體運行情況。

  • sys、user:分別代表進程在核心態和使用者態的已耗用時間。

  • #proc:進程總數。

  • #trun:處於running狀態進程數。

  • #tslpi:處於sleeping interruptible狀態的進程數。

  • #tslpu:處於sleeping uninterruptible狀態的進程數。

  • #zombie:僵死進程的數量。

  • #exit:atop採樣周期內退出的進程數。

CPU行

CPU整體的使用方式,即多核CPU作為一個整體CPU資源的使用方式。CPU行各個欄位數字相加結果為N*100%,其中N為CPU的核心數。

  • sys、user:CPU在用於處理進程時,進程在核心態及使用者態所佔CPU的時間比例。

  • irq:CPU用於處理中斷的時間比例。

  • idle:CPU處在完全空閑狀態的時間比例。

  • wait:CPU處在進程等待磁碟IO導致CPU空閑狀態的時間比例。

CPL行

CPU負載情況。

  • avg1、avg5和avg15:分別代表過去1分鐘、5分鐘和15分鐘內運行隊列中的平均進程數量。

  • csw:環境切換次數。

  • intr:中斷髮生次數。

MEM行

記憶體的使用方式。

  • tot:實體記憶體總量。

  • free:空閑記憶體的大小。

  • cache:用於頁緩衝的記憶體大小。

  • buff:用於檔案快取的記憶體大小。

  • slab:系統核心佔用的記憶體大小。

SWP行

交換空間的使用方式。

  • tot:交換區總量。

  • free:空閑交換空間大小。

PAG行

虛擬記憶體分頁情況。

swin、swout:分別代表換入和換出記憶體頁數。

DSK行

磁碟使用方式,每一個磁碟裝置對應一列,如果有vdb裝置,那麼將會增加一行DSK資訊。

  • vda:磁碟裝置標識。

  • busy:磁碟處於busy狀態的時間比例。

  • read、write:分別代表讀、寫請求數量。

NET行

多列NET展示了網路狀況,包括傳輸層TCP和UDP、IP層以及各活動的網口資訊。

  • ****i:各層或活動網口接收包大小。

  • ****o:各層或活動網口發送包大小。