1. 程式人生 > >Linux檔案系統管理 swap分割槽及作用

Linux檔案系統管理 swap分割槽及作用

概述

在安裝系統的時候已經建立了 swap 分割槽。swap 分割槽是 Linux 系統的交換分割槽,當記憶體不夠用的時候,我們使用 swap 分割槽存放記憶體中暫時不用的資料。也就是說,當記憶體不夠用時,我們使用 swap 分割槽來臨時頂替。
在記憶體較小的情況下建議 swap 分割槽的大小是記憶體的兩倍,但不超過 2GB。但是有時伺服器的訪問量確實很大,有可能出現 swap 分割槽不夠用的情況,所以我們需要學習 swap 分割槽的構建方法。建立新的 swap 分割槽,只需要執行以下幾個步驟。

1. 分割槽:不管是 fdisk 命令還是 parted 命令,都需要先區。

2. 格式化:格式化命令稍有不同,使用 mkswap 命令把分割槽格式化成 swap 分割槽。

3. 使用 swap 分割槽。

分割槽

命令如下:

[[email protected] ~]# fdisk /dev/sdb
#以/dev/sdb分割槽為例
WARNING: DOS-compatible mode is deprecated.It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u').
Command (m for
help): n #新建 Command action e extended p primary partition (1-4) P #主分割槽 Partition number (1-4): 1 #分割槽編號 First cylinder (1-2610, default 1): #起始柱面 Using default value 1 Last cylinder, +cylinders or +size{K, M, G} (1-2610, default 2610): +500M #大小 Command (m for help): p #檢視一下 Disk /dev/sdb: 21.5GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 *512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes 1512 bytes Disk identifier: OxOOOOOebd Device Boot Start End Blocks Id System /dev/sdb1 1 65 522081 83 Linux #剛分配的分割槽ID是83,是Linux分割槽,我們在這裡要分配swap分割槽 Command (m for help): t #修改分割槽的系統ID Selected partition 1 #只有一個分割槽,所以不用選擇分割槽了 Hex code (type L to list codes): 82 #改為swap分割槽的ID Changed system type of partition 1 to 82 (Linux swap / Solaris) Command (m for help): p #再査看一下 Disk /dev/sdb: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 *512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes 1512 bytes Disk identifier: OxOOOOOebd Device Boot Start End Blocks Id System /dev/sdb1 1 65 522081 82 Linux swap / Solaris #修改過來了 Command (m for help): w #記得儲存退出 The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.

仍以 /dev/sdb 分割槽作為實驗物件。不過,如果分割槽剛剛使用 parted 命令轉變為 GPT 分割槽表,則記得轉換回 MBR 分割槽表,fdisk 命令才能識別;否則乾脆新新增一塊硬碟做實驗。

格式化

因為要格式化成 swap 分割槽,所以格式化命令是 mkswap。命令如下:

[[email protected] ~]# mkswap /dev/sdb1
Setting up swapspace version 1, size = 522076 KiB
no label, UUID=c3351 dc3-f403-419a-9666-c24615e170fb

使用swap分割槽

在使用 swap 分割槽之前,我們先來說說 free 命令。命令如下:

[[email protected] ~]#free
total used free shared buffers cached
Mem: 1030796 130792 900004 0 15292 55420
-/+ buffers/cache: 60080 970716
Swap: 2047992 0 2047992

free 命令主要是用來査看記憶體和 swap 分割槽的使用情況的,其中:

total used free shared buffers cached
指總數 指總數 指總數 指共享的 指緩衝記憶體數 指快取記憶體數,單位是KB

buffers(緩衝)和 cached(快取)的區別:cached 是給讀取資料時加速的,buffers 是給寫入資料加速的。cached 是指把讀取出來的資料儲存在記憶體中,當再次讀取時,不用讀取硬碟而直接從記憶體中讀取,加速了資料的讀取過程;buffers 是指在寫入資料時,先把分散的寫入操作儲存到記憶體中,當達到一定程度後再集中寫入硬碟,減少了磁碟碎片和硬碟的反覆尋道,加速了資料的寫入過程。

我們已經看到,在載入進新的 swap 分割槽之前,swap 分割槽的大小是 2000MB,接下來只要加入 swap 分割槽就可以了,使用命令 swapon。命令格式如下:

[[email protected] ~]# swapon 分割槽裝置檔名

例如:

[[email protected] ~]# swapon /dev/sdb1
swap分割槽已加入,我們檢視一下。
[[email protected] ~]#free
total used free shared buffers cached
Mem: 1030796 131264 899532 0 15520 55500
-/+ buffers/cache: 60244 970552
Swap: 2570064 0 2570064

swap 分割槽的大小變成了 2500MB,載入成功了。如果要取消新加入的 swap 分割槽,則也很簡單,命令如下:

[[email protected] ~]# swapoff /dev/sdb1

如果想讓 swap 分割槽開機之後自動掛載,就需要修改 /etc/fstab 檔案,命令如下:

[[email protected] ~]#vi /etc/fstab
UUID=c2ca6f57-b15c-43ea-bca0-f239083d8bd2 / ext4 defaults 1 1
UUID=0b23d315-33a7-48a4-bd37-9248e5c443451 boot ext4 defaults 1 2
UUID=4021be19-2751-4dd2-98cc-383368c39edb swap swap defaults 0 0
tmpfs /dev/shm
tmpfs defaults 0 0
devpts /dev/pts
devpts gid=5, mode=620 0 0
sysfs /sys
sysfs defaults 0 0
proc /proc
proc defaults 0 0
/dev/sdb1 swap swap
defaults 0 0
#加入新swap分割槽的相關內容,這裡直接使用分割槽的裝置檔名,也可以使用UUID。