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:要連入的服務器端地址)