aix操作系統(tǒng)的內(nèi)存調(diào)度機(jī)制剖析_第1頁
aix操作系統(tǒng)的內(nèi)存調(diào)度機(jī)制剖析_第2頁
aix操作系統(tǒng)的內(nèi)存調(diào)度機(jī)制剖析_第3頁
aix操作系統(tǒng)的內(nèi)存調(diào)度機(jī)制剖析_第4頁
aix操作系統(tǒng)的內(nèi)存調(diào)度機(jī)制剖析_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、IBM AIX 操作系統(tǒng)的內(nèi)存調(diào)度機(jī)制剖析辛?xí)F系統(tǒng)服務(wù)事業(yè)部 201203)(摘要 作者根據(jù)自己多年的 AIX5L 系統(tǒng)管理的經(jīng)驗(yàn),從日常使用和管理角度出發(fā),深入淺出但又較為系統(tǒng)論述了 AIX5L 操作系統(tǒng)內(nèi)存調(diào)度機(jī)制,并對以往資料很少提及的Pagespace 和文件內(nèi)存的使用也做了重點(diǎn)剖析。本文對于 AIX 系統(tǒng)管理和AIX上的應(yīng)用開發(fā)了解和深入掌握AIX 系統(tǒng)均有較大幫助。 內(nèi)存(Memory) 頁面空間/內(nèi)存(Pagespace)內(nèi)存替換(Steal)內(nèi)存暫存(Pin)空余內(nèi)存(Free)0. 前言IBM 公司 UNIX 系統(tǒng)(AIXAdvancederactive Executive)

2、作為使UNIX 操作系統(tǒng)之一,其內(nèi)存的管理調(diào)度機(jī)制和其他用最成熟和廣泛的如Linux、HP 公司的 UNIX 系統(tǒng)(HP-UX)都有所不同,有其獨(dú)特之處。而如不對此有深刻了解,將會(huì)對其日常管理的各類內(nèi)存現(xiàn)象產(chǎn)生困惑和不解,如為什么空余的內(nèi)存總是非常少,為什么頁面空間(Pagespace)總是降不下來等等。深入剖析 AIX 的內(nèi)存調(diào)度機(jī)制,了解其特點(diǎn),對日常管理 AIX,通過各類命令調(diào)整內(nèi)存調(diào)度,最終使得系統(tǒng)最大限度利用資源、持久穩(wěn)定運(yùn)行都能有所幫助。1. 內(nèi)存概論AIX 的整個(gè)內(nèi)存按管理初步分為 4 類,(1)虛存(Vm),是所有進(jìn)程申請內(nèi)存的總和;(2)活動(dòng)虛存(Avm ),為目前所有進(jìn)程使

3、用內(nèi)存總和;(3)實(shí)存,為系統(tǒng)物理配置的內(nèi)存,又分為計(jì)算內(nèi)存、文件內(nèi)存(供文件讀寫)和空余內(nèi)存(Free);(4)頁面內(nèi)存(Pagespace),為系統(tǒng)擴(kuò)展到硬盤上的內(nèi)存,類似其他UNIX 系統(tǒng)的交換(Swap)空間,但機(jī)制又有所不同。虛存是目前所有進(jìn)程理論上的內(nèi)存總和,可用 ps gv 的所有進(jìn)程的數(shù)據(jù)節(jié)尺寸(SIZE)列和文本節(jié)尺寸(TSIZ)列簡單相加,予以接近,實(shí)際意義不大;活動(dòng)虛存為實(shí)存的計(jì)算內(nèi)存和頁面內(nèi)存的實(shí)際使用部分之和,可用 vms命令的avm 列看到,理想狀態(tài)為小于實(shí)存,否則就可能會(huì)產(chǎn)生內(nèi)存調(diào)進(jìn)調(diào)出。常說的機(jī)器內(nèi)存大小,用 topas 命令,prtconf 命令,svmon實(shí)

4、存就是命令等都可以看到;由于 AIX 的管理為盡量多使用內(nèi)存,只要進(jìn)程沒有退出就不會(huì),所以平時(shí)看到的空余內(nèi)存(Free)非常小,但并不表示內(nèi)存不夠使用。頁面內(nèi)存的使用情況可觀察到內(nèi)存最的情況,且為內(nèi)存使用的最后領(lǐng)地,頁面內(nèi)存滿了將直接導(dǎo)致系統(tǒng)不再接受新的進(jìn)程,如超過 npskill 閥值將進(jìn)行kill 調(diào)度。內(nèi)存替換及調(diào)度的最小為 4KB,vms示計(jì)算。命令,svmon 命令均按此顯此外從頁面替換的角度看,實(shí)存又分為鎖定內(nèi)存和可替換內(nèi)存;對于系統(tǒng)內(nèi)核和被頻繁使用的部分內(nèi)存,系統(tǒng)將標(biāo)記為鎖定(Pin),不參與頁面替換??捎?svmon G 命令觀察。對于計(jì)算內(nèi)存和文件內(nèi)存,可用topas 命令簡

5、單直觀的看到。2. 內(nèi)存分配可以從一個(gè)程序開始運(yùn)行變?yōu)檫M(jìn)程后退出的整個(gè)過程來充分理解 AIX的內(nèi)存分配機(jī)制:2.1開始運(yùn)行開始運(yùn)行時(shí),AIX 有一系列動(dòng)作要完成,如申請等等,這里只對內(nèi)存的變化作一簡單論述。開始就會(huì)有兩個(gè)部分產(chǎn)生,共享內(nèi)存(如對于 Oracle 數(shù)據(jù)庫進(jìn)程,這是主要部分)和私有內(nèi)存,又各自分為工作段、文本段等內(nèi)存段(內(nèi)存段具體可參見資料AIX5L V5.2 命令參考大全,卷 5的 svmon 命令部分)??傊诔绦蛘嬲\(yùn)行之前,就會(huì)耗掉一部分內(nèi)存存放代碼、文件等信息,當(dāng)然這部分對內(nèi)存的消耗有限, 假設(shè)空余空間(Free)足夠分配,方便下面剖析。2.2 申請內(nèi)存程序開始運(yùn)行,需要

