掌握 Linux 性能監(jiān)控神器:atop 實用指南
在Linux系統(tǒng)管理中,性能監(jiān)控是確保系統(tǒng)運(yùn)行平穩(wěn)的重要環(huán)節(jié)。atop是一款強(qiáng)大的性能監(jiān)控工具,可以提供詳細(xì)的系統(tǒng)性能數(shù)據(jù),包括CPU、內(nèi)存、磁盤和網(wǎng)絡(luò)的使用情況。本文將介紹如何安裝、配置和使用atop來監(jiān)控Linux系統(tǒng)的性能。
安裝atop
在絕大多數(shù)Linux發(fā)行版本中,atop工具能夠便捷地通過各自內(nèi)置的軟件包管理系統(tǒng)進(jìn)行安裝。
在Debian/Ubuntu上:
sudo apt update
sudo apt install atop
在CentOS/RHEL上:
sudo yum install atop
atop的配置
編輯配置文件,修改采樣周期。
[root@k8s-master ~]# cat /etc/sysconfig/atop
LOGOPTS=""
LOGINTERVAL=600 #監(jiān)控周期為600s,也就是每隔600s抓取一次數(shù)據(jù),一般我們修改為30
LOGGENERATIONS=28 #日志保留時間為28,一般我們設(shè)置為7天
LOGPATH=/var/log/atop #日志路徑
- LOGINTERVAL默認(rèn)是600,可以修改成30,單位秒。
- 默認(rèn)atop日志保存周期為28天,可以根據(jù)實際修改LOGGENERATIONS的值為7,單位為天。
啟動atop
安裝完成后,可以通過以下命令啟動atop:
systemctl start atop
檢查是否啟動成功,active(running)表示運(yùn)行正常。如下圖所示:
理解atop的界面
如下圖所示,展示了一部分監(jiān)控指標(biāo)及其相應(yīng)數(shù)值。需要注意的是,這些數(shù)值會依據(jù)實際的采樣周期和所使用的atop軟件版本的不同而有所變化。
主要參數(shù)說明如下:
- ATOP行:主機(jī)名、信息采樣日期和時間點。
- PRC行:進(jìn)程整體運(yùn)行情況。
- #sys及user:內(nèi)核態(tài)和用戶態(tài)所占 CPU 的時間值。
- #proc:進(jìn)程總數(shù)。
- #zombie:僵死進(jìn)程的數(shù)量。
- #exit:采樣周期期間退出的進(jìn)程數(shù)量。
- CPU行:CPU 整體(即多核 CPU 作為一個整體 CPU 資源)的使用情況。CPU 行的各字段數(shù)值相加結(jié)果為 N*100%,N 為 CPU 核數(shù)。
- #sys及user:內(nèi)核態(tài)和用戶態(tài)所占 CPU 的時間比例。
- #irq:CPU被用于處理中斷的時間比例。
- #idle:CPU 處在完全空閑狀態(tài)的時間比例。
- #wait:CPU處在進(jìn)程等待磁盤 IO ,導(dǎo)致 CPU 空閑狀態(tài)的時間比例。
- CPL行:CPU 負(fù)載情況。
- #avg1、avg5和 avg15:過去1分鐘、5分鐘和15分鐘內(nèi)運(yùn)行隊列中的平均進(jìn)程數(shù)量。
- #csw:指示上下文交換次數(shù)。
- #intr:指示中斷發(fā)生次數(shù)。
- MEM 行:內(nèi)存的使用情況。
- #tot:物理內(nèi)存大小。
- #free:空閑的物理內(nèi)存大小
- #cache :用于頁緩存的內(nèi)存大小。
- #buff:用于文件緩存的內(nèi)存大小。
- #slab:系統(tǒng)內(nèi)核占用的內(nèi)存大小。
- SWP行:交換空間的使用情況。
- #tot:交換區(qū)總量。
- #free:空閑交換空間大小。
- DSK 行:磁盤使用情況,每一個磁盤設(shè)備對應(yīng)一列。如果有 sdb 設(shè)備,那么增加一行 DSK 信息。
- #sda:磁盤設(shè)備標(biāo)識。
- #busy:磁盤忙時比例。
- #read 及 write:讀、寫請求數(shù)量。
- NET行:多列 NET 展示了網(wǎng)絡(luò)狀況,包括傳輸層(TCP 和 UDP)、IP 層以及各活動的網(wǎng)口信息。
- #xxxxxi:各層或活動網(wǎng)口收包數(shù)目。
- #xxxxxo:各層或活動網(wǎng)口發(fā)包數(shù)目。
監(jiān)控歷史數(shù)據(jù)
atop還可以記錄歷史數(shù)據(jù),以便后續(xù)分析。記錄的文件通常存儲在/var/log/atop/目錄中。如下所示:
root@didiplus:~# ls -lh /var/log/atop/
total 460M
-rw-r--r-- 1 root root 53M Oct 3 00:00 atop_20241002
-rw-r--r-- 1 root root 47M Oct 4 00:00 atop_20241003
-rw-r--r-- 1 root root 51M Oct 5 00:00 atop_20241004
-rw-r--r-- 1 root root 66M Oct 6 00:00 atop_20241005
-rw-r--r-- 1 root root 50M Oct 7 00:00 atop_20241006
-rw-r--r-- 1 root root 54M Oct 8 00:00 atop_20241007
-rw-r--r-- 1 root root 62M Oct 9 00:00 atop_20241008
-rw-r--r-- 1 root root 57M Oct 10 00:00 atop_20241009
-rw-r--r-- 1 root root 24M Oct 10 10:41 atop_20241010
要查看歷史數(shù)據(jù),可以使用以下命令:
atop -r /var/log/atop/atop_YYYYMMDD
將YYYYMMDD替換為所需的日期。例如我要查看10月2號,如下圖所示:
atop -r /var/log/atop/atop_20241002
自定義atop的參數(shù)
可以通過命令行參數(shù)自定義atop的行為。例如:
- 使用-s參數(shù)可以設(shè)置刷新時間(單位為秒):
atop -s 5
- 使用-P參數(shù)可以顯示特定的進(jìn)程信息,例如CPU或內(nèi)存使用:
atop -P CPU
總結(jié)
atop是一款功能強(qiáng)大的Linux性能監(jiān)控工具,能夠提供實時和歷史的系統(tǒng)性能數(shù)據(jù)。通過合理配置和使用atop,系統(tǒng)管理員可以更好地監(jiān)控和優(yōu)化系統(tǒng)性能,提高系統(tǒng)的穩(wěn)定性和響應(yīng)速度。