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