第六章 性能工具:磁盤I/O

6.1 磁盤I/O介紹

一般來(lái)說(shuō),Linux磁盤的每個(gè)分區(qū)要么包含一個(gè)文件系統(tǒng),要么包含一個(gè)交換分區(qū)。這些分區(qū)被掛載到Linux根文件系統(tǒng),該系統(tǒng)由/etc/fstab指定。這些被掛載的文件系統(tǒng)包含了應(yīng)用程序要讀寫的文件。

當(dāng)一個(gè)應(yīng)用程序進(jìn)行讀寫時(shí),Linux內(nèi)核可以在其高速緩存或者緩沖區(qū)中保存文件的副本,并且可以在不訪問(wèn)磁盤的情況下返回被請(qǐng)求的信息。但是,如果Linux內(nèi)核沒(méi)有在內(nèi)存中保存數(shù)據(jù)副本,那它就向磁盤I/O隊(duì)列添加一個(gè)請(qǐng)求。若Linux內(nèi)核注意到多個(gè)請(qǐng)求都指向磁盤內(nèi)相鄰的區(qū)域,它會(huì)把它們合并為一個(gè)大的請(qǐng)求。這種合并能消除第二次請(qǐng)求的尋道時(shí)間,以此提高磁盤的整體性能。當(dāng)請(qǐng)求被放入磁盤隊(duì)列,而磁盤當(dāng)前不忙時(shí),它就開(kāi)始為I/O請(qǐng)求服務(wù)。如果磁盤正忙,則請(qǐng)求就在隊(duì)列中等待,直到該設(shè)備可用,請(qǐng)求將被服務(wù)。

6.2 磁盤I/O性能工具

6.2.1 vmstat

語(yǔ)法:

vmstat [-D] [-d] [-p partition] [interval count]

vmstat選項(xiàng)說(shuō)明

選項(xiàng) 說(shuō)明
-D 顯示Linux I/O子系統(tǒng)的統(tǒng)計(jì)信息,顯示的是系統(tǒng)啟動(dòng)以來(lái)的總信息
-d 按每interval一個(gè)樣本的速率顯示單個(gè)磁盤的統(tǒng)計(jì)數(shù)據(jù),顯示的是系統(tǒng)啟動(dòng)以來(lái)的總信息。
-p partition 按照每interval一個(gè)采樣的速率顯示給定分區(qū)性能統(tǒng)計(jì)數(shù)據(jù),顯示的是系統(tǒng)啟動(dòng)以來(lái)的總信息。
interval 采樣之間的頻率
count 所取的樣本總數(shù)

vmstat默認(rèn)顯示的信息:

vmstat –D 顯示的信息

部分統(tǒng)計(jì)信息說(shuō)明

輸出 說(shuō)明
disks 系統(tǒng)中磁盤的總數(shù)
partitions 系統(tǒng)中分區(qū)的總數(shù)
total reads 讀請(qǐng)求的總數(shù)
merged reads 為了提升性能而被合并的不同讀請(qǐng)求的數(shù)量,這些讀請(qǐng)求訪問(wèn)的是磁盤上的相鄰位置。
writes 寫請(qǐng)求的總數(shù)
inprogress IO 當(dāng)前正在處理的I/O總數(shù)

vmstat –d部分統(tǒng)計(jì)信息說(shuō)明

輸出 說(shuō)明
reads:total 讀請(qǐng)求的總數(shù)
reads:merged 為了提升性能而被合并的不同讀請(qǐng)求的數(shù)量
reads:sectors 從磁盤讀取的扇區(qū)的總數(shù)
ms 磁盤讀所花費(fèi)的時(shí)間

vmstat –d 顯示的信息:

image

6.2.2 iostat

