linux文件系統(tǒng)中預(yù)讀

1 預(yù)讀需求的產(chǎn)生

磁盤的機械臂+旋轉(zhuǎn)盤片的數(shù)據(jù)定位與讀取方式寿谴,決定了它最突出的性能特點:擅長順序讀寫匣距,不善于隨機I/O,I/O延遲非常大上荡。由此而產(chǎn)生了兩個方面的預(yù)讀需求谐岁。

2 來自磁盤的需求

簡單的說,磁盤的一個典型I/O操作由兩個階段組成:

1.數(shù)據(jù)定位

平均定位時間主要由兩部分組成:平均尋道時間和平均轉(zhuǎn)動延遲榛臼。尋道時間的典型值是4.6ms。轉(zhuǎn)動延遲則取決于磁盤的轉(zhuǎn)速:普通7200RPM桌面硬盤的轉(zhuǎn)動延遲是4.2ms窜司,而高端10000RPM的是3ms沛善。這些數(shù)字多年來一直徘徊不前,大概今后也無法有大的改善了塞祈。在下文中金刁,我們不妨使用 8ms作為典型定位時間。

2.數(shù)據(jù)傳輸

持續(xù)傳輸率主要取決于盤片的轉(zhuǎn)速(線速度)和存儲密度,最新的典型值為80MB/s尤蛮。雖然磁盤轉(zhuǎn)速難以提高媳友,但是存儲密度卻在逐年改善。巨磁阻产捞、垂直磁記錄等一系列新技術(shù)的采用醇锚,不但大大提高了磁盤容量,也同時帶來了更高的持續(xù)傳輸率坯临。

顯然焊唬,I/O的粒度越大,傳輸時間在總時間中的比重就會越大看靠,因而磁盤利用率和吞吐量就會越大赶促。簡單的估算結(jié)果如表1所示。如果進行大量4KB的隨機I/O挟炬,那么磁盤在99%以上的時間內(nèi)都在忙著定位鸥滨,單個磁盤的吞吐量不到500KB/s。但是當(dāng)I/O大小達到1MB的時候谤祖,吞吐量可接近50MB /s婿滓。由此可見,采用更大的I/O粒度泊脐,可以把磁盤的利用效率和吞吐量提高整整100倍空幻。因而必須盡一切可能避免小尺寸I/O,這正是預(yù)讀算法所要做的容客。

image

表1隨機讀大小與磁盤性能的關(guān)系

3 來自程序的需求

應(yīng)用程序處理數(shù)據(jù)的一個典型流程是這樣的:while(!done) { read(); compute(); }秕铛。假設(shè)這個循環(huán)要重復(fù)5次,總共處理5批數(shù)據(jù)缩挑,則程序運行的時序圖可能如圖1所示但两。

image

圖1典型的I/O時序圖

不難看出,磁盤和CPU是在交替忙碌:當(dāng)進行磁盤I/O的時候供置,CPU在等待;當(dāng)CPU在計算和處理數(shù)據(jù)時谨湘,磁盤是空閑的。那么是不是可以讓兩者流水線作業(yè)芥丧,以便加快程序的執(zhí)行速度?預(yù)讀可以幫助達成這一目標(biāo)紧阔。基本的方法是续担,當(dāng)CPU開始處理第1批數(shù)據(jù)的時候擅耽,由內(nèi)核的預(yù)讀機制預(yù)加載下一批數(shù)據(jù)。這時候的預(yù)讀是在后臺異步進行的物遇,如圖2所示乖仇。

image

圖2預(yù)讀的流水線作業(yè)

注意憾儒,在這里我們并沒有改變應(yīng)用程序的行為:程序的下一個讀請求仍然是在處理完當(dāng)前的數(shù)據(jù)之后才發(fā)出的。只是這時候的被請求的數(shù)據(jù)可能已經(jīng)在內(nèi)核緩存中了乃沙,無須等待起趾,直接就能復(fù)制過來用。在這里警儒,異步預(yù)讀的功能是對上層應(yīng)用程序“隱藏”磁盤I/O的大延遲训裆。雖然延遲事實上仍然存在,但是應(yīng)用程序看不到了冷蚂,因而運行的更流暢缭保。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市蝙茶,隨后出現(xiàn)的幾起案子艺骂,更是在濱河造成了極大的恐慌,老刑警劉巖隆夯,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件钳恕,死亡現(xiàn)場離奇詭異,居然都是意外死亡蹄衷,警方通過查閱死者的電腦和手機忧额,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來愧口,“玉大人睦番,你說我怎么就攤上這事∷J簦” “怎么了托嚣?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長厚骗。 經(jīng)常有香客問我示启,道長,這世上最難降的妖魔是什么领舰? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任夫嗓,我火速辦了婚禮,結(jié)果婚禮上冲秽,老公的妹妹穿的比我還像新娘舍咖。我一直安慰自己,他們只是感情好锉桑,可當(dāng)我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布谎仲。 她就那樣靜靜地躺著,像睡著了一般刨仑。 火紅的嫁衣襯著肌膚如雪郑诺。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天杉武,我揣著相機與錄音辙诞,去河邊找鬼。 笑死轻抱,一個胖子當(dāng)著我的面吹牛飞涂,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播祈搜,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼较店,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了容燕?” 一聲冷哼從身側(cè)響起梁呈,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蘸秘,沒想到半個月后官卡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡醋虏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年寻咒,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片颈嚼。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡毛秘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出阻课,到底是詐尸還是另有隱情叫挟,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布柑肴,位于F島的核電站霞揉,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏晰骑。R本人自食惡果不足惜适秩,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望硕舆。 院中可真熱鬧秽荞,春花似錦、人聲如沸抚官。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽凌节。三九已至钦听,卻和暖如春洒试,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背朴上。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工垒棋, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人痪宰。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓叼架,卻偏偏與公主長得像,于是被迫代替她去往敵國和親衣撬。 傳聞我的和親對象是個殘疾皇子乖订,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容

  • feisky云計算、虛擬化與Linux技術(shù)筆記posts - 1014, comments - 298, trac...
    不排版閱讀 3,827評論 0 5
  • 操作系統(tǒng)概論 操作系統(tǒng)的概念 操作系統(tǒng)是指控制和管理計算機的軟硬件資源具练,并合理的組織調(diào)度計算機的工作和資源的分配乍构,...
    野狗子嗷嗷嗷閱讀 11,902評論 3 34
  • 計算機系統(tǒng)漫游 代碼從文本到可執(zhí)行文件的過程(c語言示例):預(yù)處理階段,處理 #inlcude 靠粪, #defin...
    willdimagine閱讀 3,570評論 0 5
  • 行動遠勝于空談 為孩子樹立一個值得學(xué)習(xí)的榜樣蜡吧! 家 長 的 話: “我們家每晚都會因為家庭作業(yè)而發(fā)生戰(zhàn)爭,我們的兒...
    文琴老師閱讀 265評論 0 0
  • 官網(wǎng)http://www.worldrobotconference.com/ 機器人 讓生活變得更美好 官方宣傳片...
    科技多閱讀 147評論 0 1