1. 程式人生 > >10.1-10.5 w查看系統負載 vmstat , top, sar, nload

10.1-10.5 w查看系統負載 vmstat , top, sar, nload

日常運維 vmstat top sar noload

七周一次課(3月19日)
10.1 使用w查看系統負載
10.2 vmstat命令
10.3 top命令
10.4 sar命令
10.5 nload命令



10.1 使用w查看系統負載


介紹

技術分享圖片


W命令

#W

[root@centos7 sed]# w

14:22:44 up 4:29, 1 user, load average: 0.00, 0.01, 0.05

USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT

root pts/0 192.168.189.1 09:53 4.00s 0.59s 0.02s w


第一段內容分別是

系統時間,登錄時長,登錄用戶(登錄用戶信息在第二行),

第二段

登錄用戶信息,

TTY如果是網絡登錄,會用pts/0顯示 。如果是本機登錄,則會用tty1顯示。


load average: 0.00, 0.01, 0.05,此項是關鍵,系統負載。

負載三段數值0.00, 0.01, 0.05,對應的分別是1分鐘,5分鐘,15分鐘的負載值。

負載值的大小取決於CPU。數值表示單位時間段內使用CPU的活動的進程有多少個,是一個平均值。


查看cpu信息

[root@centos7 sed]# cat /proc/cpuinfo

技術分享圖片


負載值最理想的值是1(processor為0的情況下).

第一段負載值是最關鍵的,最能體現到系統負載情況。


LOGIN@ IDLE JCPU PCPU WHAT

root pts/0 192.168.189.1 09:53 4.00s 0.59s 0.02s w



10.2 vmstat命令


技術分享圖片


當負載值大於邏輯CPU核數,此時表示CPU不夠用了。


#vmstat 命令監控系統的狀態

[root@centos7 sed]# 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 0 739100 2076 140788 0 0 6 1 45 54 0 0 100 0 0


用法

#vmstat 1 動態顯示進程情況,每一秒輸出一次。直到按ctrl+c結束

#vmstat 1 5 動態顯示進程,每一秒顯示一次,只顯示5次,自動結束。


vmstat只需要關註


r run 表示有多少個進程處於run狀態,運行或等待CPU時間片的進程數。 假如系統有1個CPU,但是有10個進程想使用這個CPU,那麽10個當中只有一個進程能使用此CPU,其他進程都需要排隊,在排隊的進程就是出於run狀態了。所以r為2的意思是有2個進程在排隊。此過程會進行循環。


b block 此進程被CPU以外的資源(硬盤、網絡、內存、I/O)阻斷了。b值表示有多少個進程在等待。


swapd 當物理內存使用不足的情況話,系統會把一部分空間拿出來,臨時放到swap空間上去。

如果此數值不穩定,表示swap分區和內存在頻繁交換數據,這種情況就是內存不夠。

si 與swpd值有關聯。有多少kb的數據從swap寫入到內存中。i=in 進入到內存去。


so 與swpd值有關聯。有多少kb的數據從內存裏出來的。o=out 從內存裏出來的。


磁盤

bi 從磁盤讀取數據的量。進入到內存裏去。讀的數據量。


bo 從磁盤寫入數據的量。寫的數據量



us 顯示用戶下所花費CPU的時間百分比。數值一般不會超過100.長時間大於50,說明系統資源不夠。

sy 顯示系統花費CPU的時間百分比。

id IDLE,空閑。表示CPU處於空閑狀態的時間百分比。

us+sy+id+wa=100


wa 表示I/O等待所占用CPU的時間百分比。


總結:#vmstat命令可以判斷出系統的瓶頸在哪兒。CPU不夠、還是內存不夠,或者是磁盤不夠大。



10.3 top命令


技術分享圖片


#top

技術分享圖片


top - 16:39:16 up 6:46, 1 user, load average: 0.00, 0.01, 0.05

Tasks: 86 total, 1 running, 85 sleeping, 0 stopped, 0 zombie

%Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

KiB Mem : 1008152 total, 738396 free, 126572 used, 143184 buff/cache

KiB Swap: 2097148 total, 2097148 free, 0 used. 719984 avail Mem


介紹tasks

total 總共

running 相當於vmstat的r

