當物理內存不足時,Swap 空間至關重要。本文詳細演示使用 dd 創建 Swap 文件、mkswap 格式化、swapon 啟用、swapoff 關閉、/etc/fstab 永久掛載的完整操作流程。
# 創建 128MB Swap 文件
dd if=/dev/zero of=/tmp/swap bs=1M count=128
# 輸出示例
128+0 records in
128+0 records out
134217728 bytes (134 MB) copied, 1.7066 seconds, 78.6 MB/s
# 驗證
ls -lh /tmp/swap
-rw-r--r-- 1 root root 128M Oct 28 15:33 /tmp/swap
if=/dev/zero:輸入全零流of=/tmp/swap:輸出文件路徑bs=1M count=128:塊大小 1MB,128 塊 = 128MB
mkswap /tmp/swap
# Setting up swapspace version 1, size = 134213 kB
⚠ 警告:mkswap 會破壞目標文件/分區數據,務必確認路徑正確。
# 查看當前 swap
free -h
# Swap: 1.2G 96K 1.2G
swapon /tmp/swap
# 再次查看
free -h
# Swap: 1.4G 96K 1.4G ← 增加了 128MB
# 查看所有 swap 設備
swapon -s
Filename Type Size Used Priority
/dev/hdc5 partition 1020088 96 -1
/tmp/swap file 131064 0 -3
swapoff /tmp/swap
free -h
# Swap: 1.2G 96K 1.2G ← 恢復原狀
# 編輯 fstab
vim /etc/fstab
# 添加一行
/tmp/swap none swap defaults 0 0
字段含義:<設備> <掛載點> <類型> <選項>
nonedefaults 即可,無需 rw 等選項
# 重新讀取 fstab 並掛載所有 swap
swapon -a
# 或
mount -a # 但 mount -a 不處理 swap,需配合 swapon -a
| 類型 | 優點 | 缺點 |
|---|---|---|
| 分區 | 性能穩定、無文件系統開銷、支持休眠 | 需預留分區、調整大小麻煩 |
| 文件 | 動態創建/刪除、大小靈活、無需重新分區 | 文件系統碎片影響性能、不支持休眠 |
/proc/sys/vm/swappiness (0-100):控制換出積極度,默認 60。服務器建議 10-30,桌面 60dd → mkswap → swapon → /etc/fstab 四步構建持久 Swap。文件適合臨時擴容,分區適合長期生產環境。