歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux技術

Linux查看磁盤io開銷的幾種方法

怎樣才能快速的定位到並發高是由於磁盤io開銷大呢?可以通過三種方式:

  第一種:用 top 命令 中的cpu 信息觀察
  Top可以看到的cpu信息有:

復制代碼代碼如下:
  Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombie
  Cpu(s): 0.3% us, 1.0% sy, 0.0% ni, 98.7% id, 0.0% wa, 0.0% hi, 0.0% si

  具體的解釋如下:
  Tasks: 29 total 進程總數
  1 running 正在運行的進程數
  28 sleeping 睡眠的進程數
  0 stopped 停止的進程數
  0 zombie 僵屍進程數
  Cpu(s):
  0.3% us 用戶空間占用CPU百分比
  1.0% sy 內核空間占用CPU百分比
  0.0% ni 用戶進程空間內改變過優先級的進程占用CPU百分比
  98.7% id 空閒CPU百分比
  0.0% wa 等待輸入輸出的CPU時間百分比
  0.0% hi
  0.0% si
  0.0% wa 的百分比可以大致的體現出當前的磁盤io請求是否頻繁。如果 wa的數量比較大,說明等待輸入輸出的的io比較多。

  第二種:用vmstat

  vmstat 命令報告關於線程、虛擬內存、磁盤、陷阱和 CPU 活動的統計信息。由 vmstat 命令生成的報告可以用於平衡系統負載活動。系統范圍內的這些統計信息(所有的處理器中)都計算出以百分比表示的平均值,或者計算其總和。
  輸入命令:

復制代碼代碼如下:
  vmstat 2 5

  如果發現等待的進程和處在非中斷睡眠狀態的進程數非常多,並且發送到塊設備的塊數和從塊設備接收到的塊數非常大,那就說明磁盤io比較多。
  vmstat參數解釋:

  Procs
  r: 等待運行的進程數 b: 處在非中斷睡眠狀態的進程數 w: 被交換出去的可運行的進程數。此數由 linux 計算得出,但 linux 並不耗盡交換空間
  Memory
  swpd: 虛擬內存使用情況,單位:KB
  free: 空閒的內存,單位KB
  buff: 被用來做為緩存的內存數,單位:KB
  Swap
  si: 從磁盤交換到內存的交換頁數量,單位:KB/秒
  so: 從內存交換到磁盤的交換頁數量,單位:KB/秒
  IO
  bi: 發送到塊設備的塊數,單位:塊/秒
  bo: 從塊設備接收到的塊數,單位:塊/秒
  System
  in: 每秒的中斷數,包括時鐘中斷
  cs: 每秒的環境(上下文)切換次數
  CPU
  按 CPU 的總使用百分比來顯示
  us: CPU 使用時間
  sy: CPU 系統使用時間
  id: 閒置時間
  准測
  更多vmstat使用信息

  第三種:用iostat

  安裝:
  Iostat 是 sysstat 工具集的一個工具,需要安裝。
  Centos的安裝方式是:

復制代碼代碼如下:
  yum install sysstat

  Ubuntu的安裝方式是:

復制代碼代碼如下:
  aptitude install sysstat

  使用:
  iostat -dx 顯示磁盤擴展信息
  root@fileapp:~# iostat -dx
  r/s 和 w/s 分別是每秒的讀操作和寫操作,而rKB/s 和wKB/s 列以每秒千字節為單位顯示了讀和寫的數據量
  如果這兩對數據值都很高的話說明磁盤io操作是很頻繁。
 

Copyright © Linux教程網 All Rights Reserved