91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux磁盤(pán)IO詳細(xì)解析

馬哥Linux運(yùn)維 ? 來(lái)源:博客園人艱不拆_zmc ? 2024-08-05 15:49 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1、什么是磁盤(pán)

在講解磁盤(pán)IO前,先簡(jiǎn)單說(shuō)下什么是磁盤(pán)。磁盤(pán)是可以持久化存儲(chǔ)的設(shè)備,根據(jù)存儲(chǔ)介質(zhì)的不同,常見(jiàn)磁盤(pán)可以分為兩類:機(jī)械磁盤(pán)和固態(tài)磁盤(pán)。

1.1機(jī)械磁盤(pán)

第一類,機(jī)械磁盤(pán),也稱為硬盤(pán)驅(qū)動(dòng)器(Hard Disk Driver),通常縮寫(xiě)為 HDD。機(jī)械磁盤(pán)主要由盤(pán)片和讀寫(xiě)磁頭組成,數(shù)據(jù)就存儲(chǔ)在盤(pán)片的環(huán)狀磁道中。在讀寫(xiě)數(shù)據(jù)前,需要移動(dòng)讀寫(xiě)磁頭,定位到數(shù)據(jù)所在的磁道,然后才能訪問(wèn)數(shù)據(jù)。顯然,如果 I/O 請(qǐng)求剛好連續(xù),那就不需要磁道尋址,自然可以獲得最佳性能。這其實(shí)就是我們熟悉的,連續(xù) I/O 的工作原理。與之相對(duì)應(yīng)的,當(dāng)然就是隨機(jī) I/O,它需要不停地移動(dòng)磁頭,來(lái)定位數(shù)據(jù)位置,所以讀寫(xiě)速度就會(huì)比較慢。

1.2 固態(tài)磁盤(pán)

第二類,固態(tài)磁盤(pán)(Solid State Disk),通??s寫(xiě)為 SSD,由固態(tài)電子元器件組成。固態(tài)磁盤(pán)不需要磁道尋址,所以,不管是連續(xù) I/O,還是隨機(jī) I/O 的性能,都比機(jī)械磁盤(pán)要好得多。

1.3機(jī)械磁盤(pán)和固態(tài)磁盤(pán)對(duì)比

其實(shí),無(wú)論機(jī)械磁盤(pán),還是固態(tài)磁盤(pán),相同磁盤(pán)的隨機(jī) I/O 都要比連續(xù) I/O 慢很多,原因也很明顯。

對(duì)機(jī)械磁盤(pán)來(lái)說(shuō),剛剛提到過(guò)的,由于隨機(jī) I/O 需要更多的磁頭尋道和盤(pán)片旋轉(zhuǎn),它的性能自然要比連續(xù) I/O 慢。

而對(duì)固態(tài)磁盤(pán)來(lái)說(shuō),雖然它的隨機(jī)性能比機(jī)械硬盤(pán)好很多,但同樣存在“先擦除再寫(xiě)入”的限制。隨機(jī)讀寫(xiě)會(huì)導(dǎo)致大量的垃圾回收,所以相對(duì)應(yīng)的,隨機(jī) I/O 的性能比起連續(xù) I/O 來(lái),也還是差了很多。

此外,連續(xù) I/O 還可以通過(guò)預(yù)讀的方式,來(lái)減少 I/O 請(qǐng)求的次數(shù),這也是其性能優(yōu)異的一個(gè)原因。很多性能優(yōu)化的方案,也都會(huì)從這個(gè)角度出發(fā),來(lái)優(yōu)化 I/O 性能。

此外,機(jī)械磁盤(pán)和固態(tài)磁盤(pán)還分別有一個(gè)最小的讀寫(xiě)單位。

機(jī)械磁盤(pán)的最小讀寫(xiě)單位是扇區(qū),一般大小為 512 字節(jié)。

而固態(tài)磁盤(pán)的最小讀寫(xiě)單位是頁(yè),通常大小是 4KB、8KB 等。

如果每次都讀寫(xiě) 512 字節(jié)這么小的單位的話,效率很低。所以,Linux文件系統(tǒng)會(huì)把連續(xù)的扇區(qū)或頁(yè),組成邏輯塊,然后以邏輯塊作為最小單元來(lái)管理數(shù)據(jù)。常見(jiàn)的邏輯塊的大小是 4KB,也就是說(shuō),連續(xù) 8 個(gè)扇區(qū),或者單獨(dú)的一個(gè)頁(yè),都可以組成一個(gè)邏輯塊。

1.4 按照接口進(jìn)行磁盤(pán)分類