6、申請內(nèi)存存放數(shù)據(jù),如果空余空間足夠,就直接分配;如果分配過程中少于minfree 閥值,系統(tǒng)就會(huì)掃描內(nèi)存,按預(yù)定的頁面調(diào)度算法(具體可參見AIX 性能管理指南內(nèi)存頁面替換算法),要么逐步替換(Steal)文件內(nèi)存,最終文件內(nèi)存降到 minperm 閥值;要么產(chǎn)生頁面調(diào)出(Page Out),將其它進(jìn)程的使用內(nèi)存趕到頁面空間(Pagespace)里。最終滿足內(nèi)存申請,值,大于minfree 閥值。2.3 使用free 內(nèi)存小于 maxfree 閥原則上頻繁使用時(shí),使用的內(nèi)存將被暫存(Pin),不受頁面替換調(diào)度影響。但如此時(shí)使用不頻繁而內(nèi)存緊張,此時(shí)仍有可能被趕到頁面空間(Pagespace)里。

7、2.4內(nèi)存當(dāng)程序使用內(nèi)存結(jié)束,調(diào)用 free()程序內(nèi)存時(shí),內(nèi)存不會(huì)真正馬上換。但相應(yīng)頁面做有標(biāo)記,在頁面調(diào)度算法中將優(yōu)先給其它進(jìn)程替2.5 再次申請內(nèi)存當(dāng)程序再次申請內(nèi)存,一般上次申請的內(nèi)存還未調(diào)出實(shí)存,如果本次申請小于上次,系統(tǒng)不再分配,只需使用,替換標(biāo)記有所變化;當(dāng)申請大小大于上次,則同樣按申請?jiān)矸峙湓龆嗖糠帧?.6 再次內(nèi)存同樣,當(dāng)程序使用內(nèi)存結(jié)束,調(diào)用free()程序內(nèi)存時(shí),內(nèi)存不會(huì)真正馬上程替換。但相應(yīng)頁面做有標(biāo)記,在頁面調(diào)度算法中將優(yōu)先給其它進(jìn)2.7 讀寫大的文件當(dāng)程序讀寫大的文件時(shí),先檢查文件內(nèi)存里是否已有,有則使用,否則將占用文件內(nèi)存,根據(jù)頁面替換算法仍然可能發(fā)生頁面調(diào)出(

8、Page Out),將其它進(jìn)程內(nèi)存趕到頁面空間(Pagespace)。當(dāng)文件內(nèi)存超過 maxperm 閥值時(shí)仍然還在讀寫,則擠掉其它文件或網(wǎng)絡(luò)文件系統(tǒng)( Network FileSystem)的客戶端(cnt)內(nèi)存。此外需要特別一提的是, 網(wǎng)絡(luò)文件系統(tǒng)(NFS)的客戶端(cnt)內(nèi)存也是文件內(nèi)存的一部分,由 maxcnt 閥值控制。2.8 休眠或等待當(dāng)程序內(nèi)存后處于休眠等待等狀態(tài)時(shí),隨著時(shí)間的推移,曾為其分配的內(nèi)存將最有可能成為被替換的對象。2.9 退出當(dāng)進(jìn)程正常退出或被 kill 掉時(shí),其曾使用的數(shù)據(jù)和代碼等內(nèi)存將完全釋放,包括頁面空間(Pagespace)部分,但文件內(nèi)存保留。此時(shí),空閑空

