Calendar
数据载入中,请稍候......
Placard
数据载入中,请稍候......
Category
数据载入中,请稍候......
Latest Entries
数据载入中,请稍候......
Latest Comments
数据载入中,请稍候......
Last Messages
数据载入中,请稍候......
User Login
数据载入中,请稍候......
Links
Information
数据载入中,请稍候......
Search
Other


Welcome to my blog!
  建立虛擬記憶體裝置
 

第一種正規的方法是『直接再加一棵硬碟,並且將其中某個磁區規劃為 swap 的 filesystem 』, 呵呵

,說的容易,做起來更容易!實際的動作為:
1. 以『 fdisk /dev/hd[a-d] 』先建立一個 partition ,還記得 fdisk 怎麼做嗎?回去複習一下

吧!簡單的來說,就是先 (1)建立一個 partition,然後 (2)將該 partition 的 ID 改為 82 這一個

swap 的磁碟檔案格式代號就對 啦!這樣這一步驟就 OK 囉!
2. 以『 mkswap /dev/hd[a-d][1-16] 』的方式來將您剛剛建置出來的 partition 『格式化為

swap 的檔案格式』,很簡單吧!這樣就格式化 OK 囉!
3. 再來則是將 swap 啟動,啟動的指令為『 swapon /dev/hd[a-d][1-16] 』,這樣就能啟動了!

很簡單吧!這樣 swap 就自動加入到記憶體容量裡頭去了!
那麼如何將 swap 關掉呢?呵呵!很簡單呀!就是直接給他 swapoff 就對了!
那麼萬一我不想新增加一個磁區呢?可不可以使用 swap file 的方式來新增硬碟呀!當然可以囉! 而且

步驟還蠻簡單的呢!基本的流程就是:
1. 以 dd 指令來建立 swapfile ;
2. 以 mkswap 來將 swapfile 格式化為 swap 的檔案格式;
3. 以 swapon 來啟動該檔案,使成為 swap ;
4. 以 swapoff 來關閉該檔案!
嗯!多說無益!我們來實際的將您的主機系統上面新增 64MB 的虛擬記憶體吧!如果可能的話, 請您在

您的系統上面實際的操作一次底下的步驟,我想,您應該馬上會瞭解實際的操作流程的! (底下的步驟

是可以復原的!!別擔心,不過 mkswap 這個指令的下達要小心一點就是了!)
1. 使用 dd 這個指令來新增一個 64MB 的檔案在 /tmp 底下:
[root@linux ~]# dd if=/dev/zero of=/tmp/swap bs=4k count=1638216382+0 records in16382+0

records out# dd 這個指令是用來轉換檔案並且 copy 用的;#    if 指的是要被轉換的輸入檔案格式

/dev/zero 可以由 man zero 來查看內容;#    of 指的是輸出的檔案,我們將之輸出到 /tmp/swap 這

個檔案;#    bs 指的是一個磁區佔用幾個 kb ;#    count 指的是要使用多少個 bs ,所以最後的容

量為 bs*count = 4k * 16382 ~ 64MB
如上所述,我們將建立一個檔名為 /tmp/swap 的檔案,且其內容共有 64MB 左右大小的檔案;
2. 使用 mkswap 將 /tmp/swap 這個檔案格式化為 swap 的檔案格式:
[root@linux ~]# mkswap /tmp/swapSetting up swapspace version 1, size = 67096576 bytes# 請注

意,這個指令在下達的時候請『特別小心』,因為下錯字元控制,# 將可能使您的 filesystem 掛掉!

3. 使用 swapon 來將 /tmp/swap 啟動囉!
[root@linux ~]# free             total       used       free     shared    buffers    

cachedMem:         62524      60200       2324          0        716      19492-/+

buffers/cache:      39992      22532Swap:       127004       2620     124384[root@linux ~]#

swapon /tmp/swap# 不要懷疑!這樣就已經將虛擬記憶體增加 64 MB 囉!如果您需要每次都啟動該檔案

,那麼將 swapon /tmp/swap 寫入 /etc/rc.d/rc.local 當中即可![root@linux ~]# free            

total       used       free     shared    buffers     cachedMem:         62524      60240   

   2284          0        724      19492-/+ buffers/cache:      40024      22500Swap:      

192524       2620     189904

4. 使用 swapoff 關掉 swap file

备注:
    虛擬記憶體的限制
說實話,虛擬記憶體在目前的桌上型電腦來講,存在的意義已經不大了!這是因為目前的 x86 主機所含

的記憶體實在都太大了 (一般入門級至少也都有 256MB 了),所以,我們的 Linux 系統大概都用不到虛

擬記憶體 (swap) 這個玩意兒的。不過, 如果是針對伺服器或者是工作站這些常年上線的系統來說的話

,那麼,無論如何,swap 還是需要建立的。

因為 swap 主要的功能是當實體記憶體不夠時,則某些在記憶體當中所佔的程式會暫時被移動到 swap 當

中,讓實體記憶體可以被需要的程式來使用。另外,如果您的主機支援電源管理模式, 也就是說,您的

Linux 主機系統可以進入『休眠』模式的話,那麼, 運作當中的程式狀態澤會被紀錄到 swap 去,以作

為『喚醒』主機的狀態依據!。 另外,有某些程式在運作時,本來就會利用 swap 的特性來存放一些資

料段, 所以, swap 來是需要建立的!只是不需要太大!

不過, swap 在被建立時,是有限制的喔!
· 在核心 2.4.10 版本以後,單一 swap 量已經沒有 2GB 的限制了,
· 但是,最多還是僅能建立到 32 個 swap 的數量!
· 而且,由於目前 x86_64 (64位元) 最大記憶體定址到 64GB, 因此, swap 總量最大也是僅能

達 64GB 就是了!

 

[ 阅读全文 | 回复(0) | 引用通告 | 编辑

  Post  by  badboy 发表于 2006-9-12 11:46:53
发表评论:
数据载入中,请稍候......
数据载入中,请稍候......