日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

4 Linux管理員手冊--內(nèi)存管理

本章說明Linux的內(nèi)存管理特征,即虛擬內(nèi)存和磁盤緩存 。描述系統(tǒng)管理員應該考慮的東西、工作和目的 。

什么是虛擬內(nèi)存?

Linux支持虛擬內(nèi)存, 就是使用磁盤作為RAM的擴展,使可用內(nèi)存相應地有效擴大 。核心把當前不用的內(nèi)存塊存到硬盤,騰出內(nèi)存給其他目的 。當原來的內(nèi)容又要使用時,再讀回內(nèi)存 。這對用戶全透明:運行于Linux的程序只看到大量的可用內(nèi)存而不甘心哪部分在磁盤上 。當然,讀寫硬盤比真的內(nèi)存慢(慢千倍),所以程序運行較慢 。用做虛擬內(nèi)存的這部分硬盤叫 對換空間 。

Linux可以使用文件系統(tǒng)中的普通文件或單獨的分區(qū)作為對換空間 。對換分區(qū)更快,但對換文件更易于改變大小(無須對硬盤重分區(qū)) 。如果知道要多少對換空間,應該用對換分區(qū);如果不能確認,可以先用對換文件,用一段時間后再根據(jù)所需空間建立對換分區(qū) 。

Linux允許同時使用多個對換分區(qū)和/或?qū)Q文件 。即如果偶爾需要更多的對換空間,可以隨時建立一個額外的對換文件 。

產(chǎn)生對換空間

對換文件是普通文件,對核心沒有什么特別的 。唯一不同是它沒有孔,用 mkswap 準備 。必須在本地盤上,不能在通過NFS mount的文件系統(tǒng)中 。

關(guān)于孔,是重要的 。對換文件保留了磁盤空間,使核心能快速對換出一頁,而不必經(jīng)過如文件的定位磁盤扇區(qū)的全部事情 。核心只用分配給這個文件的所有扇區(qū) 。由于文件中的孔意味著沒有為文件中這個位置分配磁盤扇區(qū),這對核心使用不利 。

產(chǎn)生沒有孔的對換文件的一個好辦法是通過如下命令:

$ dd if=/dev/zero of=/extra-swap bs=1024 count=1024
1024 0 records in
1024 0 records out
$
/extra-swap 是對換文件名,大小由count=給出. 大小最好是4的倍數(shù),因為核心寫出的內(nèi)存頁是4KB 。如果不是4的倍數(shù),最后那幾KB將不可用 。

對換分區(qū)也沒什么特別 。就象產(chǎn)生其他分區(qū)一樣產(chǎn)生;唯一的不同是它作為原始分區(qū)使用,即沒有任何文件系統(tǒng),最好將對換分區(qū)標記為類型82(Linux swap),雖然這對核心沒有影響,但這使分區(qū)列表更清晰 。

產(chǎn)生對換文件或?qū)Q分區(qū)后,需要寫個標記起用它,這包括核心要用的一些管理信息 。命令是 mkswap , 用法如下:

$ mkswap /extra-swap 1024
Setting up swapspace, size = 1044480 bytes
$

注意對換空間現(xiàn)在還沒用,它存在,但核心還沒用它提供虛擬內(nèi)存 。

請一定小心使用mkswap , 因為它不檢查文件或分區(qū)是否被其他東西使用 。你可能用mkswap 很容易地覆蓋了重要文件和分區(qū)! 幸好,你只需在你安裝系統(tǒng)時使用mkswap。

Linux內(nèi)存管理限制了每個對換空間約為127MB(由于技術(shù)原因,實際限制是127.6875MB) ??梢酝瑫r使用最多16個對換空間,總計差不多2GB 。
使用對換空間

用swapon 將一個初始化的對換空間可用 。此命令告訴核心對換空間可以用了,對換空間的路徑作為參數(shù),啟動一個臨時對換文件可以用如下命令:

$ swapon /extra-swap
$


對換空間如果列入/etc/fstab,就可自動使用 。

/dev/hda8 none swap sw 0 0
/swapfile none swap sw 0 0

啟動手稿運行命令swapon -a, 它將啟動/etc/fstab 中所列的所有對換空間 。因此swapon 命令只有在啟動額外的對換空間時才使用 。
可以用free 監(jiān)視對換空間的使用,它將給出所有使用的對換空間 。

$ free
total used free shared buffers
Mem: 15152 14896 256 12404 2528
-/buffers: 12368 2784
Swap: 32452 6684 25768
$

前一行輸出(Mem:)顯示物理內(nèi)存 。Total列不顯示核心使用的物理內(nèi)存(通常大約1MB) 。Used列顯示被使用的內(nèi)存總額(第二行不計緩沖) 。Free列顯示全部沒使用的內(nèi)存 。Shared列顯示多個進程共享的內(nèi)存總額 。Buffers列顯示磁盤緩存的當前大小 。

推薦閱讀