一、top – 實時顯示系統(tǒng)運行狀態(tài)
top 命令的功能是用于實時顯示系統(tǒng)運行狀態(tài),包含處理器、內(nèi)存、服務(wù)、進程等重要資源信息。運維工程師們常常會把 top 命令比作是 “加強版的 windows 任務(wù)管理器”,因為除了能看到常規(guī)的服務(wù)進程信息以外,還能夠?qū)μ幚砥骱蛢?nèi)存的負(fù)載情況一目了然,實時感知系統(tǒng)全局的運行狀態(tài),非常適合作為接手服務(wù)器后執(zhí)行的第一條命令。
動態(tài)查看進程信息,并且可以查看到系統(tǒng)負(fù)載,內(nèi)存,CPU 等使用情況。
語法格式
top [參數(shù)]
常用參數(shù)
參數(shù) |
解析 |
-d <秒> |
改變顯示的更新速度 |
-c |
切換顯示模式,更詳細(xì)地顯示路徑及命令 |
-s |
安全模式,不允許交互式指令 |
-i |
不顯示任何閑置或僵死的行程 |
-n |
設(shè)定顯示的總次數(shù),完成后將會自動退出 |
-b |
批處理模式,不進行交互式顯示 |
參考實例
以默認(rèn)格式顯示系統(tǒng)運行信息:
[root@root ~]# top
top - 02:48:56 up 20 min, 1 user, load average: 0.00, 0.00, 0.04
Tasks: 432 total, 1 running, 431 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni, 99.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 s
MiB Mem : 1966.1 total, 172.1 free, 1339.3 used, 454.7 buff/cache
MiB Swap: 2048.0 total, 2033.5 free, 14.5 used. 443.4 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2848 root 20 0 177712 28820 7700 S 6.2 1.4 0:01.31 sssd_kcm
1 root 20 0 244748 14180 9052 S 0.0 0.7 0:01.10 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd
………………省略部分輸出信息………………
以默認(rèn)格式顯示系統(tǒng)運行信息,但提供完整的進程路徑及名稱:
[root@root ~]# top -c
以批處理模式顯示程序信息:
[root@root ~]# top -b
設(shè)定每隔 5 秒刷新一次信息:
[root@root ~]# top -c -d 5
設(shè)定總顯示次數(shù)為 3 回,隨后自動退出命令:
[root@root ~]# top -n 5
字段解析
- load average: 0.00, 0.01, 0.05
- 系統(tǒng) 1 分鐘,5 分鐘,15 分鐘平均負(fù)載
- %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
- us 用戶態(tài) CPU
- sy 內(nèi)核態(tài) CPU
- ni 優(yōu)先級
- id 空閑的 CPU
- wa 等待輸入輸出設(shè)備的 CPU
- hi 硬中斷
- si 軟中斷
- st 虛擬化占用 CPU 資源
- KiB Mem : 995896 total, 487280 free, 121580 used, 387036 buff/cache
- total 總內(nèi)存空間
- free 空閑內(nèi)存
- used 已使用內(nèi)存
- buff 寫緩沖 解決空間問題
- cache 讀緩存 解決速率問題
推薦使用
top
&&
top -c
二、htop – 互動的進程查看器
htop 是 linux 系統(tǒng)中的一個互動的進程查看器,一個文本模式的應(yīng)用程序 (在控制臺或者 X 終端中),需要 ncurses。htop 比較人性化。它可以讓用戶交互式操作,支持顏色主題,可橫向或縱向滾動瀏覽進程列表,并支持鼠標(biāo)操作。
htop 相比較 top 的優(yōu)勢可以橫向或縱向滾動瀏覽進程列表,以便看到所有的進程和完整的命令行、在啟動上比 top 更快、殺進程時不需要輸入進程號、支持鼠標(biāo)選中操作、top 已不再維護。
htop 相當(dāng)于 top 的升級版,監(jiān)控界面是彩色的。
語法格式
htop [參數(shù)]
常用參數(shù)
非交互式是直接輸入命令的時候加上參數(shù),而交互式是 htop 進入監(jiān)測后使用的。
非交互式參數(shù)
參數(shù) |
解析 |
-C |
使用單色配色方案 |
-d |
設(shè)置更新的延遲, 單位是 10 微秒 |
-s 用戶 |
縱列排序 |
-u 用戶 |
只顯示一個指定用戶的進程 |
-p 用戶 |
只顯示給用戶 |
-h |
打印此命令幫助 |
-v |
打印版本信息 |
交互式參數(shù)
參數(shù) |
解析 |
space |
標(biāo)記一個進程 |
U |
取消所有標(biāo)記 |
l |
顯示進程打來的文件 |
u |
顯示特定用戶 |
M |
按照內(nèi)存排序 |
P |
按照 CPU 排序 |
T |
按在線時長排序 |
直接輸入數(shù)字 |
查找對應(yīng)的 PID 進程 |
參考實例
啟動 htop:
[root@root ~]# htop
以單色模式啟動 htop:
[root@root ~]# htop -C
設(shè)置顯示更新的延遲為 3 秒:
[root@root ~]# htop -d 3
顯示一個給定的用戶的進程:
[root@root ~]# htop -u linuxcool_user
三、vmstat – 顯示虛擬內(nèi)存狀態(tài)
vmstat 命令的含義為顯示虛擬內(nèi)存狀態(tài)(“Virtual Memory Statistics”),但是它可以報告關(guān)于進程、內(nèi)存、I/O 等系統(tǒng)整體運行狀態(tài)。
語法格式
vmstat [參數(shù)]
&&
vmstat [參數(shù)] [時間間隔] [執(zhí)行次數(shù)]
常用參數(shù)
參數(shù) |
解析 |
-a |
顯示活動內(nèi)頁 |
-f |
顯示啟動后創(chuàng)建的進程總數(shù) |
-m |
顯示 slab 信息 |
-n |
頭信息僅顯示一次 |
-s |
以表格方式顯示事件計數(shù)器和內(nèi)存狀態(tài) |
-d |
報告磁盤狀態(tài) |
-p |
顯示指定的硬盤分區(qū)狀態(tài) |
-S |
輸出信息的單位 |
參考實例
顯示活動內(nèi)頁:
[root@root ~]# vmstat -a
顯示啟動后創(chuàng)建的進程總數(shù):
[root@root ~]# vmstat -f
顯示 slab 信息:
[root@root ~]# vmstat -m
頭信息僅顯示一次:
[root@root ~]# vmstat -n
以表格方式顯示事件計數(shù)器和內(nèi)存狀態(tài):
[root@root ~]# vmstat -s
顯示指定的硬盤分區(qū)狀態(tài):
[root@root ~]# vmstat -p /dev/sda1
指定狀態(tài)信息刷新的時間間隔為 1 秒:
[root@root ~]# vmstat 1
指定狀態(tài)信息刷新的時間間隔為 2 秒刷新 3 次:
[root@root ~]# vmstat 2 3
字段解析
[root@root ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 0 35896 445256 520 487496 271 2091 622 2119 129 127 1 1 97 0 0
1.procs
- r 表示等待執(zhí)行的任務(wù)數(shù),當(dāng)一段時間內(nèi)這個數(shù)值一直超過 CPU 數(shù)說明當(dāng)前系統(tǒng)出現(xiàn) CPU 瓶頸;
- b 表示等待 IO 的進程數(shù)量。
2.memory
- swpd 虛擬內(nèi)存已使用的大小,如果大于 0,表示你的機器物理內(nèi)存不足了,如果不是程序內(nèi)存泄露的原因,那么你該升級內(nèi)存了或者把耗內(nèi)存的任務(wù)遷移到其他機器;
- free 空閑的物理內(nèi)存的大小;
- buff Linux/Unix 系統(tǒng)是用來存儲,目錄里面有什么內(nèi)容,權(quán)限等的緩存;
- cache 直接用來記憶我們打開的文件, 給文件做緩沖。
3.swap
- si 每秒從磁盤讀入虛擬內(nèi)存的大小,如果這個值大于 0,表示物理內(nèi)存不夠用或者內(nèi)存泄露了,要查找耗內(nèi)存進程解決掉;
- so 每秒虛擬內(nèi)存寫入磁盤的大小,如果這個值大于 0,同上。
4.io
- bi 塊設(shè)備每秒接收的塊數(shù)量,這里的塊設(shè)備是指系統(tǒng)上所有的磁盤和其他塊設(shè)備,默認(rèn)塊大小是 1024byte;
- bo 塊設(shè)備每秒發(fā)送的塊數(shù)量,例如我們讀取文件,bo 就要大于 0。bi 和 bo 一般都要接近 0,不然就是 IO 過于頻繁,需要調(diào)整。
5.system
- in 每秒中斷數(shù),包括時鐘中斷;
- cs 表示每秒上下文切換;
- 這兩個值越大,會看到由內(nèi)核消耗的 cpu 時間會越多。
6.cpu
- us 用戶 CPU 時間;
- sy 系統(tǒng) CPU 時間,如果太高,表示系統(tǒng)調(diào)用時間長,例如是 IO 操作頻繁;
- id 空閑 CPU 時間,一般來說,id + us + sy = 100, 一般我認(rèn)為 id 是空閑 CPU 使用率,us 是用戶 CPU 使用率,sy 是系統(tǒng) CPU 使用率;
- wa 等待 IO CPU 時間;
- st 等待 IO CPU 時間。
四、dstat – 全能系統(tǒng)信息統(tǒng)計工具
dstat 命令是一個用來替換 vmstat、IOStat?.NETstat、nfsstat 和 ifstat 這些命令的工具,是一個全能系統(tǒng)信息統(tǒng)計工具。與 sysstat 相比,dstat 擁有一個彩色的界面,在手動觀察性能狀況時,數(shù)據(jù)比較顯眼容易觀察;而且 dstat 支持即時刷新,譬如輸入 dstat 3 即每三秒收集一次,但最新的數(shù)據(jù)都會每秒刷新顯示。和 sysstat 相同的是,dstat 也可以收集指定的性能資源,譬如 dstat -c 即顯示 CPU 的使用情況。
語法格式
dstat [參數(shù)]
常用參數(shù)
參數(shù) |
解析 |
-c |
顯示 CPU 系統(tǒng)占用,用戶占用,空閑,等待,中斷,軟件中斷等信息 |
-d |
顯示磁盤讀寫數(shù)據(jù)大小 |
-n |
顯示網(wǎng)絡(luò)狀態(tài) |
-l |
顯示系統(tǒng)負(fù)載情況 |
-m |
顯示內(nèi)存使用情況 |
-g |
顯示頁面使用情況 |
-p |
顯示進程狀態(tài) |
-s |
顯示交換分區(qū)使用情況 |
-r |
I/O 請求情況 |
-y |
系統(tǒng)狀態(tài) |
–ipc |
顯示 ipc 消息隊列,信號等信息 |
–socket |
用來顯示 tcp udp 端口狀態(tài) |
參考實例
分別顯示 cpu、disk、net、page、system 信息:
[root@root ~]# dstat
每三秒收集一次 cpu、disk、net、page、system 信息 :
[root@root ~]# dstat 3
顯示 CPU 系統(tǒng)占用,用戶占用,空閑,等待,中斷,軟件中斷等信息 :
[root@root ~]# dstat -c
顯示磁盤讀寫數(shù)據(jù)大小 :
[root@root ~]# dstat -d
顯示網(wǎng)絡(luò)狀態(tài):
[root@root ~]# dstat -n
五、glances – 高層次的多子系統(tǒng)概覽
Glances 是一個相對比較新的系統(tǒng)監(jiān)控工具,用 Python/ target=_blank class=infotextkey>Python 編寫的,使用 psutil 庫從系統(tǒng)獲取信息。可以用它來監(jiān)控 CPU、平均負(fù)載、內(nèi)存、網(wǎng)絡(luò)接口、磁盤 I/O,文件系統(tǒng)空間利用率、掛載的設(shè)備、所有活動進程以及消耗資源最多的進程。Glances 有很多有趣的選項。它的主要特性之一是可以在配置文件中設(shè)置閥值(careful 小心、warning 警告、critical 致命),然后它會用不同顏色顯示信息以表明系統(tǒng)的瓶頸。
語法格式
glances [參數(shù)]
常用參數(shù)
參數(shù) |
解析 |
-b |
顯示網(wǎng)絡(luò)連接速度 Byte/ 秒 |
-s |
設(shè)置 glances 運行模式為服務(wù)器 |
-B |
綁定服務(wù)器端 IP 地址或者主機名稱 |
-c |
連接 glances 服務(wù)器端 |
-t |
設(shè)置屏幕刷新的時間間隔,單位為秒,默認(rèn)值為 2 秒,數(shù)值許可范圍:1~32767 |
參考實例
192.168.10.2 主機啟動 glances 服務(wù):
[root@root ~]# glances -s -B 192.168.10.2 &
從另一臺主機查看 192.168.10.2 主機的系統(tǒng)負(fù)載狀態(tài):
[root@root ~]# glances -c 192.168.10.2
顯示網(wǎng)絡(luò)連接速度 Byte/ 秒:
[root@root ~]# glances -b
設(shè)置屏幕刷新的時間間隔為 6 秒:
[root@root ~]# glances -t 6
六、sar – 系統(tǒng)運行狀態(tài)統(tǒng)計
sar 命令是 Linux 下系統(tǒng)運行狀態(tài)統(tǒng)計工具,它將指定的操作系統(tǒng)狀態(tài)計、數(shù)器顯示到標(biāo)準(zhǔn)輸出設(shè)備。
sar(System Activity Reporter 系統(tǒng)活動情況報告)是目前 Linux 上最為全面的系統(tǒng)性能分析工具之一,可以從多方面對系統(tǒng)的活動進行報告,包括:文件的讀寫情況、系統(tǒng)調(diào)用的使用情況、磁盤 I/O、CPU 效率、內(nèi)存使用狀況、進程活動及 IPC 有關(guān)的活動等
語法格式
sar [ 選項 ] [ <時間間隔> [ <次數(shù)> ] ]
常用參數(shù)
參數(shù) |
解析 |
-A |
所有報告的總和 |
-R |
顯示內(nèi)存狀態(tài) |
-b |
顯示 I/O 和傳遞速率的統(tǒng)計信息 |
-B |
顯示換頁狀態(tài) |
-d |
輸出每一塊磁盤的使用信息 |
-e |
設(shè)置顯示報告的結(jié)束時間 |
-f |
從制定的文件讀取報告 |
-i |
設(shè)置狀態(tài)信息刷新的間隔時間 |
-P |
報告每個 CPU 的狀態(tài) |
-u |
輸出 cpu 使用情況和統(tǒng)計信息 |
-v |
顯示索引節(jié)點、文件和其他內(nèi)核表的狀態(tài) |
-w |
顯示交換分區(qū)的狀態(tài) |
-x |
顯示給定進程的裝 |
-r |
報告內(nèi)存利用率的統(tǒng)計信息 |
參考實例
使用 - R 參數(shù)顯示內(nèi)存信息:
[root@root ~]# sar -R
使用 - b 參數(shù)顯示 I/O 速率:
[root@root ~]# sar -b
使用 - u 參數(shù)顯示 CPU 利用率:
[root@root ~]# sar -u
使用 - d 參數(shù)查看每塊磁盤的使用信息
[root@root ~]# sar -d
使用 - i 參數(shù)和 - f 參數(shù)設(shè)置狀態(tài)信息 1 秒刷新一次并記錄 5 次
[root@root ~]# sar -i 1 -f 5