7月10日任務
10.1 使用w查看系統負載
10.2 vmstat命令
10.3 top命令
10.4 sar命令
10.5 nload命令
使用w查看系統負載
監控系統狀態
w / uptime(一般使用w看) 查看系統負載
第一行的顯示:
時間 系統啓動時長 多少用戶登陸 系統cpu負載: 一分鐘 五分鐘 十五分鐘的負載
第二行的顯示:
用戶 終端 來自 登陸時間 IDLE空閒了多久
如果遠程會顯示來自哪,如果本地則沒有,tty也會有變化 pts/0 pts/1表示的是遠程登錄 如果是本機登錄的話是 tty
最關鍵的是load average後的第一個數字,這個代表了一分鐘內的負載。這個值不大於當前cpu processor就說明夠用,否則就是說明當前有進程
未被分配到資源,處於等待的狀態。
如何查看cpu信息
cat /proc/cpuinfo 處理器0 表示有1顆
vmstat命令
當系統負載大於cpu的時候,就需要查看什麼原因導致了cpu不夠用,這個時候就需要vmstat命令了。
vmstat 1 表示每一秒顯示一次可以看出來變化 vmstat 1 5 表示每一秒顯示一次 只顯示五次
vmstat 1 10 顯示十次1秒
r ---run 表示有多少個進程處於運行的狀態。這裏說的運行的進程包括排隊中的進程
b--- block 被堵塞的進程,被硬盤或者網絡阻斷了。卡住了。
swpd ---交換分區,內存不夠的時候會放進去。不變化還好,如果這個值在變,說明內存不夠用了,內存和交換空間在不停交換數據。
si in有多少k的數據從swap進入到內存中 單位是k
so out有多少k的數據從內存到swap中 單位是k
bi 從磁盤裏出來進入到內存裏去,就是讀的數據量
bo 從內存寫到此盤裏,就是寫的數據。
us 表示用戶級別的 用戶佔用,通常表示用戶下的服務,這個數字不會超過100
sy 表示系統本身的進程服務等佔用cpu的百分比
id 是空閒 所以 us sy id wa相加應該是100
wa wait 跟b有點像, 有多少進程在等待cpu
所以可以通過vmstat判斷出來系統的問題是出在什麼地方
top命令
w----查系統負載
vmstat --查看系統的瓶頸
top可以用來查看具體進程,看是什麼進程導致的原因。 3秒顯示一次,動態顯示。
st steal 被偷走的cpu。如果服務器做了虛擬化,有一些子虛擬機有可能會偷走一部分的cpu
密切關注us的值,這個值始終太高的話對cpu非常不好。
大部分情況下,us很高的情況下,系統負載會很高的。
接下來是內存和交換分區的使用情況。第一行通常被關注的比較多。
默認按照cpu百分百排序,使用的多的在前面。如果想查看按照內存排序就按M 顯示
RES是物理內存大小,單位是KB,這個值除以總的內存物理大小就是後面的%MEM的值,也就是佔了物理內存的百分比。
按P回到按cpu大小%排序
按數字1 列出指定的cpu使用情況
按字母q退出top
top -c顯示具體的命令對應的進程
top -bn1將所有進程一次性列出來,寫shell腳本的時候可能會用到
另外注意pid,可以用kill pid 殺掉進程
sar命令
yum install sysstat
sar如果不加參數或者選項 會報錯
sar如果後面不加選項,會默認去調用系統裏的log歷史文件。sar每十分鐘系統狀態保存一遍到如下目錄。sa05,這個數字是根據當天的日期來寫的。5號就是sa05。最多保留一個月的歷史記錄數據。
在這個目錄下也會有一個sar05的文件,第二天生成。區別是sa05是二進制文件不能被cat,只能用-f來查看,但是sar05是可cat的。
sar -n DEV 1 10
顯示網卡的流量, 1秒一次,共10次。
解釋一下
rxpck 是receive的數據包 單位是個
txpck 是send的數據包
rxkb 是接受的數據量 單位是kb
txkb 是發出的數據量
eg
對網卡進行***,對網卡發出大量的數據包,很大的話網卡無法承擔造成網絡堵塞。
比如100M帶寬,實際是12.8m每秒傳輸的速度。所以要關注網卡流量是多少,正常情況下,包的數量幾千還算合適,上萬就不正常了。當然要藉助抓包工具來具體判斷。
如何查看歷史數據?sa文件只能通過這種方式打開
sar -n DEV -f /var/log/sa/文件名
sar -q
查看系統負載 更多是後面接 -f 以及具體某天的文件來進行查看當時的負載
sar -q -f /var/log/sa/sa05
sar -b 查看磁盤 主要看讀寫
nload命令
動態顯示網卡實時數據傳輸情況,左右鍵可以切換網卡
通常所說的帶寬指的都是出去的帶寬。要根據帶寬和出去的值的對比,而如果是遭受網卡***則進來的很大。
總結:
w 查看系統負載
vmstat 查看包括CPU內存虛擬磁盤交換分區以及io 系統進程等信息
top查看具體系統進程以及資源使用情況
sar是全面分析系統狀態的命令主要可以查看網卡狀態。
nload是更形象的查看網卡的狀態。