CentOS 7上的效能監控工具
Linux中基於命令列的效能監控工具:dstat、top、netstat、vmstat、htop、ss、glances
1、dstat – 多型別資源統計工具(需配置epel源)
該命令整合了vmstat,iostat和ifstat三種命令。同時增加了新的特性和功能可以讓你能及時看到各種的資源使用情況,從而能夠使你對比和整合不同的資源使用情況。通過不同顏色和區塊
佈局的介面幫助你能夠更加清晰容易的獲取資訊。它也支援將資訊資料匯出到cvs格式檔案中,從而用其他應用程式開啟,或者匯入到資料庫中。你可以用該命令來監控cpu,記憶體和網路狀態隨著
時間的變化。
簡介:
dstat - versatile tool for generating system resource statistics
格式:
dstat [-afv] [options..] [delay [count]]
選項:
-c: 顯示cpu相關資訊
-C #,#,...,total
-d: 顯示disk相關資訊
-D total,sda,sdb,...
-g:顯示page相關統計資料
-m: 顯示memory相關統計資料
-n: 顯示network相關統計資料
-p: 顯示process相關統計資料
-r: 顯示io請求相關的統計資料
-s: 顯示swapped相關的統計資料
--top-cpu:顯示最佔用CPU的程序
--top-io: 顯示最佔用io的程序
--top-mem: 顯示最佔用記憶體的程序
--top-latency: 顯示延遲最大的程序
- -raw:顯示裸套接字
- -socket:套接字
- -ipc:程序間通訊資訊
例項1:顯示cpu、程序、記憶體、io執行緒以及swap等相關資訊
例項2:顯示tcp、udp協議和raw和socket套接字以及程序間通訊的資訊
例項3:顯示系統中cpu和io執行緒以及記憶體使用的情況
2、top – 經典的Linux任務管理工具
作為一個廣為人知的Linux工具,top是大多數的類Unix作業系統工作管理員。它可以顯示當前正在執行的程序的列表,使用者可以按照不同的條件對該列表進行排序。它主要顯示了系統程序對CPU和
記憶體的使用狀況。top可以快速檢查是哪個或哪幾個程序掛起了你的系統。你可以在這裡看到top使用的例子。 你可以在終端輸入top來執行它並進入到互動模式:
簡介:
top - display Linux processes
格式:
top -hv|-bcHiOSs -d secs -n max -u|U user -p pid -o fld -w [cols]
互動模式的一些快捷操作:
全域性命令: <回車/空格> ?, =, A, B, d, G, h, I, k, q, r, s, W, Z
統計區的命令: l, m, t, 1
任務區的命令:
外觀: b, x, y, z 內容: c, f, H, o, S, u 大小: #, i, n 排序: <, >, F, O, R
色彩方案: <Ret>, a, B, b, H, M, q, S, T, w, z, 0 - 7
視窗命令: -, _, =, +, A, a, G, g, w
例項1:
top命令個引數具體含義:
top – 13:26:57 up 1:38, 2 users, load average: 0.00, 0.01, 0.04
13:26:57:當前時間
1:38:執行時長
2 users:登入當前系統上的使用者數
load average: 0.00, 0.01, 0.04:平均負載(等待執行的佇列長度的負載)
Tasks: 367 total, 1 running, 366 sleeping, 0 stopped, 0 zombie
Tasks:任務
367 total:一共執行367程序
1 running:1個處於執行
366 sleeping:366個程序睡眠
0 stopped:0個停止
0 zombie:0個僵死
%Cpu(s): 0.0 us, 0.1 sy, 0.0 ni, 99.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu:cpu佔用百分比
0.0 us:使用者空間佔用的百分比
0.1 sy:核心空間佔用時間的百分比
0.0 ni:對nice調整佔用的記憶體百分比
99.9 id:空閒百分比
0.0 wa:等待IO完成所消耗的百分比
0.0 hi:處理硬體中斷所佔用的百分比
0.0 si:處理軟體中斷所佔用的百分比
0.0 st:被偷走的百分比(虛擬化程式)
KiB Mem : 1868688 total, 1328280 free, 127580 used, 412828 buff/cache
KiB Mem:記憶體空間佔用,以KB為單位:
1868688 total:總記憶體空間
1328280 free:剩餘記憶體空間
127580 used:已用記憶體空間
412828 buff/cache:用於快取和緩衝的記憶體空間
KiB Swap: 2097148 total, 2097148 free, 0 used. 1564488 avail Mem
KiB Swap:swap空間佔用,以KB為單位
2097148 total:總空間
2097148 free:剩餘空間
0 used:已用空間
698100 avail Mem :有效swap大小
欄位資訊簡介
us:使用者空間
sy:核心空間
ni:調整nice時間
id:空閒
wa:等待IO時間
hi:硬中斷
si:軟中斷(模式切換)
st:虛擬機器偷走的時間
例項2:
敲m鍵:可以將記憶體使用率用|||顯示 或者白空格顯示
例項3:
敲t鍵:可以禁用顯示硬碟及cpu相關訊息
例項4:
敲k鍵:終止指定的程序
例項5:
敲q鍵:退出top介面
3、netstat – 顯示開放的埠和連線(以centos 6 操作)
它是Linux管理員使用來顯示各種網路資訊的工具,如檢視什麼埠開放和什麼網路連線已經建立以及何種程序執行在該連線之上。同時它也顯示了不同程式間開啟的Unix套接字的資訊。作為大多數
Linux發行版本的一部分,netstat的許多命令在netstat和它的不同輸出中有詳細的描述。最為常用的如下:
簡介:
netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships
格式:
netstat [--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]] [--program|-p]
選項:
-t: tcp協議相關
-u: udp協議相關
-w: raw socket相關
-l: 處於監聽狀態
-a: 所有狀態
-n: 以數字顯示IP和埠;
-e:擴充套件格式
-p: 顯示相關程序及PID
常用組合:
-tan, -uan, -tnl, -unl, -tunlp
例項1:以數字顯示tcp協議的ip和埠
例項2:以數字顯示tcp、udp協議的ip和埠以及相關程序及PID
4、vmstat – 虛擬記憶體統計資訊
vmstat是虛擬記憶體(virtual memory statistics)的縮寫,作為一個記憶體監控工具,它收集和顯示關於記憶體,程序,終端和分頁和I/O阻塞的概括資訊。作為一個開源程式,它可以在大部分Linux發行版本
中找到,包括Solaris和FreeBSD。它用來診斷大部分的記憶體效能問題和其他相關問題。
簡介:
vmstat - Report virtual memory statistics
格式:
vmstat [options] [delay [count]]
例項1:
procs | r:等待執行的程序的個數 b:處於不可中斷睡眠態的程序個數;(被阻塞的佇列的長度); |
memory | swpd: 交換記憶體的使用總量 free:空閒實體記憶體總量 |
buffer:用於buffer的記憶體總量 cache:用於cache的記憶體總量 | |
swap | si:資料進入swap中的資料速率(kb/s)so:資料離開swap中的資料速率(kb/s) |
io | bi:從塊裝置讀入資料到系統的速率;(kb/s) bo: 儲存資料至塊裝置的速率 |
system | in: interrupts, 中斷速率 cs: context switch, 程序切換速率 |
cpu | us:使用者空間 sy:核心空間 id:空閒 |
wa:等待IO時間 st:虛擬機器偷走的時間 |
5、Htop – 更加友好的top(需配置epel源安裝)
Htop基本上是一個top改善版本,它能夠以更加多彩的方式顯示更多的統計資訊,同時允許你採用不同的方式進行排序,它提供了一個使用者友好的介面。
簡介:
htop - interactive process viewer
格式:
htop [-dChusv]
選項:
-d #: 指定延遲時間;
-u UserName: 僅顯示指定使用者的程序;
-s COLOMN: 以指定欄位進行排序;
子命令:
s: 跟蹤選定程序的系統呼叫;
l: 顯示選定程序開啟的檔案列表;
a:將選定的程序繫結至某指定CPU核心;
t: 顯示程序樹
例項1:
6、ss – 網路管理的現代替代品
ss是iproute2包的一部分。iproute2是用來替代一整套標準的Unix網路工具元件,它曾經用來完成網路介面配置,路由表和管理ARP表任務。ss工具用來記錄套接字統計資訊,它可以顯示類似netstat一
樣的資訊,同時也能顯示更多TCP和狀態資訊。
簡介:
ss - another utility to investigate sockets
格式:
ss [options] [ FILTER ]
選項:
-t: tcp協議相關
-u: udp協議相關
-w: 裸套接字相關
-x:unix sock相關
-l: listen狀態的連線
-a: 所有
-n: 數字格式
-p: 相關的程式及PID
-e: 擴充套件的資訊
-m:記憶體用量
-o:計時器資訊
常用組合:
-tan, -tanl, -tanlp, -uan
例項1:以數字格式顯示所有的tcp協議連結
例項2:以數字形式顯示所有的tcp、udp協議的連結以及埠
7、Glances – 是一個由 Python 編寫,使用 psutil 庫來從系統抓取資訊的基於 curses 開發的跨平臺命令列系統監視工具。 通過 Glances,我們可以監視 CPU,平均負載,記憶體,網路流量,磁碟 I/O,
其他處理器 和 檔案系統 空間的利用情況。(需配epel源安裝)
簡介:
glances - A cross-platform curses-based monitoring tool
格式:
glances [-bdehmnrsvyz1] [-B bind] [-c server] [-C conffile] [-p port] [-P password] [--password] [-t refresh] [-f file] [-o output]
選項:
-b: 以Byte為單位顯示網絡卡資料速率;
-d: 關閉磁碟I/O模組;
-f /path/to/somefile: 設定輸入檔案位置;
-o {HTML|CSV}:輸出格式;
-m: 禁用mount模組
-n: 禁用網路模組
-t #: 延遲時間間隔
-1:每個CPU的相關資料單獨顯示;
內建命令:
a Sort processes automatically l Show/hide logs
c Sort processes by CPU% b Bytes or bits for network I/O
m Sort processes by MEM% w Delete warning logs
p Sort processes by name x Delete warning and critical logs
i Sort processes by I/O rate 1 Global CPU or per-CPU stats
d Show/hide disk I/O stats h Show/hide this help screen
f Show/hide file system stats t View network I/O as combination
n Show/hide network stats u View cumulative network I/O
s Show/hide sensors stats q Quit (Esc and Ctrl-C also work)
例項1:直接輸入"glances"命令,可以監視 CPU,平均負載,記憶體,網路流量,磁碟 I/O,其他處理器 和 檔案系統 空間的利用情況
例項2:C/S模式下執行glances命令
服務模式:"glances -s -B IPADDR" (IPADDR: 指明監聽於本機哪個地址)(Tips:需關掉防火牆或者開啟相應的埠)
客戶模式:"glances -c IPADDR" (IPADDR:要連入的伺服器端地址)