10.2 vmstat命令

監控系統狀態

  • vmstat 命令,監控系統狀態
  • 用法 vmstat 1
  • 關鍵的幾列:r ,b,swpd,si,so,bi,us,wa

vmstat命令

  • 用 w 命令查看系統的負載,當系統的負載值偏高時,mysql

    • 好比:數值大於CPU核數,那說明CPU不夠用了,就須要去思考是什麼緣由致使的?個人進程在幹什麼?有哪些任務在使用CPU呢?
  • vmstat 命令,能夠查看到CPU、內存、虛擬磁盤交換分區、I/O(就是你的磁盤)、系統進程等sql

    • 格式 : vmstat 1 表示每一秒動態顯示一次
      • 數字1表示:每一秒鐘動態顯示一次
      • 結束的時候,按快捷鍵ctrl+c 將它終止掉
    • 格式:vmstat 1 5 表示每一秒顯示一次,只需顯示五次
      • 而後它會自動結束
[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
 2  0      0 681860    692 164808    0    0     7     0   13   15  0  0 100  0  0
[root@localhost ~]# vmstat 1    //表示每一秒動態顯示一次
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 681860    692 164840    0    0     7     0   13   15  0  0 100  0  0
 0  0      0 681836    692 164840    0    0     0     0   19   22  0  0 100  0  0
 0  0      0 681836    692 164840    0    0     0     0   16   15  0  0 100  0  0
 0  0      0 681836    692 164840    0    0     0     0   14   12  0  0 100  0  0
^C
[root@localhost ~]# vmstat 1 5    //表示每一秒顯示一次,只需顯示五次
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 681836    692 164840    0    0     7     0   13   15  0  0 100  0  0
 0  0      0 681812    692 164840    0    0     0     0   19   23  0  0 100  0  0
 0  0      0 681812    692 164840    0    0     0     0   15   12  0  0 100  0  0
 0  0      0 681812    692 164840    0    0     0     0   14   15  0  0 100  0  0
 0  0      0 681812    692 164840    0    0     0     0   15   13  0  0 100  0  0
[root@localhost ~]#
  • 這裏的信息只須要關注這幾列,r列,b列,swpd列,si列,so列,bi列,bo列,us列,wa列操作系統

    • r 英文單詞(run),表示多少個進程處於 run 的狀態
      • 在排着隊,或者在進行中的進程,都屬於run 的狀態
    • b 英文單詞(block),表示進程被CPU之外的資源給佔用,處於一個等待的狀態
    • swpd 在磁盤分區的時候,有一個swap空間,當內存不夠使用時,能夠把內存裏的一部分數據臨時放到swap空間裏去
      • 當內存不夠的時候,會使用swap空間。
        • 當swpd數字不變時,則沒有關係;
        • 如果數字在持續的變化,那說明你的交換分區和你的磁盤在頻繁的交換數據——>這隻有一個結果,就是你的內存不夠用了
    • si,so 和swpd是有相關聯的,在swpd在頻繁的改變,那麼你的si,so確定也是會存在數字變動的
      • si 表示有多少個的數據,有多少個塊(單位:KB)——>有多少個KB的數據,從swap進入到內存中,這就是si
    • so 表示有多少個KB的數據,從內存中出來,就是 so
      • si和so的參照物就是——>內存
    • bi和bo是跟磁盤是有關係的
      • bi 就是從磁盤裏出來,進入到內存中去的,這個就是 讀 ,表示讀的數據量有多少
      • bo 就是寫入到磁盤裏去,這個就是 寫 ,表示寫的數據量有多少
        • 若 bi 和 bo 這兩個數值很大的話,就表示磁盤在頻繁的讀寫
        • 磁盤i/o相比較CPU、內存也好都是很慢的,有不少的數據在讀寫,會形成 b列增長,由於有不少進程在等待磁盤,這是一個必然的結果
      • 當 bi和bo 值 上 5千 的時候就須要注意了
    • us 表示用戶態的一些資源,佔用CPU的百分比
      • 好比,操做系統不可能只運行一個系統, 還會運行系統上的服務 mysql等,這就會佔用一部分cpu資源,就會體如今 us 這一部分
      • us的數字不會超過 100 ,由於一共就百分百,上面顯示的就是百分比
      • 當 us 的數字長時間大於50 ,就說明你的系統資源不夠了
    • sy 表示系統自己的一些進程,服務佔用的百分比
    • id 表示空閒
    • us + sy + id 值 約等於100%
    • wa 英文(wait),表示等待CPU的百分比,有多少個進程在等待CPU,若這一列很大,說明CPU不夠用—>和b列有點相似
  • 咱們能夠經過vmstat 命令,判斷出系統的瓶頸在哪裏,是CPU不夠,仍是內存不夠,仍是磁盤i/o太大,均可以斷定出來。code

相關文章
相關標籤/搜索