相比較而言,Windows 不會為 swap 單獨劃分一個分割區,而是使用分頁檔案實現相同的功能,在概念上,Windows 稱其為虛擬記憶體,從某種意義上將,這個叫法更容易理解。因此,初學者將 swap 交換分割區理解為虛擬記憶體是沒有任何問題的。
具體使用多大的 swap 分割區,取決於實體記憶體大小和硬碟的容量。一般來講,swap 分割區容量應大於實體記憶體大小,建議是記憶體的兩倍,但不超過 2GB。但是,有時伺服器的存取量確實很大,有可能出現 swap 分割區不夠用的情況,所以我們需要學習 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.
[[email protected] ~]# mkswap /dev/sdb1
Setting up swapspace version 1, size = 522076 KiB
no label, UUID=c3351 dc3-f403-419a-9666-c24615e170fb
[[email protected]t ~]#free
total used free shared buffers cached
Mem: 1030796 130792 900004 0 15292 55420
-/+ buffers/cache: 60080 970716
Swap: 2047992 0 2047992
[[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
[[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。