監控 Linux 容器效能的命令列神器
ctop是一個新的基於命令列的工具,它可用於在容器層級監控程式。容器通過利用控制器組(cgroup)的資源管理功能,提供了作業系統層級的虛擬化環境。該工具從cgroup收集與記憶體、CPU、塊輸入輸出的相關資料,以及擁有者、開機時間等後設資料,並以人性化的格式呈現給使用者,這樣就可以快速對系統健康狀況進行評估。基於所獲得的資料,它可以嘗試推測下層的容器技術。ctop也有助於在低記憶體環境中檢測出誰在消耗大量的記憶體。
功能
ctop的一些功能如下:
- 收集CPU、記憶體和塊輸入輸出的度量值
- 收集與擁有者、容器技術和任務統計相關的資訊
- 通過任意欄對資訊排序
- 以樹狀檢視顯示資訊
- 摺疊/展開cgroup樹
- 選擇並跟蹤cgroup/容器
- 選擇顯示資料重新整理的時間視窗
- 暫停重新整理資料
- 檢測基於systemd、Docker和LXC的容器
- 基於Docker和LXC的容器的高階特性
- 開啟/連線shell以進行深度診斷
- 停止/殺死容器型別
安裝
ctop是由Python寫成的,因此,除了需要Python 2.6或其更高版本外(帶有內建的游標支援),別無其它外部依賴。推薦使用Python的pip進行安裝,如果還沒有安裝pip,請先安裝,然後使用pip安裝ctop。
注意:本文樣例來自Ubuntu(14.10)系統
$ sudo apt-get install python-pip
使用pip安裝ctop:
poornima@poornima-Lenovo:~$ sudo pip install ctop [sudo] password for poornima: Downloading/unpacking ctop Downloading ctop-0.4.0.tar.gz Running setup.py (path:/tmp/pip_build_root/ctop/setup.py) egg_info for package ctop Installing collected packages: ctop Running setup.py install for ctop changing mode of build/scripts-2.7/ctop from 644 to 755 changing mode of /usr/local/bin/ctop to 755 Successfully installed ctop Cleaning up...
如果不選擇使用pip安裝,你也可以使用wget直接從github安裝:
poornima@poornima-Lenovo:~$ wget https://raw.githubusercontent.com/yadutaf/ctop/master/cgroup_top.py -O ctop --2015-04-29 19:32:53-- https://raw.githubusercontent.com/yadutaf/ctop/master/cgroup_top.py Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 199.27.78.133 Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|199.27.78.133|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 27314 (27K) [text/plain] Saving to: ctop 100%[======================================>] 27,314 --.-K/s in 0s 2015-04-29 19:32:59 (61.0 MB/s) - ctop saved [27314/27314]
poornima@poornima-Lenovo:~$ chmod +x ctop
如果cgroup-bin包沒有安裝,你可能會碰到一個錯誤訊息,你可以通過安裝需要的包來解決。
poornima@poornima-Lenovo:~$ ./ctop [ERROR] Failed to locate cgroup mountpoints. poornima@poornima-Lenovo:~$ sudo apt-get install cgroup-bin
下面是ctop的輸出樣例:
ctop螢幕
用法選項
ctop [--tree] [--refresh=] [--columns=] [--sort-col=] [--follow=] [--fold=, ...] ctop (-h | --help)
當你進入ctop螢幕,可使用上(↑)和下(↓)箭頭鍵在容器間導航。點選某個容器就選定了該容器,按q或Ctrl+C退出該容器。
現在,讓我們來看看上面列出的那一堆選項究竟是怎麼用的吧。
-h / –help – 顯示幫助資訊
poornima@poornima-Lenovo:~$ ctop -h Usage: ctop [options] Options: -h, --help show this help message and exit --tree show tree view by default --refresh=REFRESH Refresh display every <seconds> --follow=FOLLOW Follow cgroup path --columns=COLUMNS List of optional columns to display. Always includes 'name' --sort-col=SORT_COL Select column to sort by initially. Can be changed dynamically.
–tree – 顯示容器的樹形檢視
預設情況下,會顯示列表檢視
當你進入ctop視窗,你可以使用F5按鈕在樹狀/列表檢視間切換。
–fold= – 在樹形檢視中摺疊名為 <name> 的 cgroup 路徑
該選項需要與 –tree 選項組合使用。
例子: ctop –tree –fold=/user.slice
‘ctop –fold’的輸出
在ctop視窗中,使用+/-鍵來展開或摺疊子cgroup。
注意:在寫本文時,pip倉庫中還沒有最新版的ctop,還不支援命令列的‘–fold’選項
–follow= – 跟蹤/高亮 cgroup 路徑
例子: ctop –follow=/user.slice/user-1000.slice
正如你在下面螢幕中所見到的那樣,帶有“/user.slice/user-1000.slice”路徑的cgroup被高亮顯示,這讓使用者易於跟蹤,就算顯示位置變了也一樣。
‘ctop –follow’的輸出
你也可以使用‘f’按鈕來讓高亮的行跟蹤選定的容器。預設情況下,跟蹤是關閉的。
–refresh= – 按指定頻率重新整理顯示,預設1秒
這對於按每使用者需求來顯示改變重新整理率時很有用。使用‘p’按鈕可以暫停重新整理並選擇文字。
–columns= – 限定只顯示選定的列。’name’ 需要是第一個欄位,其後跟著其它欄位。預設情況下,欄位包括:owner, processes,memory, cpu-sys, cpu-user, blkio, cpu-time
例子: ctop –columns=name,owner,type,memory
‘ctop –column’的輸出
-sort-col= – 按指定的列排序。預設使用 cpu-user 排序
例子: ctop –sort-col=blkio
如果有Docker和LXC支援的額外容器,跟蹤選項也是可用的:
press 'a' - 接駁到終端輸出 press 'e' - 開啟容器中的一個 shell press 's' - 停止容器 (SIGTERM) press 'k' - 殺死容器 (SIGKILL)
目前 Jean-Tiare Le Bigot 還在積極開發 ctop 中,希望我們能在該工具中見到像本地 top 命令一樣的特性。
相關文章
- 監控 Linux 效能的 18 個命令列工具Linux命令列
- 監控Linux效能的18個命令列工具Linux命令列
- linux效能監控命令Linux
- ngxtop:在命令列實時監控 Nginx 的神器命令列Nginx
- [轉載]監控 Linux 效能的 18 個命令列工具Linux命令列
- 【Nginx】ngxtop:在命令列實時監控 Nginx 的神器Nginx命令列
- ☕[JVM效能專題](1)效能監控-命令列工具JVM命令列
- sysstat——系統效能監控神器
- 幾個常用的linux效能監控命令Linux
- Linux 常用系統效能監控命令Linux
- 進行Linux效能監控的命令介紹Linux
- Linux效能監控,安全等命令集Linux
- AIX常用的效能監控命令AI
- 監控 Linux 系統的 7 個命令列工具Linux命令列
- 效能監控命令總結
- 【JVM進階之路】八:效能監控工具-命令列篇JVM命令列
- Linux系統監控神器--CollectlLinux
- Java生產環境效能監控與調優—基於JDK命令列工具的監控JavaJDK命令列
- Linux 效能監控工具Linux
- MyCAT的命令列監控工具介紹命令列
- 伺服器效能監控神器nmon使用介紹伺服器
- sar效能監視命令-實時監控CPU
- 超牛逼的效能監控神器!快速定位線上問題
- Oracle效能監控常用命令Oracle
- Linux監控命令全解Linux
- Unix/Linux 常用監控命令Linux
- SSH Exporter:基於Prometheus的遠端系統效能監控神器ExportPrometheus
- 容器監控—阿里雲&容器內部服務監控阿里
- 常用的4個伺服器效能監控命令伺服器
- 轉:AIX PS命令的詳解 -- 程式效能監控AI
- Linux程式管理與效能監控Linux
- linux效能監控利器20個Linux
- Linux系統監控命令薦Linux
- linux監控CPU命令-mpstatLinux
- Linux中監控系統效能常用的命令!Linux
- 磁碟IO效能監控(Linux 和 Windows)LinuxWindows
- zt:Linux效能監控之Memory篇Linux
- Click: 命令列工具神器命令列