版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、虛擬內(nèi)存管理器(VMM)性能概述虛擬內(nèi)存管理器(VMM)性能概述虛擬地址空間劃分成段。每段的大小是256MB,它是虛擬內(nèi)存地址空間中一個(gè)鄰接的部分,數(shù)據(jù)對象可映射到該空間。進(jìn)程對數(shù)據(jù)的尋址能力按段(或?qū)ο螅┑募墑e進(jìn)行管理,所以段既可以在進(jìn)程間共享,也可以進(jìn)行專門維護(hù)。例如,進(jìn)程可共享代碼段但擁有獨(dú)立和專用的數(shù)據(jù)段。實(shí)際內(nèi)存管理虛擬內(nèi)存段劃分成固定大小的單元叫做頁。缺省頁面大小是4096字節(jié)。某些系統(tǒng)也支持大頁面,通常只能通過系統(tǒng)調(diào)用sh
2、mat訪問。段中的每頁在需要之前可位于實(shí)際內(nèi)存(RAM)中,或存儲在磁盤上。同樣,實(shí)際內(nèi)存也可以劃分成4096字節(jié)的頁面幀。VMM的角色是管理分配實(shí)際內(nèi)存頁面幀并且解析程序?qū)μ摂M內(nèi)存頁面的引用,這些頁面當(dāng)前不在實(shí)際內(nèi)存中或還不存在(例如,當(dāng)進(jìn)程第一次引用其數(shù)據(jù)段的某一頁時(shí))。因?yàn)樵谌魏谓o定時(shí)刻使用的虛擬內(nèi)存數(shù)量可能比實(shí)際內(nèi)存大,所以VMM必須將余量存儲在磁盤上。從性能的觀點(diǎn)來看,VMM有兩個(gè)稍微對立的目標(biāo):最小化使用虛擬內(nèi)存的總處理器時(shí)
3、間和磁盤帶寬代價(jià)最小化缺頁故障的響應(yīng)時(shí)間代價(jià)在跟蹤這些目標(biāo)時(shí),VMM維護(hù)一個(gè)頁面幀的空閑列表,它可用于補(bǔ)償缺頁故障。VMM使用了一個(gè)頁面替換算法來確定當(dāng)前處于內(nèi)存中的哪些虛擬內(nèi)存頁要將它們的頁面幀重新指定到空閑列表中。頁面替換算法使用了幾個(gè)機(jī)制:虛擬內(nèi)存段分成持久段或工作段。虛擬內(nèi)存段分成包含計(jì)算內(nèi)存或文件內(nèi)存。跟蹤在訪問時(shí)引起缺頁故障的虛擬內(nèi)存頁。缺頁故障分成新頁故障或重新調(diào)頁故障。在每個(gè)虛擬內(nèi)存段中維護(hù)一個(gè)重新調(diào)頁故障率的統(tǒng)計(jì)信息。
4、用戶可調(diào)閾值影響頁面替換算法的結(jié)果。以下各節(jié)較詳細(xì)地描述了空閑列表和頁面替換機(jī)制??臻e列表VMM維護(hù)一個(gè)空閑頁面幀的邏輯列表,它用于解決缺頁故障。在絕大多數(shù)環(huán)境中,VMM偶爾必須通過重新指定由運(yùn)行進(jìn)程占有的一些頁面幀來添加到空閑列表中。需要重新指定頁面幀的虛擬內(nèi)存頁由VMM的頁面替換算法進(jìn)行選擇。VMM閾值決定了重新指定的幀的數(shù)量。持久段與工作段對比持久段的頁面在磁盤上的存儲位置是永久性的。包含數(shù)據(jù)或可執(zhí)行程序的文件映射到持久段中。因?yàn)?/p>
5、持久段的每一頁都有永久的磁盤存儲位置,所以當(dāng)頁面被更改且不能再留在實(shí)際內(nèi)存中時(shí),VMM將該頁寫回到那個(gè)位置。當(dāng)頁面被選擇放置到空閑列表中時(shí),如果它沒有更改過則不需要IO操作。如果后來再次引用到該頁,那么就從它的永久磁盤存儲位置讀入一個(gè)新副本。工作段是暫時(shí)的,它們僅在由進(jìn)程使用時(shí)才存在,且沒有永久的磁盤存儲位置。進(jìn)程堆棧和數(shù)據(jù)區(qū)域映射到工作段,這一點(diǎn)和內(nèi)核文本段、內(nèi)核擴(kuò)展文本段、共享庫文本段和數(shù)據(jù)段相同。當(dāng)工作段的頁面不能保存在實(shí)際內(nèi)存中
6、時(shí),它們也必須占有磁盤存儲位置。磁盤調(diào)頁空間就是用于這個(gè)目的。下列插圖顯示某些類型的段和它們的頁面在磁盤上的位置之間的關(guān)系。它還顯示了頁面在實(shí)際內(nèi)存中時(shí)實(shí)際(專有)的位置。圖形持久和工作存儲段.該插圖顯示某些類型的段和它們的頁面在磁盤上的位置之間的關(guān)系。它還顯示了頁面在實(shí)際內(nèi)存中時(shí)實(shí)際(專有)的位置。工作段是暫時(shí)的,這意味著它們僅在由進(jìn)程使用時(shí)才存在并且沒有永久的磁盤存儲位置。進(jìn)程堆棧和數(shù)據(jù)區(qū)域映射到工作段,這一點(diǎn)和內(nèi)核文本段、內(nèi)核擴(kuò)展
7、文本段、共享庫文本段和數(shù)據(jù)段相同。當(dāng)工作段的頁面不能保存在實(shí)際內(nèi)存中時(shí),它們也必須占有磁盤存儲位置。磁盤調(diào)頁空間就是用于這個(gè)目的。引用)和重新調(diào)頁故障(引用已經(jīng)調(diào)出的頁)。然后它可以盡量平衡文件(持久數(shù)據(jù))頁面的調(diào)出和計(jì)算(工作存儲器或程序文本)頁面的調(diào)出。當(dāng)進(jìn)程退出時(shí),它的工作存儲器立刻釋放并且它的關(guān)聯(lián)內(nèi)存幀也放回到空閑列表中。然而由該進(jìn)程打開的任何文件可保留在內(nèi)存中。如果線程在單處理器上運(yùn)行,那么頁面替換可直接在線程作用域中進(jìn)行。在
8、多處理器系統(tǒng)中,頁面替換通過內(nèi)核進(jìn)程lrud進(jìn)行,在達(dá)到閾值minfree時(shí),該進(jìn)程被分派到CPU中。從AIX4.3.3開始,內(nèi)核進(jìn)程lrud是多線程的,每個(gè)存儲池中一個(gè)線程。根據(jù)CPU數(shù)量和RAM大小將實(shí)際內(nèi)存劃分成平均大小的存儲池。系統(tǒng)中存儲池的數(shù)量可通過運(yùn)行命令vmtuneA來確定。在AIX4.3.3和后續(xù)版本中,使用命令vmtunem更改存儲池?cái)?shù)量,這將在系統(tǒng)引導(dǎo)時(shí)進(jìn)行配置。數(shù)值minfree和maxfree在命令vmtune的
9、輸出中,它們是每個(gè)存儲池的minfree和maxfree的總和。重新調(diào)頁缺頁故障要么是新頁故障要么是重新調(diào)頁故障。如果沒有最近引用頁面的記錄的話,會出現(xiàn)一個(gè)新頁故障。而出現(xiàn)重新調(diào)頁故障是指一個(gè)知道其最近已經(jīng)引用的頁再次被引用,但由于該頁在上次訪問后已經(jīng)被替換(可能寫到磁盤上)而在內(nèi)存中找不到它。理想的頁面替換策略通過總是替換那些不會再次引用的頁面幀而完全減少重新調(diào)頁故障(假設(shè)有足夠的實(shí)際內(nèi)存)。因而重新調(diào)頁故障數(shù)是頁面替換算法有效性的一
10、個(gè)相反評測標(biāo)準(zhǔn),算法將頻繁被重用的頁面保存在內(nèi)存中,從而降低了總體IO需求并潛在地改善了系統(tǒng)性能。為了分清一個(gè)缺頁故障是新頁故障還是重新調(diào)頁故障,VMM維護(hù)一個(gè)重新調(diào)頁歷史記錄緩沖區(qū),它包含N個(gè)最近缺頁故障的頁面標(biāo)識,其中N是內(nèi)存可保留的幀數(shù)。例如,512MB內(nèi)存需要一個(gè)128KB的重新調(diào)頁歷史記錄緩沖區(qū)。在頁面調(diào)進(jìn)時(shí),如果它的標(biāo)識可在重新調(diào)頁歷史記錄緩沖區(qū)中找到,則將它計(jì)為一個(gè)重新調(diào)頁。VMM還可以分別評估計(jì)算內(nèi)存重新調(diào)頁率和文件內(nèi)存
11、重新調(diào)頁率,只需為每種類型的內(nèi)存維護(hù)重新調(diào)頁故障計(jì)數(shù)即可。每次頁面替換算法運(yùn)行時(shí)都將重新調(diào)頁率乘以0.9,這樣可比歷史重新調(diào)頁活動更有力地反映最近的重新調(diào)頁活動。VMM閾值幾個(gè)數(shù)字閾值定義了VMM的目標(biāo)。當(dāng)超出這些閾值中的一個(gè)時(shí),VMM會采取適當(dāng)?shù)牟僮鲗?nèi)存狀態(tài)恢復(fù)到限定范圍內(nèi)。本節(jié)討論的閾值可由系統(tǒng)管理員用命令vmtune進(jìn)行更改??臻e列表中頁面幀的數(shù)量受下列參數(shù)控制:minfree空閑列表中可接受的實(shí)際內(nèi)存頁面幀的最小數(shù)量。當(dāng)空閑列
12、表的大小低于這個(gè)數(shù)時(shí),VMM開始替換頁面。它將一直替換頁面直到空閑列表的大小達(dá)到maxfree。maxfree通過VMM頁面替換空閑列表可達(dá)到的最大大小。當(dāng)進(jìn)程終止并釋放它們的工作段頁面或刪除其頁面在內(nèi)存中的文件時(shí),結(jié)果是空閑列表的大小可能會超過這個(gè)數(shù)。VMM試圖保持空閑列表的大小大于或等于minfree。當(dāng)缺頁故障或系統(tǒng)需求導(dǎo)致空閑列表大小低于minfree時(shí),頁面替換算法就開始運(yùn)行。由于幾個(gè)原因,空閑列表的大小必須保持在某個(gè)級別之上
13、(缺省值是minfree)。例如,操作系統(tǒng)的順序預(yù)取算法每次需要幾個(gè)幀用于每個(gè)正在進(jìn)行順序讀取的進(jìn)程。而且VMM必須避免在操作系統(tǒng)自身內(nèi)部產(chǎn)生死鎖,如果沒有足夠的空間讀取需要釋放頁面幀的頁就可能出現(xiàn)這種情況。下列閾值以百分?jǐn)?shù)的形式表示。它們表示由文件頁面(非計(jì)算段的頁面)占有的機(jī)器全部實(shí)際內(nèi)存中的一部分。minperm如果由文件頁面占有的實(shí)際內(nèi)存的百分比低于這個(gè)級別,則頁面替換算法既替換文件頁面也替換計(jì)算頁面,而不管重新調(diào)頁率。maxp
14、erm如果由文件頁面占有的實(shí)際內(nèi)存的百分比高于這個(gè)級別,則頁面替換算法僅替換文件頁面。maxclient如果由文件頁面占有的實(shí)際內(nèi)存的百分比高于這個(gè)級別,則頁面替換算法僅替換客戶機(jī)頁面。當(dāng)由文件頁面占有的實(shí)際內(nèi)存的百分比處于minperm和maxperm之間時(shí),VMM通常只替換文件頁面,但是如果文件頁面的重新調(diào)頁率高于計(jì)算頁面的重新調(diào)頁率的話,計(jì)算頁面也被替換。頁面替換算法的主要意圖是確保計(jì)算頁面得到合理的待遇。例如,對于可能會很快再次
15、使用的程序文本頁,順序讀取長的數(shù)據(jù)文件到內(nèi)存中應(yīng)該不會使它們丟失。對閾值和重新調(diào)頁率使用頁面替換算法可確保合理地對待這兩種類型的頁面,但仍稍微偏向有利于計(jì)算頁面的一方。VMM內(nèi)存負(fù)載控制工具進(jìn)程需要實(shí)際內(nèi)存頁面才可以運(yùn)行。當(dāng)某進(jìn)程引用磁盤上的虛擬內(nèi)存頁面時(shí),由于該頁要么已經(jīng)調(diào)出要么從未讀取過,所以必須調(diào)進(jìn)所引用的頁面,而且一般來說,由于必須調(diào)出一個(gè)或多個(gè)頁面(如果被替換的頁已經(jīng)做過修改),從而引起IO流量并延遲了進(jìn)程的進(jìn)度。操作系統(tǒng)通過
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論