w/uptime查看系統負載
cat /proc/cpuinfo 查看cpu核數
vmstat 監控系統狀態
用法 vmstat 1html
查看當前系統負載數據庫
[root@jinkai01 ~]# w
17:18:20 up 2 days, 8:35, 1 user, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.111.1 16:41 4.00s 0.02s 0.00s w緩存
第1行從左至右顯示
的信息依次爲:當前系統時間、系統運行時間、登陸用戶數、平均負載
重點關注:
load average: 後面的3個數值
第1個數值表示1分鐘內系統的平均負載值。(值越到服務器的壓力越大,這個值只要不超過服務器的CPU數量就問題不大)
第2個數值表示5分鐘內系統的平均負載值。
第3個數值表示15分鐘內系統的平均負載值。服務器
查詢CPU的核數:
cat /proc/cpuinfo 查看CPU的詳細信息
processor:CPU的核數
grep -c 'processor' /proc/cpuinfo 查看有幾顆CPU(這裏的幾顆也是總核數)
grep -c 'physical id' /proc/cpuinfo:查看物理CPU的數量ide
[root@jinkai01 ~]# cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 58
model name : Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz
stepping : 9
microcode : 0x20
cpu MHz : 3192.760
cache size : 6144 KB
physical id : 0
siblings : 1工具
命令w查看的是系統總體上的負載,經過看那個數值能夠知道當前系統有沒有壓力。但它沒法判斷具體是哪裏(CPU、內存、磁盤等)有壓力,因此這就用到了vmstat。ui
[root@jinkai01 ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 736272 2108 126816 0 0 148 12 114 230 1 2 97 1 0code
--procs顯示進程的相關信息
r(run):表示運行或等待CPU時間片的進程數。你們不要誤認爲等待CPU時間片意味着這個進程沒有運行,實際上某一時刻1個CPU只能有一個進程佔用,其餘進程只能排着隊等着,此時這些排隊等待CPU資源的進程依然是運行狀態。該數值若是長期大於服務器CPU的個數,則說明CPU資源不夠用了。
b(block):表示等待資源的進程數,這個資源指的是I/O、內存等。舉個例子,當磁盤讀寫很是頻繁時,寫數據就會很是慢,此時CPU運算很快就結束了,但進程須要把計算的結果寫入磁盤,這樣進程的任務纔算完成,那此時這個進程只能慢慢地等待磁盤了,這樣這個進
程就是這個b狀態。該數值若是長時間大於1,則須要關注一下了。htm
--memory顯示內存的相關信息
swpd:表示切換到交換分區中的內存數量,單位爲KB。
free:表示當前空閒的內存數量,單位爲KB。
buff:表示(即將寫入磁盤的)緩衝大小,單位爲KB。
cache:表示(從磁盤中讀取的)緩存大小,單位爲KB。blog
--swap顯示內存的交換狀況。
si:表示由交換區寫入內存的數據量,單位爲KB。
so:表示由內存寫入交換區的數據量,單位爲KB。
--io顯示磁盤的使用狀況。
bi:表示從塊設備讀取數據的量(讀磁盤),單位爲KB。
bo:表示從塊設備寫入數據的量(寫磁盤),單位爲KB。
--system顯示採集間隔內發生的中斷次數。
in:表示在某一時間間隔內觀測到的每秒設備的中斷次數。
cs:表示每秒產生的上下文切換次數。
--cpu顯示CPU的使用狀態。
us:顯示用戶下所花費CPU的時間百分比。
sy:顯示系統花費CPU的時間百分比。
id:表示CPU處於空閒狀態的時間百分比。
wa:表示I/O等待所佔用CPU的時間百分比。
st:表示被偷走的CPU所佔百分比(通常都爲0
注意:磁盤io壓力很大 bi bo 數值會飆高
si和so兩列的數值比較高而且不斷變化時,說明內存不夠了
[root@jinkai01 ~]# vmstat 1
每隔一秒輸出一次,按CTRL+C中止
[root@jinkai01 ~]# vmstat 1 5
每隔一秒輸出一次,總共輸出5次中止
顯示進程所佔的系統資源
-n : 更新的次數,完成後將會退出 top
-b : 批次檔模式,搭配 "n" 參數一塊兒使用,能夠用來將 top 的結果輸出到檔案內
顯示進程信息
top
顯示完整命令
top -c
設置信息更新次數
top -n 2
表示更新兩次後終止更新顯示
設置信息更新時間
top -d 3
表示更新週期爲3秒
top -p 139
顯示進程號爲139的進程信息,CPU、內存佔用率等
top -bn1
靜態打印出系統所佔用的資源信息
[root@jinkai01 ~]# top 動態顯示系統所佔用的資源
top - 17:51:26 up 20 min, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 106 total, 1 running, 105 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 3.2 sy, 0.0 ni, 96.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 995924 total, 735708 free, 130884 used, 129332 buff/cache
KiB Swap: 4194300 total, 4194300 free, 0 used. 712168 avail MemPID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
參考連接:http://www.javashuo.com/article/p-fqgnidpj-bu.html
安裝:yum install -y sysstat
初次使用sar命令會報錯,那是由於sar工具尚未生成相應的數據庫文件它的數據庫文件在/var/log/sa/目錄下。
查看網卡流量 sar -n DEV
[root@jinkai01 ~]# sar -n DEV
Linux 3.10.0-957.el7.x86_64 (jinkai01) 2020年08月24日 _x8664 (2 CPU)17時31分13秒 LINUX RESTART
17時40分01秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
17時50分01秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
17時50分01秒 ens33 0.11 0.07 0.01 0.01 0.00 0.00 0.00
18時00分02秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
18時00分02秒 ens33 0.41 0.35 0.03 0.29 0.00 0.00 0.00
平均時間: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均時間: ens33 0.26 0.21 0.02 0.15 0.00 0.00 0.00
IFACE:這一列表示設備名稱
rxpck/s:這一列表示每秒進入收取的包的數量;
txpck/s:這一列表示每秒發送出去的包的數量;
rxkB/s:這一列表示每秒收取的數據量(單位爲KB);
txkB/s:這一列表示每秒發送的數據量;
-f選項查看某一天的網卡流量歷史,後面跟文件名。
sar -n DEV -f /var/log/sa/sa23 查看23號的流量歷史
sar -q 查看過去某個時間的負載情況
查看網卡流量
安裝:yum install -y epel-release;yum install -y nload
nload 默認分爲上下兩塊:
上半部分是:Incoming也就是進入網卡的流量,
下半部分是:Outgoing,也就是從這塊網卡出去的流量,
每部分都有當前流量(Curr),
平均流量(Avg),
最小流量(Min),
最大流量(Max),
總和流量(Ttl)
[root@jinkai01 ~]# nload #查看流量 (默認查看的是eth0)
[root@jinkai01 ~]# nload eth1 #指定設備,查看流量
Device ens33 [192.168.111.136] (1/2):
Incoming:Curr: 944.00 Bit/sAvg: 968.00 Bit/sMin: 936.00 Bit/sMax: 1.85 kBit/sTtl: 8.47 MByteOutgoing: Curr: 7.93 kBit/sAvg: 7.82 kBit/sMin: 3.64 kBit/sMax: 7.95 kBit/sTtl: 317.56 kByte