與vmstat相似,但它是一個(gè)專門用于顯示磁盤I/O子系統(tǒng)統(tǒng)計(jì)信息的工具。iostat提供的信息細(xì)化到每個(gè)設(shè)備和每個(gè)分區(qū)從特定磁盤讀寫了多少個(gè)塊。此外,iostat還可以提供大量的信息來(lái)顯示磁盤是如何被利用的,以及Linux花費(fèi)了多長(zhǎng)時(shí)間來(lái)等待將請(qǐng)求提交到磁盤。

iostat命令行選項(xiàng)

選項(xiàng) 說(shuō)明
-d 只顯示磁盤I/O的統(tǒng)計(jì)信息,而不是默認(rèn)信息。
-k 按KB顯示統(tǒng)計(jì)數(shù)據(jù),而不是按塊顯示
-x 顯示拓展性能I/O統(tǒng)計(jì)信息
device 若指定設(shè)備,則iostat只顯示該設(shè)備的信息

iostat設(shè)備統(tǒng)計(jì)信息

輸出 說(shuō)明
tps 每秒傳輸次數(shù),該項(xiàng)為每秒對(duì)設(shè)備/分區(qū)讀寫請(qǐng)求的次數(shù)
Blk_read/s 每秒讀取磁盤塊的速率
Blk_wrtn/s 每秒寫入磁盤塊的速率
Blk_read 在時(shí)間間隔內(nèi)讀取塊的總數(shù)量
Blk_wrtn 在時(shí)間間隔內(nèi)寫入塊的總數(shù)量

iostat –d 顯示:

6.2.3 sar

6.2.4 lsof

lsof提供了一種方法來(lái)確定哪些進(jìn)程打開(kāi)了一個(gè)特定的文件,除了跟蹤單個(gè)文件的用戶外,lsof還可以顯示使用了特定目錄下的進(jìn)程。

語(yǔ)法

**lsof [-r   delay] [+D directory] [+d directory] [file]**

lsof命令選項(xiàng)說(shuō)明

選項(xiàng) 說(shuō)明
r delay 使得lsof每間隔delay秒輸出一次統(tǒng)計(jì)數(shù)據(jù)
D directory 使得lsof遞歸搜索給定目錄下的所有文件,并報(bào)告哪些進(jìn)程正在使用
d directory 使得lsof報(bào)告哪些進(jìn)程正在使用給定目錄下的文件

lsof顯示訪問(wèn)了/usr/bin下所有文件的進(jìn)程

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

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

  • 磁盤又是怎么工作的呢?又有哪些指標(biāo)可以用來(lái)衡量它的性能呢? 磁盤 磁盤是可以持久化存儲(chǔ)的設(shè)備,根據(jù)存儲(chǔ)介質(zhì)的不同,...
    taj3991閱讀 764評(píng)論 0 0
  • 一個(gè)基于 Linux 操作系統(tǒng)的服務(wù)器運(yùn)行的同時(shí),也會(huì)表征出各種各樣參數(shù)信息。通常來(lái)說(shuō)運(yùn)維人員、系統(tǒng)管理員會(huì)對(duì)這些...
    生活的探路者閱讀 516評(píng)論 0 7
  • 1 測(cè)試工具 2 指標(biāo) 使用率、飽和度、IOPS、吞吐量以及響應(yīng)時(shí)間等。這五個(gè)指標(biāo),是衡量磁盤性能的基本指標(biāo)使用率...
    Daisy小朋友閱讀 1,889評(píng)論 2 3
  • 見(jiàn)過(guò)世面的女子大抵是通透的,而通透的女子,世情上或多或少都是涼薄的,比如張愛(ài)玲。這樣的女子,如果你早早遇到,會(huì)因?yàn)?..
    whyclytie閱讀 608評(píng)論 2 7
  • 2000多年前,柏拉圖在他的著作理想國(guó)里,舉了一個(gè)對(duì)后世影響深遠(yuǎn)的例子。那就是洞穴寓言。講了一個(gè)。關(guān)于。被迫固定在...
    c90e18ad9f83閱讀 364評(píng)論 0 0

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