早些時候,我們提到過有很多可以用來監視系統性能的 Linux 系統監視工具。 但我們估計,或許更多的用戶會傾向與絕大多數 Linux 發行版本都帶的工具 (top 命令)。
top 命令是 Linux 下的一個即時工作管理員, 同時也是用於在 GNU/Linux 發行版本中尋找系統性能方面的瓶頸,並説明我們作出正確操作的常用系統監視工具。 她有著一個極為簡潔的介面,並自帶少量的可以幫助我們快速瞭解系統性能的實用選項。
但是,有些時候想要通過她尋找一個佔用系統資源比較大的應用或進程可能會比較困難。 因為 top 命令本身並不會幫助我們高亮那些吃太多 CPU,記憶體,或者其他資源的程式。
為了達到這個目標,這裡我們將介紹一款超牛逼的系統監視程式 —— Glances。 她可以自動高亮利用最高系統資源的程式,並為 Linux/Unix 伺服器提供盡可能多的資訊。
什麼是 Glances?
Glances 是一個由 Python 編寫,使用 psutil 庫來從系統抓取資訊的基於 curses 開發的跨平臺命令列系統監視工具。 通過 Glances,我們可以監視 CPU,平均負載,記憶體,網路流量,磁片 I/O,其他處理器 和 檔案系統 空間的利用情況。
Glances 是一個用來監視 GNU/Linux 和 FreeBSD 作業系統的 GPL 授權的自由軟體。
Glances 同時也提供了很多實用的選項。 其中我們能夠在設定檔見到的一項主要的功能就是設置關鍵值及相應的標籤 (careful[小心], warning[警告] 和 critical[嚴重]), 然後她會自動幫我們用不同顏色標出系統達到某個瓶頸的資訊。
Glances 主要功能
CPU 資訊 (使用者的相關應用, 系統核心程式和空閒程式)
總記憶體資訊,包括了實體記憶體,交換空間和空閒記憶體等等
之前的 1 分鐘、5 分鐘和 15 分鐘平均的 CPU 負載
網路連結的下行和上行速度
處理器總數,以及其活動狀態
硬碟 I/O 相關(讀寫)速度詳情
當前掛載設備的磁片使用情況
高 CPU 和記憶體使用的進程名,和相關應用的位置
在底部顯示當前日期和時間
將消耗最高系統資源的進程用紅色標出
下面是一個 Glances 的使用截圖:
在 Linux/Unix 系統中安裝 Glances
雖然這個工具的發佈比較晚,但你仍然可以在 Red Hat 系的系統中通過 EPEL 軟體源安裝。在終端用下麵的命令安裝:
對於 RHEL/CentOS/Fedora 發行版本
# yum install -y glances# yum install -y glances
對於 Debian/Ubuntu/Linux Mint 發行版本
$ sudo apt-add-repository ppa:arnaud-hartmann/glances-stable $ sudo apt-get update $ sudo apt-get install glances
如何使用 Glances
首先,你需要在終端中輸入以下命令
# glances
Glances 的預設刷新頻率是 1 (秒),但是你可以通過在終端指定參數來手動定義其刷新頻率
# glances -t 2
Glances 中顏色的含義
Glances 會用一下幾種顏色來代表狀態:
綠色:OK(一切正常)
藍色:CAREFUL(需要注意)
紫色:WARNING(警告)
紅色:CRITICAL(嚴重)
閥值可以在設定檔中設置,一般閥值被默認設置為(careful=50、warning=70、critical=90)。
我們可以按照自己的需求在設定檔(默認在/etc/glances/glances.conf)中自訂。
Glances 的選項
除了很多命令列選項之外,Glances 還提供了更多的可在其運行時開關輸出資訊選項的快速鍵,下面是一些例子:
a – 對進程自動排序
c – 按 CPU 百分比對進程排序
m – 按記憶體百分比對進程排序
p – 按進程名字母順序對進程排序
i – 按讀寫頻率(I/O)對進程排序
d – 顯示/隱藏磁片 I/O 統計資訊
f – 顯示/隱藏檔案系統統計資訊
n – 顯示/隱藏網路介面統計資訊
s – 顯示/隱藏感測器統計資訊
y – 顯示/隱藏硬碟溫度統計資訊
l – 顯示/隱藏日誌(log)
b – 切換網路 I/O 單位(Bytes/bits)
w – 刪除警告日誌
x – 刪除警告和嚴重日誌
1 – 切換全域 CPU 使用情況和每個 CPU 的使用情況
h – 顯示/隱藏這個説明畫面
t – 以組合形式流覽網路 I/O
u – 以累計形式流覽網路 I/O
q – 退出(‘ESC‘ 和 ‘Ctrl&C‘ 也可以)
遠端使用 Glances
你甚至也可以通過 Glances 來監視遠端系統。 要在遠端系統使用 ‘glances’,需要在伺服器運行 ‘glances -s’(-s 啟動伺服器/用戶端模式)命令。
# glances -s
Define the password for the Glances server
Password:
Password (confirm):
Glances server is running on 0.0.0.0:61209
注意:當你執行了‘glances’命令後,她會讓你為 Glances 伺服器設置密碼。
當你設置完畢,你將看到 “Glances server is running on 0.0.0.0:61209”(Glances 伺服器正在 0.0.0.0 的 61209 埠運行)的消息。
當 Glances 伺服器啟動後,到本地執行下麵的命令來指定伺服器IP位址或主機名稱以連結。
注:這裡的 ‘172.16.27.56’ 是我 Glances 伺服器的 IP 地址。
# glances -c -P 172.16.27.56
下面是一些在使用伺服器/用戶端模式時必須知道的事情:
* 在伺服器模式,你可以通過 `-B 位址` 來設置綁定位址,也可以通過 `-p 埠` 來綁定監聽的 TCP 埠
* 在用戶端模式,你可以通過同樣的 `-p 埠` 來指定伺服器埠
* 默認的綁定位址是 0.0.0.0,但這麼做會監聽所有網路介面的指定埠
* 在伺服器/用戶端模式下,限制的閥值將由伺服器的設置決定
* 你也可以在命令列下用過 `-P 密碼` 的方式來為伺服器端設置一個密碼
總結
Glances 對於大多使用者而言是個在系統資源上提供過多資訊的工具。但是如果你是一個想要僅從命令列就能快速獲取系統整體狀況的系統管理員,那這個工具絕對是你的必備利器。
譯者注
請不要將 glances(本文中的工具)和 glance(一個 OpenStack 的工具)這兩個包搞混了
Ubuntu 官方 Extra 源中的 glances 因為 python 庫移動的問題導致無法正常使用 但可以通過建立軟連結的方式臨時修復:sudo ln -s /usr/lib/python2.7/dist-packages/glances/usr/share/pyshared/glances