除了可以按照存儲(chǔ)介質(zhì)來(lái)分類,另一個(gè)常見(jiàn)的分類方法,是按照接口來(lái)分類,比如可以把硬盤(pán)分為 IDE(Integrated Drive Electronics)、SCSI(Small Computer System Interface) 、SAS(Serial Attached SCSI) 、SATA(Serial ATA) 、FC(Fibre Channel) 等。

不同的接口,往往分配不同的設(shè)備名稱。比如, IDE 設(shè)備會(huì)分配一個(gè) hd 前綴的設(shè)備名,SCSI 和 SATA 設(shè)備會(huì)分配一個(gè) sd 前綴的設(shè)備名。如果是多塊同類型的磁盤(pán),就會(huì)按照 a、b、c 等的字母順序來(lái)編號(hào)。

1.5磁盤(pán)架構(gòu)

除了磁盤(pán)本身的分類外,當(dāng)你把磁盤(pán)接入服務(wù)器后,按照不同的使用方式,又可以把它們劃分為多種不同的架構(gòu)。

最簡(jiǎn)單的,就是直接作為獨(dú)立磁盤(pán)設(shè)備來(lái)使用。這些磁盤(pán),往往還會(huì)根據(jù)需要,劃分為不同的邏輯分區(qū),每個(gè)分區(qū)再用數(shù)字編號(hào)。比如我們前面多次用到的 /dev/sda ,還可以分成兩個(gè)分區(qū) /dev/sda1 和 /dev/sda2。

另一個(gè)比較常用的架構(gòu),是把多塊磁盤(pán)組合成一個(gè)邏輯磁盤(pán),構(gòu)成冗余獨(dú)立磁盤(pán)陣列,也就是 RAID(Redundant Array of Independent Disks),從而可以提高數(shù)據(jù)訪問(wèn)的性能,并且增強(qiáng)數(shù)據(jù)存儲(chǔ)的可靠性。

根據(jù)容量、性能和可靠性需求的不同,RAID 一般可以劃分為多個(gè)級(jí)別,如 RAID0、RAID1、RAID5、RAID10 等。

RAID0 有最優(yōu)的讀寫(xiě)性能,但不提供數(shù)據(jù)冗余的功能。

而其他級(jí)別的 RAID,在提供數(shù)據(jù)冗余的基礎(chǔ)上,對(duì)讀寫(xiě)性能也有一定程度的優(yōu)化。

最后一種架構(gòu),是把這些磁盤(pán)組合成一個(gè)網(wǎng)絡(luò)存儲(chǔ)集群,再通過(guò) NFS、SMB、iSCSI 等網(wǎng)絡(luò)存儲(chǔ)協(xié)議,暴露給服務(wù)器使用。(云服務(wù)器基本都是這種架構(gòu))

其實(shí)在 Linux 中,磁盤(pán)實(shí)際上是作為一個(gè)塊設(shè)備來(lái)管理的,也就是以塊為單位讀寫(xiě)數(shù)據(jù),并且支持隨機(jī)讀寫(xiě)。每個(gè)塊設(shè)備都會(huì)被賦予兩個(gè)設(shè)備號(hào),分別是主、次設(shè)備號(hào)。主設(shè)備號(hào)用在驅(qū)動(dòng)程序中,用來(lái)區(qū)分設(shè)備類型;而次設(shè)備號(hào)則是用來(lái)給多個(gè)同類設(shè)備編號(hào)。

2、什么是磁盤(pán)IO

磁盤(pán) I/O(Input/Output)是指計(jì)算機(jī)系統(tǒng)中涉及到磁盤(pán)的數(shù)據(jù)讀取和寫(xiě)入操作。磁盤(pán) I/O 是計(jì)算機(jī)與存儲(chǔ)設(shè)備之間進(jìn)行數(shù)據(jù)交換的一種重要方式。當(dāng)計(jì)算機(jī)需要從磁盤(pán)讀取數(shù)據(jù)時(shí),它會(huì)發(fā)起一個(gè)讀取請(qǐng)求,磁盤(pán)會(huì)尋找并將數(shù)據(jù)傳輸?shù)接?jì)算機(jī)的內(nèi)存中;當(dāng)計(jì)算機(jī)需要將數(shù)據(jù)寫(xiě)入磁盤(pán)時(shí),它會(huì)發(fā)起一個(gè)寫(xiě)入請(qǐng)求,將數(shù)據(jù)從內(nèi)存寫(xiě)入到磁盤(pán)中。

