w命令,vmstat命令、top命令

w命令

在運維工做中,w命令是一個最經常使用的命令之一,它能夠查看系統當前的負載狀況數據庫

[root@localhost ~]# w
 22:46:57 up 4 min,  1 user,  load average: 0.02, 0.08, 0.05
USER     TTY        LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0     22:46    1.00s  0.07s  0.02s w

該命令隨簡單,可是顯示出來的內容卻頗有用;緩存

  • 第一行顯示的內容爲:1,系統時間 2,系統運行時間 3,登陸用戶數量 4,平均負載 (三個數值,第一個是1分鐘內的平均負載,第二個是5分鐘內的平均負載 ,第三個是15分鐘內的平均負載)
  • 第二行的內容是下面行的說明;1,登陸用戶。2,登陸終端。3,登陸時間點。 這裏面比較重要的是第一行的load average 的三個數值中的第一個,通常狀況下該值越大說明CPU負載越大,只要不超過CPU數量就不要緊,查看CPU數量可使用cat /proc/cpuinfo 來實現 ,經過查看最後一段信息的processor ,若是是3 ,則爲4個。(這裏的個數說的不是物理CPU個數,好比機器裏面有兩個四核CPU,則這個數量就是8)

vmstat 監控系統狀態

[root@localhost ~]# 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 3565444    692  99364    0    0    22     2   23   27  0  0 99  0  0

使用w命令查看的是系統總體上的負載,沒法判斷具體是哪些硬件負載壓力過大,這就用到了vmstat命令,vmstat顯示的內容一共分爲6部分,運維

  • procs 顯示進程的相關信息ssh

  • r(run):表示運行或等待CPU時間片的進程數。該數值若是長期大於CPU核數就意味着CPU不夠用了。ui

  • b(block):表示等待資源的進程數,這裏的資源指的是I/O、內存等。好比說有個數據CPU很快處理完了,可是硬盤在頻繁的讀寫當中,該數據等待寫入硬盤時,這個進程就是b的狀態。該數據長時間大於1就須要找找問題了。code

  • memory 顯示內存的相關信息進程

  • swpd:表示切換到交換分區中的內存數量,單位爲KB。內存

  • free:表示當前空閒的內存大小。單位KB資源

  • fuff:表示(即將寫入磁盤的)緩衝大小,單位KBio

  • cache:表示(從磁盤中讀取的)緩存大小,單位KB

  • swap 顯示內存的交換狀況

  • si:表示由交換分區寫內存的數據量,單位KB

  • so:表示由內存寫入交換分區的數據量,

  • io顯示磁盤的使用狀況

  • bi:表示從塊設備讀取數據的量(讀磁盤)

  • bo:表示從塊設備寫入數據的量(寫磁盤)

  • system顯示採集間隔內發生的中斷次數

  • in:表示在某一時間間隔內觀測到的每秒設備的中斷次數

  • cs:表示每秒產生的上下文切換次數

  • cpu顯示CPU的使用狀態

  • us:顯示用戶下所花費CPU的時間百分比

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

  • id:表示CPU處於空閒狀態的時間百分比

  • wa:表示I/O等待所佔用的CPU時間百分比

  • st:表示被偷走的CPU所佔的百分比(通常爲0,不用關注)

  • vmstat 2 10意思是每兩秒輸出一次狀態,輸出10次。

top命令

top命令顯示進程所佔的系統資源

[root@localhost ~]# top
top - 23:35:14 up 52 min,  2 users,  load average: 0.00, 0.01, 0.05
Tasks: 360 total,   1 running, 359 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.1 sy,  0.0 ni, 99.8 id,  0.0 wa,  0.0 hi,  0.1 si,  0.0 st
KiB Mem:   3869044 total,   304728 used,  3564316 free,      692 buffers
KiB Swap:  2047996 total,        0 used,  2047996 free.    99664 cached Mem

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                                                 
  2346 root      20   0  133684   4924   3748 S   0.3  0.1   0:00.40 sshd                                                                                                                    
  2433 root      20   0  123880   1868   1184 R   0.3  0.0   0:00.08 top                                                                                                                     
     1 root      20   0   49976   6456   3740 S   0.0  0.2   0:03.34 systemd                                                                                                                 
     2 root      20   0       0      0      0 S   0.0  0.0   0:00.03 kthreadd

top命令執行的結果是動態輸出的,它的特色是把佔用系統資源最高的進程放到前面。

  • RES這一項是進程所佔內存大小
  • %mem爲使用內存大小百分比
  • top -bn1能夠一次性輸出全部信息,可是它是靜態的。

sar命令監控系統狀態

sar命令很強大,能夠監控幾乎全部資源的狀態,好比平均負載,網卡流量,磁盤狀態,內存使用等。它能夠輸出歷史信息,能夠截取某個時間段的系統狀態信息。若是沒有安裝該名利,可使用` yum install -y sysstat 安裝 。初次運行會報錯,是由於還沒生成相應的數據庫文件。

  • sar -n DEV 該命令能把當天就的網卡信息打印出來,每隔十分鐘記錄一次。
  • sar -q 查看歷史負載

nload 查看網卡流量

使用yum install -y epel-release ; yum install -y nload nload這個包在擴展源裏面,須要先安裝擴展源。 執行這個命令能夠很直觀的查看當前網卡的流量狀況。

相關文章
相關標籤/搜索