1. 程式人生 > >linux 資源監控工具 glances

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 工作介面
圖 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 格式檔案
圖 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 格式檔案
圖 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 客戶端連線伺服器

注意圖 4 的左下角顯示“Connected to 10.0.2.15”>表示客戶端已經連線伺服器成功。

通過 glances 輸出顏色瞭解系統性能

圖 5.是 glances 的一個輸出介面
圖 5 是 glances 的一個輸出介面

綠色表示效能良好,無需做任何額外工作;(此時 CPU 使用率、磁碟空間使用率和記憶體使用率低於 50%,系統負載低於 0.7)。

藍色表示系統性能有一些小問題,使用者應當開始關注系統性能;(此時 CPU 使用率、磁碟空間使用率和記憶體使用率在 50%-70% 之間,系統負載在 0.7-1 之間)。

品紅表示效能報警,應當採取措施比如備份資料;(此時 CPU 使用率、磁碟空間使用率和記憶體使用率在 70%-90% 之間,,系統負載在 1-5 之間)。

紅色表示效能問題嚴重,可能宕機;(此時 CPU 使用率、磁碟空間使用率和記憶體使用率在大於 90%,系統負載大於 5)。