??我們都知道磁盤(pán)中存儲(chǔ)的程序,必須要加載到內(nèi)存后才能運(yùn)行,在磁盤(pán)中保存的原始程序是無(wú)法直接運(yùn)行的。這是因?yàn)?,?fù)責(zé)解析和運(yùn)行程序內(nèi)容的CPU,需要通過(guò)內(nèi)部程序計(jì)數(shù)器來(lái)指定內(nèi)存地址,然后才能讀出程序。即使CPU可以直接讀出并運(yùn)行磁盤(pán)中保存的程序,由于磁盤(pán)讀取速度慢,程序的運(yùn)行速度還是會(huì)降低。總之,存儲(chǔ)在磁盤(pán)中的程序需要讀入到內(nèi)存后才能運(yùn)行。

??當(dāng)程序在內(nèi)存中執(zhí)行時(shí),如果需要加載一些文檔數(shù)據(jù)或其他文件,它會(huì)通過(guò)操作系統(tǒng)提供的文件操作功能來(lái)實(shí)現(xiàn)。操作系統(tǒng)會(huì)提供一些函數(shù)或系統(tǒng)調(diào)用,允許程序訪問(wèn)磁盤(pán)上的文件并將其加載到內(nèi)存中。程序可以使用文件路徑指定要加載的文件,然后通過(guò)操作系統(tǒng)提供的函數(shù)來(lái)打開(kāi)這些文件。一旦文件被打開(kāi),程序就可以讀取其中的數(shù)據(jù),并將其加載到內(nèi)存中,以便后續(xù)處理。這就好像你在讀一本書(shū),首先需要打開(kāi)書(shū)本,然后才能閱讀其中的內(nèi)容。當(dāng)程序執(zhí)行 I/O 操作時(shí),CPU 將會(huì)暫時(shí)停止執(zhí)行程序指令,而是會(huì)等待操作系統(tǒng)完成讀取文件的工作。

??一旦CPU下發(fā)了讀取文件的指令,它會(huì)等待操作系統(tǒng)通知文件已經(jīng)準(zhǔn)備好,并將數(shù)據(jù)加載到內(nèi)存中。CPU會(huì)繼續(xù)執(zhí)行其他的指令,而不是空閑等待。一旦文件數(shù)據(jù)加載到內(nèi)存中,CPU 就會(huì)繼續(xù)執(zhí)行程序的后續(xù)邏輯。在這個(gè)過(guò)程中,CPU 可能會(huì)執(zhí)行其他指令,例如處理內(nèi)存中的其他數(shù)據(jù),執(zhí)行其他線程的操作,或者執(zhí)行程序的其他部分邏輯。CPU 不會(huì)在等待期間完全停止執(zhí)行。

70f28544-4a6a-11ef-b8af-92fbcf53809c.png

注意 1:當(dāng)CPU需要等待磁盤(pán)操作完成才能繼續(xù)處理數(shù)據(jù)時(shí),它可能會(huì)進(jìn)入空閑狀態(tài),這時(shí),CPU的使用率下降,因?yàn)樗诘却齀O操作,而不是執(zhí)行計(jì)算任務(wù),這種現(xiàn)象說(shuō)明了IO操作對(duì)CPU性能的重要影響。

注意 2:內(nèi)存相當(dāng)于CPU和硬盤(pán)之間的橋梁,當(dāng)需要運(yùn)行一個(gè)程序時(shí),先將程序加載到內(nèi)存中,然后CPU取內(nèi)存中的指令和數(shù)據(jù)進(jìn)行處理運(yùn)算,處理完后將結(jié)果寫(xiě)回內(nèi)存,如果需要的話再將結(jié)果從內(nèi)存寫(xiě)入硬盤(pán)。

3、磁盤(pán)性能指標(biāo)

說(shuō)到磁盤(pán)性能的衡量標(biāo)準(zhǔn),必須要提到五個(gè)常見(jiàn)指標(biāo),也就是我們經(jīng)常用到的,使用率、飽和度、IOPS、吞吐量以及響應(yīng)時(shí)間等。這五個(gè)指標(biāo),是衡量磁盤(pán)性能的基本指標(biāo):

IOPS(Input/Output Per Second),是指每秒磁盤(pán)處理的I/O請(qǐng)求數(shù)量。衡量存儲(chǔ)性能一般看吞吐量(傳輸速度)和IOPS兩個(gè)指標(biāo)。

