資源描述:
《Linux管理員手冊(cè)(4)--內(nèi)存管理》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、Lint廈憎理員手冊(cè)(4)--內(nèi)存管理木章說(shuō)明Linux的內(nèi)存管理特征,即虛擬內(nèi)存和磁盤(pán)緩存。描述系統(tǒng)管理員應(yīng)該考慮的東西、工作和目的。什么是虛擬內(nèi)存?Linux支持虛擬內(nèi)存,就是使用磁盤(pán)作為RAM的擴(kuò)展,使可用內(nèi)存相應(yīng)地有效擴(kuò)大。核心把當(dāng)前不用的內(nèi)存塊存到碩盤(pán),騰出內(nèi)存給其他目的。當(dāng)原來(lái)的內(nèi)容又要使用時(shí),再讀回內(nèi)存。這對(duì)用戶全透明:運(yùn)行于Linux的程序只看到大量的可用內(nèi)存而不廿心哪部分在磁盤(pán)上。當(dāng)然,讀寫(xiě)硬盤(pán)比真的內(nèi)存慢(慢千倍),所以程序運(yùn)行較慢。用做虛擬內(nèi)存的這部分硬盤(pán)叫對(duì)換空間。Linux可以使用文件系統(tǒng)中的普通文件或單獨(dú)的分區(qū)作為對(duì)換空間。對(duì)換分區(qū)更快,但對(duì)換文件更易
2、于改變大小(無(wú)須對(duì)硬盤(pán)重分區(qū))。如果知道要多少對(duì)換空間,應(yīng)該用對(duì)換分區(qū);如果不能確認(rèn),可以先用對(duì)換文件,用一段時(shí)間后再根據(jù)所需空間建立對(duì)換分區(qū)。Linux允許同時(shí)使用多個(gè)對(duì)換分區(qū)和/或?qū)Q文件。即如果偶爾需要更多的對(duì)換空間,可以隨時(shí)建立一個(gè)額外的對(duì)換文件。產(chǎn)生對(duì)換空間對(duì)換文件是普通文件,對(duì)核心沒(méi)有什么特別的。唯一不同是它沒(méi)有孔,用mkswap準(zhǔn)備。必須在本地盤(pán)上,不能在通過(guò)NFSmount的文件系統(tǒng)中。關(guān)于孔,是重要的。對(duì)換文件保留了磁盤(pán)空間,使核心能快速對(duì)換出一頁(yè),而不必經(jīng)過(guò)如文件的定位磁盤(pán)扇區(qū)的全部事情。核心只用分配給這個(gè)文件的所有扇區(qū)。由于文件中的孔意味著沒(méi)有為文件中這個(gè)位
3、置分配磁盤(pán)扇區(qū),這對(duì)核心使用不利。產(chǎn)生沒(méi)有孔的對(duì)換文件的一個(gè)好辦法是通過(guò)如下命令:$ddif=/dev/zeroof=/extra-swapbs=1024count二10241024+0recordsin1024+0recordsout$/extra-swap是對(duì)換文件名,大小由count=給出.大小最好是4的倍數(shù),因?yàn)楹诵膶?xiě)出的內(nèi)存頁(yè)是4KB。如果不是4的倍數(shù),最后那幾KB將不可用。對(duì)換分區(qū)也沒(méi)什么特別。就象產(chǎn)生其他分區(qū)一樣產(chǎn)生;唯一的不同是它作為原始分區(qū)使用,即沒(méi)有任何文件系統(tǒng),最好將對(duì)換分區(qū)標(biāo)記為類型82(Linuxswap),雖然這對(duì)核心沒(méi)冇彩響,但這使分區(qū)列表更清晰。產(chǎn)
4、生對(duì)換文件或?qū)Q分區(qū)后,需要寫(xiě)個(gè)標(biāo)記起用它,這包括核心要用的-?些管理信息。命令是mkswap,用法如下:$mkswap/extra-swap1024Settingupswapspace,size=1044480bytes$注意對(duì)換空間現(xiàn)在還沒(méi)用,它存在,但核心還沒(méi)用它提供虛擬內(nèi)存。請(qǐng)一定小心使用mkswap,因?yàn)樗粰z查文件或分區(qū)是否被其他東西使用。你可能用mkswap很容易地覆蓋了重要文件和分區(qū)!幸好,你只需在你安裝系統(tǒng)時(shí)使用mkswap。Linux內(nèi)存管理限制了每個(gè)對(duì)換空間約為127MBC由于技術(shù)原因,實(shí)際限制是127.6875MB)??梢酝瑫r(shí)使用最多16個(gè)對(duì)換空間,總計(jì)差
5、不多2GB。使用對(duì)換空間用swapon將一個(gè)初始化的對(duì)換空間口J用。此命令告訴核心對(duì)換空間口J以用了,對(duì)換空間的路徑作為參數(shù),啟動(dòng)一個(gè)臨時(shí)對(duì)換文件可以用如卜?命令:$swapon/extra-swap$對(duì)換空間如果列入/etc/fstab,就可自動(dòng)使用。/dev/hda8noneswapsw00/swapfi1enoneswapsw00啟動(dòng)手稿運(yùn)行命令swapon-a,它將啟動(dòng)/etc/fstab中所列的所冇對(duì)換空間。因此swapon命令只有在啟動(dòng)額外的對(duì)換空間時(shí)才使用??梢杂胒ree監(jiān)視對(duì)換空間的使用,它將給出所有使用的對(duì)換空間。$freetotalusedfreeshared
6、buffersMem:1515214896256124042528-/+buffers:123682784Swap:32452668425768$前一行輸tB(Mem顯示物理內(nèi)存。Total列不顯示核心使用的物理內(nèi)存(通常大約1MB)。Used列顯示被使用的內(nèi)存總額(第二行不計(jì)緩沖)。Free列顯示全部沒(méi)使用的內(nèi)存。Shared列顯示多個(gè)進(jìn)程共享的內(nèi)存總額。Buffers列顯示磁盤(pán)緩存的當(dāng)前大小。后一行(Swap對(duì)對(duì)換空間,顯示的信息類似上面。如果這行為全0,那么沒(méi)使用對(duì)換空間。通過(guò)top,或使用proc文件系統(tǒng)的/proc/meminfo文件可以得到相同的信息。得到某個(gè)對(duì)換空間
7、的使用信息目前還比較困難??捎胹wapoff取消對(duì)換空間,一般不必這樣,除非是臨吋對(duì)換空間。對(duì)換空間中的要用的頁(yè)被換入(swap->RAM),如果沒(méi)有足夠的物理內(nèi)存,就被換出(RAM-〉sweip,到其他對(duì)換空間)。如杲?jīng)]有足夠的虛擬內(nèi)存放進(jìn)所有頁(yè)面,Linux將開(kāi)始震蕩(thrash);很長(zhǎng)時(shí)間以后應(yīng)該能恢復(fù),但此時(shí)系統(tǒng)不可用。取消一個(gè)對(duì)換空間前,應(yīng)該檢查(例如用free)是否有足夠的物理內(nèi)存。用swapon-a自動(dòng)使用的所有對(duì)換空間口J以用swapoff取消。它查看文件/ct