版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
內(nèi)存回收目錄內(nèi)核進(jìn)行內(nèi)存回收的原因
內(nèi)存回收的不同方式2內(nèi)核進(jìn)行內(nèi)存回收的原因3內(nèi)核之所以要進(jìn)行內(nèi)存回收,主要原因有兩個:1、內(nèi)核需要為任何時刻突發(fā)到來的內(nèi)存申請?zhí)峁┳銐虻膬?nèi)存,以便cache的使用和其他相關(guān)內(nèi)存的使用不至于讓系統(tǒng)的剩余內(nèi)存長期處于很少的狀態(tài)。2、當(dāng)真的有大于空閑內(nèi)存的申請到來的時候,會觸發(fā)強制內(nèi)存回收。內(nèi)存回收的不同方式4在不同的內(nèi)存分配路徑中,會觸發(fā)不同的內(nèi)存回收方式,內(nèi)存回收針對的目標(biāo)有兩種,一種是針對zone的,另一種是針對一個memcg的,把針對zone的內(nèi)存回收方式分為三種,分別是快速內(nèi)存回收、直接內(nèi)存回收、kswapd內(nèi)存回收。
內(nèi)存回收的不同方式5快速內(nèi)存回收:處于get_page_from_freelist()函數(shù)中,在遍歷zonelist過程中,對每個zone都在分配前進(jìn)行判斷,如果分配后zone的空閑內(nèi)存數(shù)量<閥值+保留頁框數(shù)量,那么此zone就會進(jìn)行快速內(nèi)存回收。其中閥值可能是min/low/high的任何一種,因為在快速內(nèi)存分配,慢速內(nèi)存分配和oom分配過程中如果回收的頁框足夠,都會調(diào)用到get_page_from_freelist()函數(shù),所以快速內(nèi)存回收不僅僅發(fā)生在快速內(nèi)存分配中,在慢速內(nèi)存分配過程中也會發(fā)生。內(nèi)存回收的不同方式6直接內(nèi)存回收:處于慢速分配過程中,直接內(nèi)存回收只有一種情況下會使用,在慢速分配中無法從zonelist的所有zone中以min閥值分配頁框,并且進(jìn)行異步內(nèi)存壓縮后,還是無法分配到頁框的時候,就對zonelist中的所有zone進(jìn)行一次直接內(nèi)存回收。注意,直接內(nèi)存回收是針對zonelist中的所有zone的,它并不像快速內(nèi)存回收和kswapd內(nèi)存回收,只會對zonelist中空閑頁框不達(dá)標(biāo)的zone進(jìn)行內(nèi)存回收。在直接內(nèi)存回收中,有可能喚醒flush內(nèi)核線程。內(nèi)存回收的不同方式7kswapd內(nèi)存回收:發(fā)生在kswapd內(nèi)核線程中,每個node有一個swapd內(nèi)核線程,也就是kswapd內(nèi)核線程中的內(nèi)存回收,是只針對所在node的,并且只會對分配了order頁框數(shù)量后空閑頁框數(shù)量<此zone的high閥值+保留頁框數(shù)量的zone進(jìn)行內(nèi)存回收,并不會對此node的所有zone進(jìn)行內(nèi)存回收。這三種內(nèi)存回收雖然是在不同狀態(tài)下會被觸發(fā),但是如果當(dāng)內(nèi)存不足時,kswapd內(nèi)存回收和直接內(nèi)存回收很大可能是在并發(fā)的進(jìn)行內(nèi)存回收的。內(nèi)存回收的不同方式8快速/慢速內(nèi)存回收的內(nèi)核入口均為shrink_zone(),在此函數(shù)中,首先會遍歷memcg,根據(jù)memcg獲取lru鏈表描述符lruvec與swapiness,這個swapiness的值的范圍是0~200,它會影響掃描匿名頁lru鏈表和文件頁lru鏈表的頁框數(shù)量,當(dāng)此值越低時,就需要掃描的匿名頁lru鏈表的頁框越少,當(dāng)此值為0時,則不掃描匿名頁lru鏈表的頁框,相反,此值越高,則需要掃描的匿名頁lru鏈表的頁框越多,當(dāng)其為200時,則只掃描匿名頁lru鏈表中的頁框,不掃描文件頁lru鏈表中的頁框。然后調(diào)用shrink_lruvec()對此lru鏈表描述符的lru鏈表進(jìn)行掃描,最后遍歷完所有memcg后,判斷是否繼續(xù)對此zone進(jìn)行內(nèi)存回收。
內(nèi)存回收的不同方式9頁面回收的方式有頁回寫、頁交換和頁丟棄三種方式:對于匿名頁,內(nèi)存回收過程中會篩選出一些不經(jīng)常使用的匿名頁,將它們寫入到swap分區(qū)中,然后作為空閑頁框釋放到伙伴系統(tǒng)。而對于文件頁,內(nèi)存回收過程中也會篩選出一些不經(jīng)常使用的文件頁,如果此文件頁中保存的內(nèi)容與磁盤中文件對應(yīng)內(nèi)容一致,說明此文件頁是一個干凈的文件頁,就不需要進(jìn)行回寫,直接將此頁作為空閑頁框釋放到伙伴系統(tǒng)中,相反,如果文件頁保存的數(shù)據(jù)與磁盤中文件對應(yīng)的數(shù)據(jù)不一致,則認(rèn)定此文件頁為臟頁,需要先將此文件頁回寫到磁盤中對應(yīng)數(shù)據(jù)所在位置上,然后再將此頁作為空閑頁框釋放到伙伴系統(tǒng)中。內(nèi)存對匿名頁和文件緩存一共用了四條鏈表進(jìn)行組織,回收過程主要是針對這四條鏈表進(jìn)行掃描和操作。內(nèi)存回收的不同方式10整個掃描的過程分幾個循環(huán):首先掃描每個zone上的cgroup組;然后再以cgroup的內(nèi)存為單元進(jìn)行page鏈表的掃描;內(nèi)核會先掃描anon的active鏈表,將不頻繁的放進(jìn)inactive鏈表中,然后掃描inactive鏈表,將里面活躍的移回
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年采購合同變更協(xié)議
- 審計業(yè)務(wù)約定書模板
- 私人購房合同模板
- 深圳市房地產(chǎn)出租合同書
- 專業(yè)保證擔(dān)保合同大全
- 電視廣告代理權(quán)協(xié)議
- 住宅拆遷協(xié)議書
- 會計師會議協(xié)議書
- 2024版自愿離婚協(xié)議書寫作要點
- 西安市房地產(chǎn)轉(zhuǎn)讓合同-合同范本
- 互聯(lián)網(wǎng)發(fā)展靠創(chuàng)新 課件 2024-2025學(xué)年人教版(2024)初中信息科技七年級全一冊
- 患者溝通技巧
- 廣告?zhèn)惱韱栴}
- 十歲生日模板
- 期中檢測卷(試題)-2024-2025學(xué)年北師大版五年級上冊數(shù)學(xué)
- 北京盈科律師所管理制度
- 2024年宜賓人才限公司招聘高頻難、易錯點500題模擬試題附帶答案詳解
- 2024年國家國際發(fā)展合作署對外援助服務(wù)保障中心面向社會招聘工作人員6人歷年高頻難、易錯點500題模擬試題附帶答案詳解
- 2024年江西省高考地理真題(解析版)
- 九宮數(shù)獨200題(附答案全)
- 護士延續(xù)注冊體檢表
評論
0/150
提交評論