吞吐量,是指每秒磁盤(pán)處理的 I/O 請(qǐng)求大小,吞吐量主要指大文件的連續(xù)讀寫(xiě)速度,在大文件的復(fù)制、備份等場(chǎng)景適用,用“HD Tune專業(yè)版”中的“基準(zhǔn)”測(cè)試功能即可測(cè)試出磁盤(pán)的吞吐量,一般傳統(tǒng)機(jī)械sata硬盤(pán)的順序讀寫(xiě)速度為 :80~150M/s,SAS硬盤(pán)為150~200M/s,SSD固態(tài)硬盤(pán)為400~600M/s。

響應(yīng)時(shí)間,是指 I/O 請(qǐng)求從發(fā)出到收到響應(yīng)的間隔時(shí)間。

使用率,是指磁盤(pán)處理 I/O 的時(shí)間百分比。過(guò)高的使用率(比如超過(guò) 80%),通常意味著磁盤(pán) I/O 存在性能瓶頸,這里要注意的是,使用率只考慮有沒(méi)有 I/O,而不考慮 I/O 的大小。換句話說(shuō),當(dāng)使用率是 100% 的時(shí)候,磁盤(pán)依然有可能接受新的 I/O 請(qǐng)求,比如磁盤(pán)一直讀寫(xiě)小文件,雖然使用率是100%,但是磁盤(pán)壓力可能并不大。

飽和度,是指磁盤(pán)處理 I/O 的繁忙程度。過(guò)高的飽和度,意味著磁盤(pán)存在嚴(yán)重的性能瓶頸。當(dāng)飽和度為 100% 時(shí),磁盤(pán)無(wú)法接受新的 I/O 請(qǐng)求。

這些指標(biāo),很可能是你經(jīng)常掛在嘴邊的,一討論磁盤(pán)性能必定提起的對(duì)象。不過(guò)我還是要強(qiáng)調(diào)一點(diǎn),不要孤立地去比較某一指標(biāo),而要結(jié)合讀寫(xiě)比例、I/O 類型(隨機(jī)還是連續(xù))以及 I/O 的大小,綜合來(lái)分析。舉個(gè)例子,在數(shù)據(jù)庫(kù)、大量小文件等這類隨機(jī)讀寫(xiě)比較多的場(chǎng)景中,IOPS 更能反映系統(tǒng)的整體性能;而在多媒體等順序讀寫(xiě)較多的場(chǎng)景中,吞吐量才更能反映系統(tǒng)的整體性能

一般來(lái)說(shuō),我們?cè)跒閼?yīng)用程序的服務(wù)器選型時(shí),要先對(duì)磁盤(pán)的 I/O 性能進(jìn)行基準(zhǔn)測(cè)試,以便可以準(zhǔn)確評(píng)估,磁盤(pán)性能是否可以滿足應(yīng)用程序的需求。但還是那句話,因地制宜,靈活選取。在基準(zhǔn)測(cè)試時(shí),一定要注意根據(jù)應(yīng)用程序 I/O 的特點(diǎn),來(lái)具體評(píng)估指標(biāo)。當(dāng)然,這就需要你測(cè)試出,不同 I/O 大?。ㄒ话闶?512B 至 1MB 中間的若干值)分別在隨機(jī)讀、順序讀、隨機(jī)寫(xiě)、順序?qū)懙雀鞣N場(chǎng)景下的性能情況。用性能工具得到的這些指標(biāo),可以作為后續(xù)分析應(yīng)用程序性能的依據(jù)。一旦發(fā)生性能問(wèn)題,你就可以把它們作為磁盤(pán)性能的極限值,進(jìn)而評(píng)估磁盤(pán) I/O 的使用情況。

4、磁盤(pán) I/O 觀測(cè)

了解磁盤(pán)的性能指標(biāo),只是我們 I/O 性能測(cè)試的第一步。接下來(lái),又該用什么方法來(lái)觀測(cè)它們呢?這里,介紹幾個(gè)常用的 I/O 性能觀測(cè)方法。

4.1 觀察每塊磁盤(pán)的使用情況

iostat是I/O statistics(輸入/輸出統(tǒng)計(jì))的縮寫(xiě),iostat工具將對(duì)系統(tǒng)的磁盤(pán)操作活動(dòng)進(jìn)行監(jiān)視。它的特點(diǎn)是匯報(bào)磁盤(pán)活動(dòng)統(tǒng)計(jì)情況,同時(shí)也會(huì)匯報(bào)出CPU使用情況。iostat也有一個(gè)弱點(diǎn),就是它不能對(duì)某個(gè)進(jìn)程進(jìn)行深入分析,僅對(duì)系統(tǒng)的整體情況進(jìn)行分析。

1
2
# iostat屬于sysstat軟件包??梢灾苯影惭b。
yum install sysstat -y

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

