大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 Linux磁盤緩存機(jī)制詳解

Linux磁盤緩存機(jī)制詳解

更新時間:2020-12-15 17:44:16 來源:動力節(jié)點(diǎn) 瀏覽1868次

磁盤緩存出現(xiàn)的原因大概有兩個:一是訪問磁盤的速度遠(yuǎn)慢于訪問內(nèi)存的速度,通過在內(nèi)存中緩存磁盤內(nèi)容可以提高訪問速度;二是根據(jù)程序的局部性原理,數(shù)據(jù)一旦被訪問過,就很有可能在短時間內(nèi)再次被訪問,所以在內(nèi)存中緩存磁盤內(nèi)容可以提高程序運(yùn)行速度。簡而言之,Linux磁盤緩存機(jī)制是為提高系統(tǒng)對磁盤中資源的訪問速度。

接下來我們先來詳細(xì)講解一下Linux磁盤緩存機(jī)制的兩大原因:

 

1.局部性原理

程序局部性原理:程序在執(zhí)行時呈現(xiàn)出局部性規(guī)律,即在一段時間內(nèi),整個程序的執(zhí)行僅限于程序中的某一部分。相應(yīng)地,執(zhí)行所訪問的存儲空間也局限于某個內(nèi)存區(qū)域,具體來說,局部性通常有兩種形式:時間局部性和空間局部性。

時間局部性:被引用過一次的存儲器位置在未來會被多次引用。

空間局部性:如果一個存儲器的位置被引用,那么將來他附近的位置也會被引用。

 

2.頁緩存

Linux系統(tǒng)中為了減少對磁盤的IO操作,會將打開的磁盤內(nèi)容進(jìn)行緩存,而緩存的地方則是物理內(nèi)存,進(jìn)而將對磁盤的訪問轉(zhuǎn)換成對內(nèi)存的訪問,有效提高程序的速度。Linux的緩存方式是利用物理內(nèi)存緩存磁盤上的內(nèi)容,稱為頁緩存(page cache)。

 

頁緩存是由內(nèi)存中的物理頁面組成的,其內(nèi)容對應(yīng)磁盤上的物理塊。頁緩存的大小會根據(jù)系統(tǒng)的內(nèi)存空閑大小進(jìn)行動態(tài)調(diào)整,它可以通過占用內(nèi)存以擴(kuò)張大小,也可以自我收縮以緩解內(nèi)存使用壓力。

 

在虛擬內(nèi)存機(jī)制出現(xiàn)以前,操作系統(tǒng)使用塊緩存系列,但是在虛擬內(nèi)存出現(xiàn)以后,操作系統(tǒng)管理IO的粒度更大,因此采用了頁緩存機(jī)制,頁緩存是基于頁的、面向文件的緩存機(jī)制。

 

在這次遇到的線上故障中,根本原因在于在業(yè)務(wù)邏輯中使用了臨時文件做緩存,一個臨時文件創(chuàng)建后如果在短時間內(nèi)刪除,這時候?qū)@個文件的操作都是在頁緩存內(nèi)進(jìn)行,不會實(shí)際回寫到磁盤。當(dāng)程序出現(xiàn)問題響應(yīng)變慢時,臨時文件存活時間變長,就可能會使其被回寫到磁盤上,導(dǎo)致磁盤壓力過大,進(jìn)而影響整個系統(tǒng)。

Linux系統(tǒng)在讀取文件時,會優(yōu)先從頁緩存中讀取文件內(nèi)容,如果頁緩存不存在,系統(tǒng)會先從磁盤中讀取文件內(nèi)容更新到頁緩存中,然后再從頁緩存中讀取文件內(nèi)容并返回。大致過程如下:

 

1)進(jìn)程調(diào)用庫函數(shù)read發(fā)起讀取文件請求

2)內(nèi)核檢查已打開的文件列表,調(diào)用文件系統(tǒng)提供的read接口

3)找到文件對應(yīng)的inode,然后計(jì)算出要讀取的具體的頁

4)通過inode查找對應(yīng)的頁緩存,如果頁緩存節(jié)點(diǎn)命中,則直接返回文件內(nèi)容;如果沒有對應(yīng)的頁緩存,則會產(chǎn)生一個缺頁異常(page fault)。這時系統(tǒng)會創(chuàng)建新的空的頁緩存并從磁盤中讀取文件內(nèi)容,更新頁緩存,然后重復(fù)第4步

5)讀取文件返回

 

所以說,所有的文件內(nèi)容的讀取,無論最初有沒有命中頁緩存,最終都是直接來源于頁緩存。

 

Linux系統(tǒng)磁盤故障的根本原因在于在業(yè)務(wù)邏輯中使用了臨時文件做緩存,一個臨時文件創(chuàng)建后如果在短時間內(nèi)刪除,這時候?qū)@個文件的操作都是在頁緩存內(nèi)進(jìn)行,不會實(shí)際回寫到磁盤。當(dāng)程序出現(xiàn)問題響應(yīng)變慢時,臨時文件存活時間變長,就可能會使其被回寫到磁盤上,導(dǎo)致磁盤壓力過大,進(jìn)而影響整個系統(tǒng)。我們搞懂了Linux磁盤緩存機(jī)制,此類問題也就迎刃而解了。想要學(xué)習(xí)更多Linux相關(guān)的知識,本站的Linux教程無疑是你最佳的選擇,短期幫你快速提升Linux系統(tǒng)的知識水平,鍛煉你的實(shí)戰(zhàn)能力。


提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 成人国产在线看不卡 | 亚洲欧美色鬼久久综合 | 国产九九在线视频 | 亚洲欧美一区二区三区在饯 | 日韩一区二区三区在线观看 | 久久怡红院国产精品 | 奇米影视222 | 欧美xxxxx九色视频免费观看 | 久久婷婷综合在线视频观看6 | 成年人免费毛片 | 精品国产区 | 中文字幕在线视频在线看 | 一区二区三区久久 | 欧美日韩不卡码一区二区三区 | 天天操天天射天天插 | 干干操操 | 一区二区视频免费看 | 99久久99久久久精品齐齐鬼色 | 久草视频免费 | 真人一级一级特黄高清毛片 | 国产福利免费视频 | 九九爱这里只有精品 | 操干干| 日本不卡视频在线 | 毛片天堂| 伊人久久中文字幕久久cm | 精品日本久久久久久久久久 | 欧美日韩亚洲国产综合 | 欧美国产成人免费观看永久视频 | 九九香蕉视频 | 最新国产精品亚洲 | 91精品久久久久久久久久小网站 | 中文一区二区 | 久久99综合国产精品亚洲首页 | 91中文字幕yellow字幕网 | 四虎在线免费观看视频 | 日韩三级不卡 | 91手机看片国产永久免费 | 亚洲一区二区三区免费在线观看 | 国产极品粉嫩福利在线观看 | 一级欧美毛片成人免费视频 |