sleeping 休眠,暫時休息的意思。

stopped 已停止

zombie 僵屍進程


關註點

us 60%以上會對CPU比較傷


物理內存使用情況

KiB Mem : 1008152 total, 738396 free, 126572 used, 143184 buff/cache

交換分區使用情況

KiB Swap: 2097148 total, 2097148 free, 0 used. 719984 avail Mem


用top重點查看的還是下面的進程使用系統資源的詳細狀況,其中需要%CPU、%MEM和COMMAND這幾項所代表的意義。RES這一項為進程所占的內存大小,而%MEM這一項為使用內存的百分比.

在top狀態下,按shift+m鍵可以按照內存使用大小排序,切換回CPU排序,按P。按數字1可以列出所有核CPU的使用狀態,按q鍵可以退出top。

默認情況下,是按%CPU大小排序,由高到底。

%CPU CPU使用率,

%MEM 指內存,

RES物理內存大小,單位k。在計算機計算容量時 系統往往不會精準至1024,往往都是以1000來計算。


q退出,

#top -c 可以查看具體命令,全局路徑,詳細

技術分享圖片

#top -bn1 靜態顯示所有頁面,適用於寫腳本。


#kill+pid 能殺死進程



top -bn1靜態快照

按數字1顯示所有CPU核心的資源使用

top -c 更加詳細的command顯示



10.4 sar命令


技術分享圖片


sar命令很強大,它可以監控系統幾乎所有資源的狀態,比如平均負載、網卡流量、磁盤狀態、內存使用等。與其他系統狀態監控工具不同,它可以打印歷史信息,可以顯示當天從零點開始到當前時刻的系統狀態信息。


安裝sar命令

# yum install -y sysstat


使用#sar命令 最好加選項


查看網卡流量

#sar -n DEV 1 5 一秒鐘輸出一次,一共輸出五次

[root@centos7 ~]# sar -n DEV 1 5

技術分享圖片

舉例

17時57分15秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s

17時57分16秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00

17時57分16秒 ens33 1.02 1.02 0.06 0.19 0.00 0.00 0.00


第一列 時間

第二列 IFACE 設備

第三列 rxpck/s,每秒進入收取的包的數量。r receive

第四列 txpck/s,每秒發送出去的包的數量。t transfor

第五 rxkB/s,每秒收取的數據量,單位kb

第六 txkB/s,每秒傳送的數據量,單位kb


關註

rxpck/s 如果大於10000,需要關註了,有可能被攻擊了。

rxkB/s 如果大於5000000,需要關註


指定文件查看 -f

技術分享圖片

/var/log/sa/sa19這文件的定義是根據文件生成的當天時間,例如在2018年3月19日生成的,則命名會以sa19命名。

/var/log/sa/下的文件 最多保留一個月。

!!!!其實還有一個文件是sar19,sa19與sar19區別在。

sa19是二進制文件,不可以#cat等查看命令加載查看它的信息,只能用#sar相關命令去加載它的數據。

sar19是可以直接#cat的。


#sar -q用法

[root@centos7 ~]# sar -q

Linux 3.10.0-693.el7.x86_64 (centos7.4-01) 2018年03月19日 _x86_64_ (1 CPU)


17時50分01秒 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked

18時00分01秒 1 104 0.00 0.01 0.05 0

18時10分01秒 2 104 0.01 0.02 0.05 0

18時20分01秒 1 104 0.00 0.01 0.05 0

18時30分01秒 1 105 0.00 0.01 0.05 0

平均時間: 1 104 0.00 0.01 0.05 0


#sar -q 有助於我們查看服務器過去某個時間的負載狀況。



10.5 nload命令


安裝nload

1.安裝之前需要安裝epel-release

2.yum install -y nload



#nload

技術分享圖片

技術分享圖片

Device ens33 [192.168.189.128] (1/2):

網卡名稱 ip地址 其中一個網卡


按右箭頭可以查看其他網卡的網絡流量。輸出結果分為兩部分,Incoming為進入網卡的流量,Outgoing為網卡出去的流量,我們關註的是Curr哪行數據,其單位也可以動態自動調整,非常人性化,按q退出。


10.1-10.5 w查看系統負載 vmstat , top, sar, nload