1
2
3
4
5
6
7
8
-c: 僅顯示CPU利用率相關(guān)信息;
-d: 僅顯示磁盤(pán)I/O相關(guān)信息;
-k: 顯示輸出的數(shù)據(jù)單位為KB/s而不是默認(rèn)的字節(jié)/s;
-t: 在輸出中顯示時(shí)間戳(時(shí)間戳格式Y(jié)YYY-MM-DD HHSS)。
-m:顯示狀態(tài)以兆字節(jié)每秒為單位;
-p:僅顯示塊設(shè)備和所有被使用的其他分區(qū)的狀態(tài);
-V:顯示版號(hào)并退出;
-x:顯示擴(kuò)展?fàn)顟B(tài)。

iostat 的詳細(xì)使用本文不再贅余,詳情見(jiàn)《Linux iowait詳解》這篇博文。

在iostat輸出的這些指標(biāo)中,需要注意:

%util ,就是我們前面提到的磁盤(pán) I/O 使用率;

r/s+ w/s ,就是 IOPS;

rkB/s+wkB/s ,就是吞吐量;

r_await 或 w_await ,就是響應(yīng)時(shí)間。

在觀測(cè)指標(biāo)時(shí),也別忘了結(jié)合請(qǐng)求的大?。?rareq-sz 和 wareq-sz)一起分析。你可能注意到,從 iostat 并不能直接得到磁盤(pán)飽和度。事實(shí)上,飽和度通常也沒(méi)有其他簡(jiǎn)單的觀測(cè)方法,不過(guò),你可以把觀測(cè)到的平均請(qǐng)求隊(duì)列長(zhǎng)度或者讀寫(xiě)請(qǐng)求完成的等待時(shí)間,跟基準(zhǔn)測(cè)試的結(jié)果(比如通過(guò) fio)進(jìn)行對(duì)比,綜合評(píng)估磁盤(pán)的飽和情況。

4.2 觀察進(jìn)程io的使用情況

除了每塊磁盤(pán)的 I/O 情況,每個(gè)進(jìn)程的 I/O 情況也是我們需要關(guān)注的重點(diǎn)。上面提到的 iostat 只提供磁盤(pán)整體的 I/O 性能數(shù)據(jù),缺點(diǎn)在于,并不能知道具體是哪些進(jìn)程在進(jìn)行磁盤(pán)讀寫(xiě)。要觀察進(jìn)程的 I/O 情況,還可以使用iotop這個(gè)工具。iotop。它是一個(gè)類似于 top 的工具,你可以按照 I/O 大小對(duì)進(jìn)程排序,然后找到 I/O 較大的那些進(jìn)程。

#安裝
yum -y install iotop

說(shuō)明:

? --version #顯示版本號(hào)
? -h, --help #顯示幫助信息
? -o, --only #顯示進(jìn)程或者線程實(shí)際上正在做的I/O,而不是全部的,可以隨時(shí)切換按o
? -b, --batch #運(yùn)行在非交互式的模式
? -n NUM, --iter=NUM #在非交互式模式下,設(shè)置顯示的次數(shù),
? -d SEC, --delay=SEC #設(shè)置顯示的間隔秒數(shù),支持非整數(shù)值
? -p PID, --pid=PID #只顯示指定PID的信息
? -u USER, --user=USER #顯示指定的用戶的進(jìn)程的信息
? -P, --processes #只顯示進(jìn)程,一般為顯示所有的線程
? -a, --accumulated #顯示從iotop啟動(dòng)后每個(gè)線程完成了的IO總數(shù)
? -k, --kilobytes #以千字節(jié)顯示
? -t, --time #在每一行前添加一個(gè)當(dāng)前的時(shí)間
? -q, --quiet #suppress some lines of header (implies --batch). This option can be specified up to three times to remove header lines.
? -q column names are only printed on the first iteration,
? -qq column names are never printed,
? -qqq the I/O summary is never printed.
 
iotop 快捷鍵
? 左右箭頭  #改變排序方式,默認(rèn)是按IO排序
? r  #改變排序順序
? o  #只顯示有IO輸出的進(jìn)程
? p  #進(jìn)程/線程的顯示方式的切換
? a  #顯示累積使用量
? q  #退出

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

從這個(gè)輸出,可以看到,前兩行分別表示,進(jìn)程的磁盤(pán)讀寫(xiě)大小總數(shù)和磁盤(pán)真實(shí)的讀寫(xiě)大小總數(shù)。因?yàn)榫彺?、緩沖區(qū)、I/O 合并等因素的影響,它們可能并不相等。剩下的部分,則是從各個(gè)角度來(lái)分別表示進(jìn)程的 I/O 情況,包括線程 ID、I/O 優(yōu)先級(jí)、每秒讀磁盤(pán)的大小、每秒寫(xiě)磁盤(pán)的大小、換入和每個(gè)進(jìn)程的 I/O 利用率(即進(jìn)程正在進(jìn)行的 I/O 操作所占用的時(shí)間比例)。

