歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux管理 >> Linux維護 >> Linux設置swap交換分區的步驟

Linux設置swap交換分區的步驟

日期:2017/3/2 10:26:50   编辑:Linux維護

很多人對Linux的swap交換分區不了解,不知道什麼是swap交換分區,下面小編將針對什麼是swap分區及swap分區的設置給大家做個簡單的介紹,想要設置swap分區的朋友不妨來了解下。

一、什麼是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

屏幕會列出當前所有的分區設備號、大小、文件格式等參數;

下面進行刪除分區的操作:

屏幕提示:

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則主要是用來設置可以使用扇區的數量。所以這個文件所占用的空間就是以上連個參數的乘積。這裡需要注意的是,如果要增加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

上面就是Linux設置swap交換分區的方法介紹了,本文對查看swap分區的命令及swap分區的重新劃分也做了一定的講解,即便你的系統沒有swap分區也能通過文件來替代。

Copyright © Linux教程網 All Rights Reserved