磁盤IO

磁盤為系統(tǒng)提供了最基本的持久化存儲。文件系統(tǒng)則在磁盤的基礎(chǔ)上,提供了一個用來管理文件的樹狀結(jié)構(gòu)。

  • 根據(jù)存儲介質(zhì)的不同,常見磁盤可以分為兩類:機械磁盤和固態(tài)磁盤。
  • 按照接口來分類,比如可以把硬盤分為 IDE(Integrated Drive Electronics)、SCSI(Small Computer System Interface) 、SAS(Serial Attached SCSI) 、SATA(Serial ATA) 、FC(Fibre Channel) 等。
  • 按照不同的使用方式,又可以把它們劃分為多種不同的架構(gòu)。最簡單的,就是直接作為獨立磁盤設(shè)備來使用;另一個比較常用的架構(gòu),是把多塊磁盤組合成一個邏輯磁盤,構(gòu)成冗余獨立磁盤陣列,也就是 RAID(Redundant Array of Independent Disks);最后一種架構(gòu),是把這些磁盤組合成一個網(wǎng)絡(luò)存儲集群,再通過 NFS、SMB、iSCSI 等網(wǎng)絡(luò)存儲協(xié)議,暴露給服務(wù)器使用。

指標查看

容量

$ df /dev/sda1 
Filesystem     1K-blocks    Used Available Use% Mounted on 
/dev/sda1       30308240 3167020  27124836  11% / 

磁盤IO

  1. 性能指標:
  • 使用率,是指磁盤處理 I/O 的時間百分比。過高的使用率(比如超過 80%),通常意味著磁盤 I/O 存在性能瓶頸。
  • 飽和度,是指磁盤處理 I/O 的繁忙程度。過高的飽和度,意味著磁盤存在嚴重的性能瓶頸。當飽和度為 100% 時,磁盤無法接受新的 I/O 請求。
  • IOPS(Input/Output Per Second),是指每秒的 I/O 請求數(shù)。
  • 吞吐量,是指每秒的 I/O 請求大小。
  • 響應(yīng)時間,是指 I/O 請求從發(fā)出到收到響應(yīng)的間隔時間。
  1. iostat
# -d -x表示顯示所有磁盤I/O的指標
$ iostat -d -x 1 
Device            r/s     w/s     rkB/s     wkB/s   rrqm/s   wrqm/s  %rrqm  %wrqm r_await w_await aqu-sz rareq-sz wareq-sz  svctm  %util 
loop0            0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00     0.00   0.00   0.00 
loop1            0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00     0.00   0.00   0.00 
sda              0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00     0.00   0.00   0.00 
sdb              0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00     0.00   0.00   0.00 
image.png

需要注意的是:

  • %util ,就是我們前面提到的磁盤 I/O 使用率;
  • r/s+ w/s ,就是 IOPS;
  • rkB/s+wkB/s ,就是吞吐量;
  • r_await+w_await ,就是響應(yīng)時間。

進程IO

可以使用 pidstat 或 iotop

  1. pidstat
$ pidstat -d 1 
13:39:51      UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s iodelay  Command 
13:39:52      102       916      0.00      4.00      0.00       0  rsyslogd
  • 用戶 ID(UID)和進程 ID(PID) 。
  • 每秒讀取的數(shù)據(jù)大?。╧B_rd/s) ,單位是 KB。
  • 每秒發(fā)出的寫請求數(shù)據(jù)大?。╧B_wr/s) ,單位是 KB。
  • 每秒取消的寫請求數(shù)據(jù)大?。╧B_ccwr/s) ,單位是 KB。
  • 塊 I/O 延遲(iodelay),包括等待同步塊 I/O 和換入塊 I/O 結(jié)束的時間,單位是時鐘周期。
  1. iotop
$ iotop
Total DISK READ :       0.00 B/s | Total DISK WRITE :       7.85 K/s 
Actual DISK READ:       0.00 B/s | Actual DISK WRITE:       0.00 B/s 
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND 
15055 be/3 root        0.00 B/s    7.85 K/s  0.00 %  0.00 % systemd-journald 

前兩行分別表示,進程的磁盤讀寫大小總數(shù)和磁盤真實的讀寫大小總數(shù)。因為緩存、緩沖區(qū)、I/O 合并等因素的影響,它們可能并不相等。
剩下的部分,則是從各個角度來分別表示進程的 I/O 情況,包括線程 ID、I/O 優(yōu)先級、每秒讀磁盤的大小、每秒寫磁盤的大小、換入和等待 I/O 的時鐘百分比等。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.iOSTAT iostat -d -x 1顯示所有磁盤IO的指標,1秒作為間隔 IOSTAT 指標解讀 重點注...
    白名琰閱讀 370評論 0 0
  • 磁盤又是怎么工作的呢?又有哪些指標可以用來衡量它的性能呢? 磁盤 磁盤是可以持久化存儲的設(shè)備,根據(jù)存儲介質(zhì)的不同,...
    taj3991閱讀 764評論 0 0
  • kafka集群搭建完成后,對集群進行壓測。這樣的話,就需要實時查看kafka集群機器的IO情況。那怎么辦呢?其實l...
    LearnBigData閱讀 4,076評論 0 0
  • iostat命令產(chǎn)生三類數(shù)據(jù)報表: cpu使用率、設(shè)備使用率、網(wǎng)絡(luò)文件系統(tǒng)使用。下面先看一下前面兩個數(shù)據(jù)指標的定義...
    beipiao閱讀 9,638評論 0 0
  • #refer:http://lovesoo.org/linux-sar-command-detailed.html...
    liuzx32閱讀 11,558評論 0 3

友情鏈接更多精彩內(nèi)容