4.3 磁盤(pán)性能觀測(cè)命令補(bǔ)充

(1)sar命令

iostat 和 iotop 命令都主要用于實(shí)時(shí)監(jiān)控系統(tǒng)的 I/O 情況,通常不會(huì)記錄歷史的 I/O 信息。如果你需要查看歷史的 I/O 信息,可以考慮使用sar命令。

sar 命令是分析系統(tǒng)瓶頸的神器,可以用來(lái)查看 CPU 、內(nèi)存、磁盤(pán)、網(wǎng)絡(luò)等性能,sar 命令查看當(dāng)前磁盤(pán)性能的命令為:

[root@106 sa]# sar -d -p 1 2
Linux 3.10.0-1160.59.1.el7.x86_64 (106)     2024年04月18日     _x86_64_    (8 CPU)
 
17時(shí)33分33秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
17時(shí)33分34秒       sdc      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
17時(shí)33分34秒       sdd      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
17時(shí)33分34秒       sdb      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
17時(shí)33分34秒       sda     25.00      0.00    276.00     11.04      0.00      0.16      0.16      0.40
17時(shí)33分34秒 centos-root     25.00      0.00    276.00     11.04      0.00      0.16      0.16      0.40
17時(shí)33分34秒 centos-swap      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
 
17時(shí)33分34秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
17時(shí)33分35秒       sdc      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
17時(shí)33分35秒       sdd      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
17時(shí)33分35秒       sdb      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
17時(shí)33分35秒       sda    153.00      0.00   1444.00      9.44      0.85      5.55      0.29      4.40
17時(shí)33分35秒 centos-root    153.00      0.00   1444.00      9.44      0.85      5.54      0.29      4.40
17時(shí)33分35秒 centos-swap      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
 
平均時(shí)間:       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
平均時(shí)間:       sdc      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均時(shí)間:       sdd      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均時(shí)間:       sdb      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均時(shí)間:       sda     89.00      0.00    860.00      9.66      0.43      4.79      0.27      2.40
平均時(shí)間: centos-root     89.00      0.00    860.00      9.66      0.43      4.79      0.27      2.40
平均時(shí)間: centos-swap      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
[root@106 sa]#

其中, “-d”參數(shù)代表查看磁盤(pán)性能,“-p”參數(shù)代表將 dev 設(shè)備按照 sda,sdb……名稱顯示,“1”代表每隔1s采取一次數(shù)值,“2”代表總共采取2次數(shù)值。輸出項(xiàng)除了tps,其他指標(biāo)和iostat一致,這里就不再贅余(tps:每秒鐘物理設(shè)備的 I/O 傳輸總量)。

默認(rèn)情況下,sar顯示當(dāng)前數(shù)據(jù);如果想繼續(xù)查看一天前的報(bào)告;可以查看保存在/var/log/sa/下的sar日志(默認(rèn)保存三天數(shù)據(jù)):

[root@106 sa]# sar -d -p -f /var/log/sa/sa16
Linux 3.10.0-1160.59.1.el7.x86_64 (106)     2024年04月16日     _x86_64_    (8 CPU)
 
