如何在Linux下監(jiān)控磁盤IO?
譯文【51CTO.com快譯】iostat用于獲取存儲(chǔ)設(shè)備和分區(qū)的I/O統(tǒng)計(jì)信息。iostat是sysstat軟件包的一部分。使用iostat,你可以監(jiān)控存儲(chǔ)設(shè)備(比如硬驅(qū)和SSD)以及分區(qū)(磁盤分區(qū))的讀/寫速度。本文將介紹如何在Linux下使用iostat監(jiān)控磁盤I/O。
在Ubuntu/Debian上安裝iostat:
默認(rèn)情況下,iostat命令在Ubuntu/Debian上不可用。但你可以使用APT軟件包管理器,從Ubuntu/Debian的官方軟件包存儲(chǔ)庫(kù)輕松安裝sysstat包。正如前面提到,iostat是sysstat軟件包的一部分。
先使用以下命令更新APT軟件包存儲(chǔ)庫(kù)的緩存:
- $ sudo apt update
現(xiàn)在使用以下命令安裝sysstat軟件包:
- $ sudo apt install sysstat
sysstat軟件包應(yīng)已安裝。
在CentOS 7上安裝iostat:
默認(rèn)情況下,iostat在CentOS 7上不可用。但sysstat軟件包可在CentOS 7的官方軟件包存儲(chǔ)庫(kù)中找到。因此,你可以用YUM軟件包管理器輕松安裝它。
想使用YUM軟件包管理器安裝sysstat,運(yùn)行以下命令:
- $ sudo yum install sysstat
現(xiàn)在,按y然后按回車鍵繼續(xù)。
現(xiàn)在,按y然后按回車鍵,接受CentOS 7軟件包存儲(chǔ)庫(kù)的GPG密鑰。
sysstat應(yīng)已安裝。
在Arch Linux上安裝iostat:
默認(rèn)情況下,iostat在Arch Linux上不可用。但sysstat軟件包可在Arch Linux的官方軟件包存儲(chǔ)庫(kù)中找到。因此,你可以用Pacman軟件包管理器輕松安裝它。
想安裝sysstat,運(yùn)行以下命令:
- $ sudo pacman -Sy sysstat
現(xiàn)在,按y然后按回車鍵繼續(xù)。
sysstat應(yīng)已安裝。
iostat的基本用法:
你可以使用iostat監(jiān)控計(jì)算機(jī)的所有存儲(chǔ)設(shè)備和磁盤分區(qū),如下所示:
- $ sudo iostat
如你所見(jiàn),iostat生成了當(dāng)時(shí)每個(gè)存儲(chǔ)設(shè)備和分區(qū)的讀/寫速度(以kB/s為單位)和總的讀/寫內(nèi)容(以kB為單位)。
在上述命令中,iostat僅輸出你運(yùn)行iostat的實(shí)例的統(tǒng)計(jì)信息。這適用于外殼腳本和自動(dòng)化。
如果你想查看實(shí)時(shí)統(tǒng)計(jì)信息,可以要求iostat每隔n秒(比如說(shuō)2秒)更新報(bào)告,如下所示:
- $ sudo iostat -d 2
如你所見(jiàn),iostat每隔2秒更新一次報(bào)告。
使用iostat監(jiān)控特定的存儲(chǔ)設(shè)備或分區(qū):
默認(rèn)情況下,iostat監(jiān)控計(jì)算機(jī)的所有存儲(chǔ)設(shè)備。但你也可以使用iostat監(jiān)控特定的存儲(chǔ)設(shè)備(比如sda和sdb等)或特定的分區(qū)(比如sda1、sda2和sdb4等)。
比如,若想只監(jiān)控存儲(chǔ)設(shè)備sda,按以下方式運(yùn)行iostat:
- $ sudo iostat sda
或
- $ sudo iostat -d 2 sda
如你所見(jiàn),僅監(jiān)控存儲(chǔ)設(shè)備sda。
你還可以使用iostat監(jiān)控多個(gè)存儲(chǔ)設(shè)備。
比如想監(jiān)控存儲(chǔ)設(shè)備sda和sdb,按以下方式運(yùn)行iostat:
- $ sudo iostat sda sdb
或
- $ sudo iostat -d 2 sda sdb
如果你想監(jiān)控特定分區(qū),還可以這么做。
比如假設(shè)你想監(jiān)控分區(qū)sda1和sda2,按以下方式運(yùn)行iostat:
- $ sudo iostat sda1 sda2
或
- $ sudo iostat -d 2 sda1 sda2
如你所見(jiàn),只監(jiān)控分區(qū)sda1和sda2。
使用iostat監(jiān)控LVM設(shè)備:
你可以使用iostat的-N選項(xiàng)監(jiān)控計(jì)算機(jī)的LVM設(shè)備。
想監(jiān)控Linux機(jī)器的LVM設(shè)備,按以下方式運(yùn)行iostat:
- $ sudo iostat -N -d 2
你還可以監(jiān)控特定的LVM邏輯卷。
比如想監(jiān)控LVM邏輯卷centos-root,按以下方式運(yùn)行iostat:
- $ sudo iostat -N -d 2 centos-root
更改iostat的單位:
默認(rèn)情況下,iostat以千字節(jié)(kB)為單位生成報(bào)告。但你可以使用一些選項(xiàng)更改單位。
比如說(shuō)將單位改成兆字節(jié)(MB),使用iostat的-m選項(xiàng)。
還可以使用iostat的-h選項(xiàng)將單位改成人類可讀。人類可讀格式可根據(jù)可用數(shù)據(jù),自動(dòng)選擇合適的單位。
想把單位改成兆字節(jié),按以下方式運(yùn)行iostat:
- $ sudo iostat -m -d 2 sda
想把單位改成人類可讀格式,按以下方式運(yùn)行iostat:
- $ sudo iostat -h -d 2 sda
我拷貝文件,你可以看到,現(xiàn)在以兆字節(jié)(MB)為單位。
一旦文件拷貝結(jié)束,它立即變成千字節(jié)(kB)。
iostat的擴(kuò)展顯示:
如果需要,可以用iostat顯示有關(guān)磁盤I/O的更多信息。為此,使用iostat的-x選項(xiàng)。
比如說(shuō),想顯示有關(guān)磁盤I/O的擴(kuò)展信息,按以下方式運(yùn)行iostat:
- $ sudo iostat -x -d 2 sda
你可以在iostat的參考手冊(cè)頁(yè)中找到每個(gè)字段(rrqm/s和%wrqm等)的含義。
獲得幫助:
如果你需要有關(guān)iostat支持的每個(gè)選項(xiàng)的更多信息以及iostat的每個(gè)字段的含義,建議查看iostat的參考手冊(cè)頁(yè)。
你可以使用以下命令查看iostat的參考手冊(cè)頁(yè):
- $ man iostat
這就是你在Linux中使用iostat的方式。感謝閱讀本文。
原文標(biāo)題:How to Monitor Disk IO in Linux,作者:Shahriar Shovon
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】