9、間(FREE)大小可能超過maxfree 閥值。當(dāng)然,實(shí)際系統(tǒng)調(diào)度時(shí)更為復(fù)雜,內(nèi)存調(diào)度也主要受以下內(nèi)存參數(shù)的約束,這里僅從我個(gè)人理解作一說明,詳細(xì)解釋可看相關(guān)資料:minfree:當(dāng)系統(tǒng)需要分配內(nèi)存而空閑空間又小于此值,系統(tǒng)將調(diào)用頁面替換,直到大于此值。缺省 120,即 480KB。maxfree:當(dāng)系統(tǒng)頁面調(diào)換時(shí),發(fā)現(xiàn)空閑空間已大于此值,將停止。缺省 128,即 512KB。minperm: 當(dāng)系統(tǒng)的文件內(nèi)存百分比小于此值,替換算法將同時(shí)替換文件頁和計(jì)算頁。缺省為 20%。maxperm: 當(dāng)系統(tǒng)的文件內(nèi)存大于此值,替換算法將只替換文件頁。缺省為80%。strict_maxperm:當(dāng)設(shè)為

10、1 時(shí),文件內(nèi)存將絕對不會(huì)超過 maxperm 閥值,缺省為 0。maxcnt: 作為 NFS 的cnt 使用的文件內(nèi)存空間。缺省 20%。 maxpin: 不受替換算法影響的暫存/鎖定內(nèi)存(pin)總數(shù)。以上參數(shù),AIX5.1 及之前 AIX4.3,可用/usr/sles/kernel/vmtune 命令來調(diào)整,需要生效,須寫入系統(tǒng)啟動(dòng)。AIX5.2 之后可用vmo 命令,加-p 即可成為生效。從以上論述,就不難理解,為什么 AIX 里看內(nèi)存的使用總是滿滿的,這是因?yàn)榧词沽藘?nèi)存,只要進(jìn)程不退出,就不會(huì)真正變成空閑空間(Free)的,也就看不到這部分空余內(nèi)存。這也是和 Liunx 等 UNIX

11、 系統(tǒng)的明顯區(qū)別所在。3. 頁面空間(Pagespace)調(diào)度對于 AIX 的Pagespace 的使用,在 AIX5.3 以前,基本是系統(tǒng)自身來調(diào)控。設(shè)定當(dāng)內(nèi)存緊張時(shí),接近 minfree 閥值作為情形來做說明:發(fā)生內(nèi)存申請。如果文件內(nèi)存在minperm 和maxperm 之間,將優(yōu)先文件內(nèi)存,也同時(shí)按替換算法將各個(gè)進(jìn)程的內(nèi)存部分調(diào)出到 pagespace;當(dāng)文件內(nèi)存少于 minperm,將優(yōu)先將各個(gè)進(jìn)程的內(nèi)存部分調(diào)出。如調(diào)出部分以前沒有調(diào)出過,這時(shí)將占用頁面空間(Pagespace),此時(shí) pagespace 使用比例增加;如占用部分以前就調(diào)出過,則檢查變化,無變化就只標(biāo)記,變化則更新,占

12、用比例將不變。進(jìn)程進(jìn)行大的文件讀寫和NFS 讀寫。這時(shí)如果系統(tǒng)文件內(nèi)存沒到maxperm閥值,且以前未讀寫過此文件,系統(tǒng)按替換算法同時(shí)減少其它文件所占內(nèi)存和將其它進(jìn)程的計(jì)算內(nèi)存調(diào)出到頁面空間(Pagespace) ,可以看到文件內(nèi)存占實(shí)存比例逐漸增加,頁面空間(Pagespace)也同樣按上面原則,可能同時(shí)增加。3.3 占用大內(nèi)存的進(jìn)程退出。當(dāng)大進(jìn)程退出時(shí),可以看到實(shí)存的空余內(nèi)存(Free)值增加一大塊,但頁面空間(Pagespace)卻不一定有明顯變化。這又有 3 種情況:1)大的文件讀寫結(jié)束時(shí),文件內(nèi)存減少,頁面空間(Pagespace)沒有變化。當(dāng)然隨著時(shí)間的推移,其他進(jìn)程調(diào)用時(shí),頁面空