14時(shí)10分01秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
14時(shí)20分01秒       sdc      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
14時(shí)20分01秒       sdd      0.04      0.00      0.36      9.00      0.00      2.12      2.12      0.01
14時(shí)20分01秒       sdb      0.01      0.00      0.12      9.00      0.00      0.38      0.38      0.00
14時(shí)20分01秒       sda     49.17      0.00    888.31     18.07      0.07      1.41      0.58      2.85
14時(shí)20分01秒 centos-root     49.42      0.00    888.30     17.97      0.07      1.43      0.58      2.85
......
23時(shí)40分01秒       sdc      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
23時(shí)40分01秒       sdd      0.04      0.00      0.36      9.00      0.00      0.79      0.79      0.00
23時(shí)40分01秒       sdb      0.01      0.00      0.12      9.00      0.00      1.62      1.62      0.00
23時(shí)40分01秒       sda     48.50      0.00    892.42     18.40      0.08      1.57      0.63      3.07
23時(shí)40分01秒 centos-root     48.71      0.00    892.42     18.32      0.08      1.58      0.63      3.07
23時(shí)40分01秒 centos-swap      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
23時(shí)50分01秒       sdc      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
23時(shí)50分01秒       sdd      0.04      0.00      0.36      9.00      0.00      0.25      0.25      0.00
23時(shí)50分01秒       sdb      0.01      0.00      0.12      9.00      0.00      0.25      0.25      0.00
23時(shí)50分01秒       sda     49.29      0.00    824.63     16.73      0.07      1.52      0.64      3.18
23時(shí)50分01秒 centos-root     49.50      0.00    824.63     16.66      0.08      1.53      0.64      3.18
23時(shí)50分01秒 centos-swap      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均時(shí)間:       sdc      0.00      0.47      0.01    208.69      0.00      4.06      2.78      0.00
平均時(shí)間:       sdd      0.04      0.00      0.37      9.08      0.00      0.49      0.48      0.00
平均時(shí)間:       sdb      0.02      0.00      0.14      9.31      0.00      0.53      0.50      0.00
平均時(shí)間:       sda     48.53      0.00    863.51     17.79      0.07      1.46      0.61      2.97
平均時(shí)間: centos-root     48.74      0.00    863.51     17.71      0.07      1.47      0.61      2.97
平均時(shí)間: centos-swap      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

(2)其他IO相關(guān)的常用命令

710c5546-4a6a-11ef-b8af-92fbcf53809c.png

5、小結(jié)

本文梳理了磁盤(pán)、 Linux IO、IO性能指標(biāo)和性能工具。我們通常用 IOPS、吞吐量、使用率、飽和度以及響應(yīng)時(shí)間等幾個(gè)指標(biāo),來(lái)評(píng)估磁盤(pán)的 I/O 性能??梢杂?iostat 獲得磁盤(pán)的 I/O 情況,也可以用iotop 觀察進(jìn)程的 I/O 情況。不過(guò)在分析這些性能指標(biāo)時(shí),要注意結(jié)合讀寫(xiě)比例、I/O 類型以及 I/O 大小等,進(jìn)行綜合分析。

鏈接:https://www.cnblogs.com/zhangmingcheng/p/18143353

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11764

    瀏覽量

    219096
  • 計(jì)算機(jī)
    +關(guān)注

    關(guān)注

    19

    文章

    7809

    瀏覽量

    93232
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    14

    文章

    10261

    瀏覽量

    91526
  • 磁盤(pán)
    +關(guān)注

    關(guān)注

    1

    文章

    398

    瀏覽量

    26489

