linux中swap交換分區分區設定教程

來源:互聯網
上載者:User

什麼是swap分區

交換區可是看作是記憶體的一部分,只是它是從硬碟中劃分出來的,它像windows下的虛擬記憶體,它的作用是快取資料,劃分它時,大小設成你的實體記憶體的大小的兩倍。

設定swap交換分區

交換分區的大小分配推薦法則

記憶體小於4GB時,推薦不少於2GB的swap空間;

記憶體4GB~16GB,推薦不少於4GB的swap空間;

記憶體16GB~64GB,推薦不少於8GB的swap空間;

記憶體64GB~256GB,推薦不少於16GB的swap空間。

1、以root許可權登入SSH,鍵入如下命令建立512M的swap檔案(1024 * 512MB = 524288).
dd if=/dev/zero of=/swapfile1 bs=1024 count=524288
2、建立Linux分頁檔
mkswap /swapfile1
3、立即啟用 /swapfile1分頁檔
swapon /swapfile1
4、設定系統自啟用分頁檔。編輯 /etc/fstab檔案,並增加如下第二行代碼。
vi /etc/fstab
/swapfile1 swap swap defaults 0 0
5、重啟系統,使用free -m查看swap大小。

Linux中查看swap的命令

可以用“cat /proc/swaps”、“swapon -s”、“free”等命令查看Swap分區的情況。

[root@jay-linux ~]# swapon  -s
Filename                                Type            Size    Used    Priority
/dev/sda3                               partition       2096120 840     -1
[root@jay-linux ~]# cat /proc/swaps
Filename                                Type            Size    Used    Priority
/dev/sda3                               partition       2096120 840     -1
[root@jay-linux ~]# free -m
             total       used       free     shared    buffers     cached
Mem:          7872       7280        592          0        429       5964
-/+ buffers/cache:        886       6986
Swap:         2046          0       2046
根據上面的例子,我其實該分配4GB的Swap空間,這裡示範的是2GB(可能不太符合Redhat的推薦值,因為本機使用記憶體量並不會太大,幾乎沒有使用Swap的情況)。

重新劃分Swap交換分區 

先執行一下fdisk -l查看一下裝置名稱和分區狀況

1、執行swapoff swap分區的裝置名稱 關閉分頁檔。
2、看到swap的裝置名稱刪除原來的swap分區,在建立一個swap分區。可以使用fdisk做此操作
如果對/dev/sda裝置進行分區操作:
fdisk /dev/sda
工具提示:
Command (m for help):
鍵入p
螢幕會列出當前所有的分區裝置號、大小、檔案格式等參數;
下面進行刪www.111cn.net除分區的操作:
工具提示:
Command (m for help):
鍵入d
工具提示:
Partition number (1-x):
x是您現有的分區數量,有兩個分區的話x就是2;刪除分區時從最後一個分區開始,鍵入2:
工具提示:
Command (m for help):
鍵入p
列出當前分區情況,發現sda2被刪除了;
繼續鍵入d,然後是1,再鍵入p,發現sda的分區都被刪除了;
工具提示:
Command (m for help):
鍵入w
儲存當前刪除的操作,回到主介面,如果/dev/sdb上也有分區,按照上面的方法刪除。
下面進行建立分區的操作:
fdisk /dev/sda
工具提示:
Command (m for help):
鍵入p
此時硬碟上應該沒有任何分區;
鍵入n
工具提示:
First cylinder (abcd-efgh, default abcd):
abcd和efgh都是數字,表示新分區起始的柱面數,直接鍵入斷行符號即可;
工具提示:
Last cylinder or +size or +sizeM or +sizeK (abcd-ijkl, default ijkl):
abcd和 ijkl也都是數字,這裡是要求定義分區的大小,如果要建立2G的空間,鍵入+2000M,如果要將後面所有空間都分出來,直接鍵入斷行符號即可;注意分區大
小的單位M和K一定要大寫!
工具提示:
Command (m for help):
鍵入p
發現已經建立了分區sda1,大小是2G
仿照上面的方法建立更多分區,可以用p查看,最後鍵入w儲存操作。
3、這樣重建swap之後,可以使用mkswap /dev/sda[x],其中的[x]代表的是你的第幾個分區。
4、啟用交換分區 swapon /dev/sda[x]
5、 想要在系統啟動時自動啟用此分頁檔,應該在 /etc/fstab 中加入如下一行:
/dev/sda[x] swap swap defaults 0 0
添加分頁檔並啟用它後,用 cat /proc/swaps 或 free 命令查看分頁檔是否
被成功啟用。

沒有swap交換分區分區的解決辦法(用檔案替代swap分區)

檔案系統      類型    容量  已用 可用 已用% 掛載點
/dev/sdb2     ext3    7.6G  555M  6.7G   8% /
/dev/sda1     ext3    466G  453G   13G  98% /home1
/dev/sdb7     ext3    4.8G  149M  4.4G   4% /tmp
/dev/sdb6     ext3    4.8G  1.6G  3.0G  35% /var
/dev/sdb5     ext3    5.7G  140M  5.3G   3% /swap
/dev/sdb3     ext3    5.7G  2.1G  3.4G  39% /usr
/dev/sdb1     ext3     99M   18M   77M  19% /boot
/dev/sdb8     ext3    437G  175G  262G  41% /home2
tmpfs        tmpfs    2.0G  2.2M  2.0G   1% /dev/shm

swap交換分區就根本用不了,由於此伺服器已經在跑業務了,不能隨便停機,更不能重裝系統。

[root@localhost ~]# free -m
             total       used       free     shared    buffers     cached
Mem:          3910       3886         23          0         16       1652
-/ buffers/cache:       2217       1692
Swap:            0          0          0

解決方案:

#製作一個swapfile檔案,需要root許可權
su
dd if=/dev/zero of=/swap/swapfile bs=4096 count=1310720
#說明:其中bs參數制定每次讀取及輸入多少個位元組。因為硬碟存取的最小單位為扇區,所以設定bs參數就相當於設定每個扇區的大小。我這裡設定為4096即4k。參數count則主要是用來設定可以使用扇區的數量。所以這個檔案所佔用的空間就是以上連個參數的乘積。www.111cn.net這裡需要注意的是,如果要增加swap檔案容量,一般是通過調整count參數來實現的,bs參數一般不動。看到我的/swap分區完全沒被使用,有5.3G剩餘空間,所有我建立了一個5G的swapfile檔案。

#格式化swapfile,同樣需要root許可權
mkswap /swap/swapfile

#啟用swap
swapon /swap/swapfile

#不想每次重啟後手動啟用swap就可以將掛載寫入/etc/fstab中 (因為我這個分區比較特殊,分區名稱相同,為保險起見,我沒寫入到fstab裡面)
/swap/swapfile swap swap defaults 0 0

#用free -m查看一下,swap設定已經生效了:
[root@localhost ~]# free -m             
             total       used       free     shared    buffers     cached
Mem:          3910       3885         25          0         21       1639
-/ buffers/cache:       2224       1686
Swap:         5119          0       5119

順利搞定。

當你實在不需要使用swap交換分區時 可是釋放掉swapfile
swapoff /swap/swapfile
rm -f /swap/swapfile

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.