13、間(Pagespace)內(nèi)容回調(diào),空余內(nèi)存(Free)會(huì)逐步減少,但頁面空間(Pagespace)內(nèi)容仍保留。2)如果該進(jìn)程運(yùn)行也無變化。就退出,從未被調(diào)出過,則頁面空間(Pagespace)3)只有當(dāng)該進(jìn)程曾被調(diào)出過,頁面空間(Pagespace)將會(huì)減少曾調(diào)出部分的大小。綜上所述,就不難理解,何時(shí)頁面空間(Pagespace)才能下降,即只有被調(diào)出過的占用頁面空間(Pagespace)的進(jìn)程退出時(shí)才會(huì)下降。當(dāng)然,我也發(fā)現(xiàn)了一個(gè)辦法,新開一個(gè)頁面空間(Pagespace),然后用 swapoff 命令關(guān)閉原來的一個(gè),再用 swapon 命令激活,這樣來回是比較有效的辦法。也會(huì)降下來,在 AI

14、X5.3 前也令人欣喜的是,AIX5.3增加了對頁面空間(Pagespace)的管理,有了垃圾回收(Garbage Collection)的概念。并增加了一系列參數(shù)來調(diào)整頁面空間(Pagespace)的管理,限于篇幅,具體可可以參考ioo令幫助,或參考AIX5.3的相關(guān)資料。對此我也曾做過試驗(yàn),的確可以使得進(jìn)程回調(diào)內(nèi)存后,立刻面空間(Pagespace)的占用。頁4. 文件內(nèi)存文件內(nèi)存由內(nèi)存(Pers )和客戶端內(nèi)存(Cnt)組成,不計(jì)算在活動(dòng)虛存(Avm)里,平時(shí)用 vms命令無法看到,用 topas 命令,svmon 命令可看出。以文件系統(tǒng)使用過程剖析這個(gè)問題:文件系統(tǒng)裝載成功:文件系統(tǒng)裝

15、載(mount)時(shí),實(shí)際有三個(gè)可能:使用文件內(nèi)存,這時(shí)缺省方式,對于絕大多數(shù)類型文件系統(tǒng)適用。不使用文件內(nèi)存,需要加 dio 參數(shù),即直接讀寫。適用內(nèi)存較少,或讀寫特殊的文件系統(tǒng)。筆者曾遇到 hyperion essbase 所在文件系統(tǒng)要用此參數(shù),否則性能反而下降。該參數(shù)對文件系統(tǒng)日常備份的性能影響非常明顯。3)是網(wǎng)絡(luò)文件系統(tǒng)(NFS)的話,將使用客戶端(c4.2 進(jìn)程使用該文件系統(tǒng)nt)文件內(nèi)存。當(dāng)進(jìn)程開始讀寫該文件系統(tǒng)上的文件,文件內(nèi)存就開始使用,如果該文件第一次被讀寫,則進(jìn)程將申請到一塊文件內(nèi)存,用作高速緩存(cache),速度較慢。進(jìn)程退出后,該內(nèi)存仍不常明顯。,以后再有進(jìn)程讀寫,則使用,速度提高非當(dāng)內(nèi)存緊張時(shí),很久不用的文件內(nèi)存將優(yōu)先被4.3 文件系統(tǒng)卸載。文件系統(tǒng)卸載(unmount)時(shí),與其相關(guān)的文件內(nèi)存將全部干凈,這也是為什么大文件系統(tǒng)卸載比較費(fèi)時(shí)的原因。這部分內(nèi)存即使沒人使用也不會(huì)自動(dòng)。綜上可以看到,如果內(nèi)存寬裕,就無須調(diào)配 minperm 閥值和 maxperm閥值,這樣可以充分發(fā)揮文件內(nèi)存的優(yōu)勢,提高I/O 的性能。如果內(nèi)存緊張,可調(diào)低ma

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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

提交評論