原文標(biāo)題:深入了解Linux磁盤(pán)IO性能優(yōu)化:必讀指南

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Linux-基礎(chǔ)IO詳解

    磁盤(pán)上的文件 本質(zhì)是對(duì)文件的所有操作,都是對(duì)外設(shè)的輸入和輸出 簡(jiǎn)稱 IO
    發(fā)表于 08-05 10:47 ?735次閱讀

    數(shù)字磁盤(pán)錄像機(jī)的嵌入式Linux實(shí)現(xiàn)

    本文簡(jiǎn)要介紹了基于AU1500的MPU和嵌入式Linux數(shù)字磁盤(pán)錄像機(jī),詳細(xì)介紹了系統(tǒng)的硬件框架,重點(diǎn)敘述了是如何實(shí)現(xiàn)將嵌入式Linux移植到目標(biāo)系統(tǒng)中,系統(tǒng)的介紹了移植嵌入式
    發(fā)表于 06-17 10:40 ?32次下載

    Linux基礎(chǔ)教程之Linux查看磁盤(pán)掛載有哪些方法詳細(xì)方法概述

    本文檔的主要內(nèi)容詳細(xì)介紹的是Linux基礎(chǔ)教程之Linux查看磁盤(pán)掛載有哪些方法詳細(xì)方法概述詳細(xì)
    發(fā)表于 10-26 17:15 ?1次下載

    Linux系統(tǒng)教程之磁盤(pán)分區(qū)和LVM系統(tǒng)的詳細(xì)資料概述

    本文檔的主要內(nèi)容詳細(xì)介紹的是Linux系統(tǒng)教程之磁盤(pán)分區(qū)和LVM系統(tǒng)的詳細(xì)資料概述主要內(nèi)容包括了:1.磁盤(pán)相關(guān)概念2.
    發(fā)表于 10-30 16:11 ?14次下載
    <b class='flag-5'>Linux</b>系統(tǒng)教程之<b class='flag-5'>磁盤(pán)</b>分區(qū)和LVM系統(tǒng)的<b class='flag-5'>詳細(xì)</b>資料概述

    linux磁盤(pán)滿的清理方法

    Linux查看磁盤(pán)用量
    發(fā)表于 06-09 08:53 ?9173次閱讀
    <b class='flag-5'>linux</b><b class='flag-5'>磁盤(pán)</b>滿的清理方法

    linux磁盤(pán)如何清理

    Linux查看磁盤(pán)用量
    發(fā)表于 06-10 09:18 ?2900次閱讀
    <b class='flag-5'>linux</b>的<b class='flag-5'>磁盤(pán)</b>如何清理

    linux虛擬機(jī)下使用IOMETER測(cè)試磁盤(pán)IO性能

    前面有分享了windows下如何使用IOMETER來(lái)測(cè)試網(wǎng)絡(luò)磁盤(pán)IO性能,今天分享一下linux下如何使用IOMETER來(lái)測(cè)試網(wǎng)絡(luò)磁盤(pán)的性能。在l
    發(fā)表于 07-08 10:32 ?14次下載
    <b class='flag-5'>linux</b>虛擬機(jī)下使用IOMETER測(cè)試<b class='flag-5'>磁盤(pán)</b>的<b class='flag-5'>IO</b>性能

    df、du、fdisk linux的基本操作(磁盤(pán)管理)

    df、du、fdisk linux的基本操作(磁盤(pán)管理
    發(fā)表于 12-08 17:14 ?0次下載

    如何用腳本來(lái)獲取linux系統(tǒng)CPU、內(nèi)存、磁盤(pán)IO,及原理解釋

    今天主要分享一個(gè)shell腳本,用來(lái)獲取linux系統(tǒng)CPU、內(nèi)存、磁盤(pán)IO等信息。
    的頭像 發(fā)表于 04-08 14:40 ?3753次閱讀
    如何用腳本來(lái)獲取<b class='flag-5'>linux</b>系統(tǒng)CPU、內(nèi)存、<b class='flag-5'>磁盤(pán)</b><b class='flag-5'>IO</b>,及原理解釋

    Linux下文件IO相關(guān)操作

    Linux - 基礎(chǔ) IO 文件 IO 相關(guān)操作 stdin stdout stderr 系統(tǒng)文件 I/O 文件的宏觀理解: 狹義理解: 1.文件在磁盤(pán)里 2.
    發(fā)表于 08-11 11:55 ?903次閱讀

    查看linux系統(tǒng)磁盤(pán)io情況的辦法是什么

    談到 Linux 磁盤(pán) I/O 的工作原理,我們了解到 Linux 存儲(chǔ)系統(tǒng) I/O 棧由文件系統(tǒng)層(file system layer)、通用塊層( general block layer)和設(shè)備層(device layer)
    發(fā)表于 08-01 10:14 ?2865次閱讀

    linux異步io框架iouring應(yīng)用

    Linux內(nèi)核5.1支持了新的異步IO框架iouring,由Block IO大神也即Fio作者Jens Axboe開(kāi)發(fā),意在提供一套公用的網(wǎng)絡(luò)和磁盤(pán)異步
    的頭像 發(fā)表于 11-08 15:39 ?1720次閱讀
    <b class='flag-5'>linux</b>異步<b class='flag-5'>io</b>框架iouring應(yīng)用

    Linux添加磁盤(pán)創(chuàng)建分區(qū)、掛載

    Linux添加磁盤(pán)創(chuàng)建分區(qū)、掛載
    發(fā)表于 04-20 17:49 ?835次閱讀
    <b class='flag-5'>Linux</b>添加<b class='flag-5'>磁盤(pán)</b>創(chuàng)建分區(qū)、掛載

    華納云監(jiān)視Linux磁盤(pán)IO性能命令:iotop,iostat,vmstat,atop,dstat,ioping

    以下介紹6個(gè)監(jiān)視 Linux 磁盤(pán)IO性能的命令(工具),它們分別是iotop、iostat、vmstat、atop、dstat、ioping,以下將附上簡(jiǎn)單的使用方法。 前言 磁盤(pán)
    的頭像 發(fā)表于 10-24 14:43 ?1533次閱讀

    VMWare Linux系統(tǒng)磁盤(pán)擴(kuò)容

    當(dāng)我們?cè)赩Mware Linux虛擬機(jī)安裝軟件的時(shí)候,發(fā)現(xiàn)磁盤(pán)不夠了,可以考慮給磁盤(pán)擴(kuò)容,而不是重建虛擬機(jī)。
    的頭像 發(fā)表于 02-17 14:01 ?1520次閱讀
    VMWare <b class='flag-5'>Linux</b>系統(tǒng)<b class='flag-5'>磁盤(pán)</b>擴(kuò)容