在 Linux 當中,若是您須要使用到很大量的虛擬內存,恰恰當初給的 swap 扇區不夠大,那要怎麼辦呢? 有什麼方法能夠來達成:
• 設定一個 swap partition ?
• 創建一個虛擬內存的檔案?
基本上,虛擬內存就是將硬盤規劃出一個區間,讓內存的數據能夠經由硬盤來讀取罷了, 那麼若是有 swap file 也就夠了對不對!是呀!因此這裏咱們使用兩種方法來嘗試創建一下 swap 的擴增吧! 另外, swap 的創建其實也很簡單啊!一樣的須要先創建出 swap 這個裝置或者是檔案後, 將他格式化成爲 swap 的格式,最後將他掛載到系統上便可!linux
創建虛擬內存檔案
1. 使用 dd 這個指令來新增一個 64MB 的檔案在 /tmp 底下:
[root@linux ~]# dd if=/dev/zero of=/tmp/swap bs=4k count=16382
16382+0 records in
16382+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/swap
Setting up swapspace version 1, size = 67096576 bytes
# 請注意,這個指令在下達的時候請『特別當心』,由於下錯字元控制,
# 將可能使您的 filesystem 掛掉!
3. 使用 swapon 來將 /tmp/swap 啓動囉!
[root@linux ~]# free
total used free shared buffers cached
Mem: 62524 60200 2324 0 716 19492
-/+ buffers/cache: 39992 22532
Swap: 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 cached
Mem: 62524 60240 2284 0 724 19492
-/+ buffers/cache: 40024 22500
Swap: 192524 2620 189904
4. 使用 swapoff 關掉 swap file
[root@linux ~]# swapoff /tmp/swapspa