uptime :
用來快速查看系統平均負載,能夠打印系統總共運行了多長時間和系統的平均負載。uptime命令可以顯示的信息顯示依次爲:現在時間、系統已經運行了多長時間、目前有多少登陸用戶、系統在過去的1分鐘、5分鐘和15分鐘內的平均負載。
vmstate:
顯示虛擬內存狀態(“Viryual Memor Statics”),可以報告關於進程、內存、I/O等系統整體運行狀態。
語法:vmstat(選項)(參數)
vmstat 3
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 320 42188 167332 1534368 0 0 4 7 1 0 0 0 99 0 0
0 0 320 42188 167332 1534392 0 0 0 0 1002 39 0 0 100 0 0
- vmstat 3,3表示每隔3秒刷新一次。
procs :進程
- r: 運行隊列中進程數量,這個值也可以判斷是否需要增加CPU。(長期大於1)
- b(block): 表示由於IO等待而block的進程數量。
memory:內存
- swpd: 使用虛擬內存大小,如果swpd的值不爲0,但是SI,SO的值長期爲0,這種情況不會影響系統性能。
- free: 空閒物理內存大小。
- buff: 用作緩衝的內存大小。
- cache: 用作緩存的內存大小,如果cache的值大的時候,說明cache處的文件數多,如果頻繁訪問到的文件都能被cache處,那麼磁盤的讀IO bi會非常小。
swap
- si: 每秒從交換區寫到內存的大小,由磁盤調入內存。
- so: 每秒寫入交換區的內存大小,由內存調入磁盤。
注意:內存夠用的時候,這2個值都是0,如果這2個值長期大於0時,系統性能會受到影響,磁盤IO和CPU資源都會被消耗。
有些朋友看到空閒內存(free)很少的或接近於0時,就認爲內存不夠用了,不能光看這一點,還要結合si和so,
如果free很少,但是si和so也很少(大多時候是0),那麼不用擔心,系統性能這時不會受到影響的。
IO(現在的Linux版本塊的大小爲1kb)
- bi: 每秒讀取的塊數
- bo: 每秒寫入的塊數
注意:隨機磁盤讀寫的時候,這2個值越大(如超出1024k),能看到CPU在IO等待的值也會越大。
system(系統)
- in: 每秒中斷數,包括時鐘中斷。
- cs(context switchs): 每秒上下文切換數。
注意:上面2個值越大,會看到由內核消耗的CPU時間會越大。
CPU(以百分比表示)
- us: 用戶進程執行時間百分比(user time)
us的值比較高時,說明用戶進程消耗的CPU時間多,但是如果長期超50%的使用,那麼我們就該考慮優化程序算法或者進行加速。
- sy: 內核系統進程執行時間百分比(system time)
sy的值高時,說明系統內核消耗的CPU資源多,這並不是良性表現,我們應該檢查原因。
- wa: IO等待時間百分比
wa的值高時,說明IO等待比較嚴重,這可能由於磁盤大量作隨機訪問造成,也有可能磁盤出現瓶頸(塊操作)。
- id(Idle): 空閒時間百分比
free:
顯示當前系統未使用的和已使用的內存數目,還可以顯示被內核使用的內存緩衝區。
free -b/-k/-m : 以Byte爲單位顯示內存使用情況/ 以kb爲單位顯示內存使用情況 / 以mb爲單位顯示內存使用情況.
free -m
total used free shared buffers cached
Mem: 2016 1973 42 0 163 1497
-/+ buffers/cache: 312 1703
Swap: 4094 0 4094
- total:內存總數;
- used:已經使用的內存數;
- free:空閒的內存數;
- shared:當前已經廢棄不用;
- buffers Buffer:緩存內存數;
- cached Page:緩存內存數。
total=used+free
- (-buffers/cache) used內存數:第一部分Mem行中的 used – buffers – cached
- (+buffers/cache) free內存數: 第一部分Mem行中的 free + buffers + cached
可見-buffers/cache反映的是被程序實實在在吃掉的內存,而+buffers/cache反映的是可以挪用的內存總數。
iostat:
用於監視系統輸入輸出設備和CPU的使用情況。它的特點是彙報磁盤活動統計情況,同時也會彙報出CPU使用情況。同vmstat一樣,iostat也有一個弱點,就是它不能對某個進程進行深入分析,僅對系統的整體情況進行分析。
# iostat -x /vda
Linux 3.10.0-693.2.2.el7.x86_64 (iz2zec6q7af34l736i2uuvz) 05/22/2018 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.21 0.00 0.14 0.00 0.00 99.64
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
說明:第二行是系統信息和監測時間,第三行和第四行顯示CPU使用情況,後面爲I/O輸出的信息。
- Device :監測設備名稱。
- rrqm/s & wrqm/s:每秒需要讀取 & 寫入需求的數量。
- r/s & w/s :每秒實際讀取 & 寫入需求的數量。
- rsec/s & wsec/s : 每秒讀取 & 寫入區段的數量。
- rkB/s & wKB/s :每秒實際讀取 & 寫入的大小,單位爲KB。
- avgqu-sz:向設備發出的請求的平均數量。值大於 1 說明已經飽和了(雖說設備可以並行處理請求,尤其是由多個磁盤組成的虛擬設備。)
- await :以毫秒爲單位的 I/O 平均消耗時間。這是應用程序消耗的實際時間,因爲它包括了排隊時間和處理時間。比預期更大的平均時間可能意味着設備的飽和,或設備出了問題。
- svctm : I/O需求完成的平均時間。
- %util:設備利用率。這個值是一個顯示出該設備在工作時每秒處於忙碌狀態的百分比。若值大於 60%,通常表明性能不佳(可以從 await 中看出),雖然它取決於設備本身。值接近 100% 通常意味着已飽和。
mpstat:
主要用於多CPU環境下,它顯示各個可用CPU的狀態系你想。這些信息存放在/proc/stat文件中。在多CPUs系統裏,其不但能查看所有CPU的平均狀況信息,而且能夠查看特定CPU的信息。
語法:mpstat(選項)(參數)
選項:
-P:指定CPU編號。
參數:
間隔時間:每次報告的間隔時間(秒);
次數:顯示報告的次數。
netstat:
用來打印Linux中網絡系統的狀態信息,可讓你得知整個Linux系統的網絡情況。
參數:
-a或--all:顯示所有連線中的Socket;
-A<網絡類型>或--<網絡類型>:列出該網絡類型連線中的相關地址;
-c或--continuous:持續列出網絡狀態;
-C或--cache:顯示路由器配置的快取信息;
-e或--extend:顯示網絡其他相關信息;
-F或--fib:顯示FIB;
-g或--groups:顯示多重廣播功能羣組組員名單;
-h或--help:在線幫助;
-i或--interfaces:顯示網絡界面信息表單;
-l或--listening:顯示監控中的服務器的Socket;
-M或--masquerade:顯示僞裝的網絡連線;
-n或--numeric:直接使用ip地址,而不通過域名服務器;
-N或--netlink或--symbolic:顯示網絡硬件外圍設備的符號連接名稱;
-o或--timers:顯示計時器;
-p或--programs:顯示正在使用Socket的程序識別碼和程序名稱;
-r或--route:顯示Routing Table;
-s或--statistice:顯示網絡工作信息統計表;
-t或--tcp:顯示TCP傳輸協議的連線狀況;
-u或--udp:顯示UDP傳輸協議的連線狀況;
-v或--verbose:顯示指令執行過程;
-V或--version:顯示版本信息;
-w或--raw:顯示RAW傳輸協議的連線狀況;
-x或--unix:此參數的效果和指定"-A unix"參數相同;
--ip或--inet:此參數的效果和指定"-A inet"參數相同。
top:
可以實時動態地查看系統的整體運行情況,是一個綜合了多方信息監測系統性能和運行信息的實用工具。通過top命令所提供的互動式界面,用熱鍵可以管理。
# top
top - 15:34:34 up 107 days, 4:41, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 167 total, 1 running, 166 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.7 us, 0.3 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1016164 total, 72840 free, 498860 used, 444464 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 318488 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
19807 root 20 0 202884 20040 1632 S 0.7 2.0 115:00.97 python
32361 root 20 0 532304 15084 2136 S 0.3 1.5 85:54.58 docker-containe
1 root 20 0 125336 3336 1996 S 0.0 0.3 0:59.97 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.09 kthreadd
解釋:
top - 15:34:346[當前系統時間],
107 days[系統已經運行了16天],
1 user[個用戶當前登錄],
load average:0.00, 0.01, 0.05[系統負載,即任務隊列的平均長度]
Tasks: 167 total[總進程數],
1 running[正在運行的進程數],
166 sleeping[睡眠的進程數],
0 stopped[停止的進程數],
0 zombie[凍結進程數],
%Cpu(s) [cpu指標],
KiB Mem[物理內存總量,以kb爲單位]