linux 資源監控工具 glances
前言
glances 可以為 Unix 和 Linux 效能專家提供監視和分析效能資料的功能,其中包括:
- CPU 使用率
- 記憶體使用情況
- 核心統計資訊和執行佇列資訊
- 磁碟 I/O 速度、傳輸和讀/寫比率
- 檔案系統中的可用空間
- 磁碟介面卡
- 網路 I/O 速度、傳輸和讀/寫比率
- 頁面空間和頁面速度
- 消耗資源最多的程序
- 計算機資訊和系統資源
glances 工具可以在使用者的終端上實時顯示重要的系統資訊,並動態地對其進行更新。這個高效的工具可以工作於任何終端螢幕。另外它並不會消耗大量的 CPU 資源,通常低於百分之二。glances 在螢幕上對資料進行顯示,並且每隔兩秒鐘對其進行更新。您也可以自己將這個時間間隔更改為更長或更短的數值。glances 工具還可以將相同的資料捕獲到一個檔案,便於以後對報告進行分析和繪製圖形。輸出檔案可以是電子表格的格式 (.csv) 或者 html 格式。
兩種方法安裝 glances
通常可以有兩種方法安裝 glances。第一種是通過編譯原始碼的方式,這種方法比較複雜另外可能會遇到軟體包依賴性問題。還有一種是使用特定的軟體包管理工具來安裝 glances,這種方法比較簡單。本文使用後者,需要說明的是在 CentOS 特定的軟體包管理工具來安裝。glances 要首先配置 EPEL repo,然後使用 pip 工具安裝 glances。
pip 軟體包簡介
通常 Linux 系統管理員有兩種方式來安裝一個 Python 的軟體包:一種是通過系統的包管理工具(如 apt-get)從系統的軟體倉庫裡安裝,一種是通過 Python 自己的包管理工具(如 easy_install 或者 pip)從 Python Cheese Shop 中下載安裝。筆者推薦使用 pip。pip 是一個可以代替 easy_install 的安裝和管理 Python 軟體包的工具,是一個安裝 Python 庫很方便的工具,功能類似 YUM。注意 CentOS 和 Fedora 下安裝 Python-pip 後,關鍵字不是 pip 而是 pip-Python。
首先配置 EPEL repo
如果既想獲得 RHEL 的高質量、高效能、高可靠性,又需要方便易用(關鍵是免費)的軟體包更新功能,那麼 Fedora Project 推出的 EPEL(Extra Packages for Enterprise Linux ,http://fedoraproject.org/wiki/EPEL)正好適合你。它是由 Fedora 社群打造,為 RHEL 及衍生髮行版如 CentOS、Scientific Linux 等提供高質量軟體包的專案。裝上了 EPEL,就像在 Fedora 上一樣,可以通過 yum install package-name,隨意安裝軟體。安裝使用 EPEL 非常簡單:
#wget http://ftp.riken.jp/Linux/fedora/epel/RPM-GPG-KEY-EPEL-6 #rpm --import RPM-GPG-KEY-EPEL-6 #rm -f RPM-GPG-KEY-EPEL-6 #vi /etc/yum.repos.d/epel.repo # create new [epel] name=EPEL RPM Repository for Red Hat Enterprise Linux baseurl=http://ftp.riken.jp/Linux/fedora/epel/6/$basearch/ gpgcheck=1 enabled=0
使用 pip 安裝 glances
這裡介紹一下安裝過程:首先使用 YUM 安裝 pip 工具,然後使用 pip 工具安裝 glances 和用來顯示系統溫度的相關軟體。
#yum --enablerepo=epel install Python Python-pip Python-devel gcc # pip-Python install glances
安裝 lm_sensors 軟體
lm_sensors 的軟體可以幫助我們來監控主機板、CPU 的工作電壓、風扇轉速、溫度等資料。這些資料我們通常在主機板的 BIOS 也可以看到。當我們可以在機器執行的時候通過 lm_sensors 隨時來監測著 CPU 的溫度變化,可以預防呵保護因為 CPU 過熱而會燒掉。lm_sensors 軟體監測到的資料可以被 glances 呼叫並且顯示 。
# yum install lm_sensors # pip-Python install PySensors
glances 使用方法
glances 是一個命令列工具包括如下命令選項: -b:顯示網路連線速度 Byte/ 秒 -B @IP|host :繫結伺服器端 IP 地址或者主機名稱 -c @IP|host:連線 glances 伺服器端 -C file:設定配置檔案預設是 /etc/glances/glances.conf -d:關閉磁碟 I/O 模組 -e:顯示感測器溫度 -f file:設定輸出檔案(格式是 HTML 或者 CSV) -m:關閉掛載的磁碟模組 -n:關閉網路模組 -p PORT:設定執行埠預設是 61209 -P password:設定客戶端 / 伺服器密碼 -s:設定 glances 執行模式為伺服器 -t sec:設定螢幕重新整理的時間間隔,單位為秒,預設值為 2 秒,數值許可範圍:1~32767 -h : 顯示幫助資訊 -v : 顯示版本資訊
glances 工作介面如圖 1
圖 1.glances 工作介面
glances 工作介面的說明 :
在圖 1 的上部是 CPU 、Load(負載)、Mem(記憶體使用)、 Swap(交換分割槽)的使用情況。在圖 1 的中上部是網路介面、Processes(程序)的使用情況。通常包括如下欄位:
VIRT: 虛擬記憶體大小 RES: 程序佔用的實體記憶體值 %CPU:該程序佔用的 CPU 使用率 %MEM:該程序佔用的實體記憶體和總記憶體的百分比 PID: 程序 ID 號 USER: 程序所有者的使用者名稱 TIME+: 該程序啟動後佔用的總的 CPU 時間 IO_R 和 IO_W: 程序的讀寫 I/O 速率 NAME: 程序名稱 NI: 程序優先順序 S: 程序狀態,其中 S 表示休眠,R 表示正在執行,Z 表示僵死狀態。
在圖 1 的中下部是感測器檢測到的 CPU 溫度。 在圖 1 的下部是磁碟 I/O 的使用情況。 另外 glances 可以使用互動式的方式執行該工具,使用者可以使用如下快捷鍵:
h : 顯示幫助資訊 q : 離開程式退出 c :按照 CPU 實時負載對系統程序進行排序 m :按照記憶體使用狀況對系統程序排序 i:按照 I/O 使用狀況對系統程序排序 p: 按照程序名稱排序 d : 顯示磁碟讀寫狀況 w : 刪除日誌檔案 l :顯示日誌 s: 顯示感測器資訊 f : 顯示系統資訊 1 :輪流顯示每個 CPU 核心的使用情況(次選項僅僅使用在多核 CPU 系統)
glances 的高階應用
glances 的結果輸出方法
讓 glances 輸出 HTML 格式檔案,首先安裝相關軟體包
# pip-Python install Jinja2 # glances -o HTML -f /var/www/html
下面可以使用 Firefox 瀏覽器輸入網址: http://localhost/glances.html,結果如圖 2。
圖 2.輸出 HTML 格式檔案
輸出 csv 格式
該檔案採用逗號分隔值(CSV)的格式,並且可以將其直接匯入到電子表格中。
# glances -o CSV -f /home/cjh/glances.csv
下面使用 libreoffice 的 calc 工具開啟 csv 格式檔案(如圖 3)
#libreoffice --calc %U /tmp/glances.csv
圖 3.使用 libreoffice 的 calc 工具開啟 csv 格式檔案
glances 伺服器 / 客戶端工作方式
glances 支援伺服器/客戶端工作方式,可以實現遠端監控。首先假設
伺服器 IP 地址:10.0.2.14
客戶端 IP 地址:10.0.2.15
確保二者都已經安裝好 glances 軟體包。
首先在伺服器端啟動;
# glances -s -B 10.0.2.15 glances server is running on 10.0.2.15:61209
可以看到 glances 使用的埠號是 61209,所以使用者需要確保防火牆開啟這個埠。
下面在客戶端使用如下命令連線伺服器如圖 4:
# glances – c 10.0.2.15
圖 4.客戶端連線伺服器
注意圖 4 的左下角顯示“Connected to 10.0.2.15”>表示客戶端已經連線伺服器成功。
通過 glances 輸出顏色瞭解系統性能
圖 5.是 glances 的一個輸出介面
綠色表示效能良好,無需做任何額外工作;(此時 CPU 使用率、磁碟空間使用率和記憶體使用率低於 50%,系統負載低於 0.7)。
藍色表示系統性能有一些小問題,使用者應當開始關注系統性能;(此時 CPU 使用率、磁碟空間使用率和記憶體使用率在 50%-70% 之間,系統負載在 0.7-1 之間)。
品紅表示效能報警,應當採取措施比如備份資料;(此時 CPU 使用率、磁碟空間使用率和記憶體使用率在 70%-90% 之間,,系統負載在 1-5 之間)。
紅色表示效能問題嚴重,可能宕機;(此時 CPU 使用率、磁碟空間使用率和記憶體使用率在大於 90%,系統負載大於 5)。