Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux SWAP 空間動態擴容指南:文件法與分區法雙模式

編輯:Linux 教學

SWAP 空間不足會導致 OOM Killer 觸發、系統卡頓甚至服務崩潰。本文提供兩種擴容方案:分區法(永久、性能最優)與 文件法(靈活、無需重分區),並詳細說明持久化配置與驗證步驟。

方案一:文件法(推薦臨時/雲服務器/無法重分區場景)

1. 創建指定大小的 Swap 文件

# 創建 2G Swap 文件(bs=1M count=2048)
dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress

# 或使用 fallocate(瞬間創建,稀疏文件,部分文件系統不支持)
fallocate -l 2G /swapfile

2. 設置權限並格式化為 Swap

chmod 600 /swapfile          # 必須 600,否則 swapon 警告
mkswap /swapfile             # 寫入 Swap 簽名

3. 啟用 Swap

swapon /swapfile             # 立即生效
swapon --show                # 驗證
# NAME      TYPE  SIZE USED PRIO
# /swapfile file  2G   0B   -2

4. 永久掛載(寫入 /etc/fstab)

echo '/swapfile none swap sw 0 0' >> /etc/fstab

5. 調優 Swappiness(可選)

# 臨時
echo 10 > /proc/sys/vm/swappiness
# 永久
echo 'vm.swappiness=10' >> /etc/sysctl.conf
sysctl -p

swappiness=10 表示內存佔用 90% 以上才積極使用 Swap,適合內存充足的服務器;桌面環境建議 60。

方案二:分區法(裸金屬/重新分區場景,性能最優)

1. fdisk 創建 Swap 分區

fdisk /dev/sda
n          # 新建分區
p          # 主分區
# 選擇分區號、起止柱面
t          # 修改類型
82         # Linux swap (0x82)
w          # 寫入

2. 刷新分區表並格式化

partprobe /dev/sda
mkswap /dev/sdaX             # X 為新分區號

3. 啟用與永久掛載

swapon /dev/sdaX
echo '/dev/sdaX none swap sw 0 0' >> /etc/fstab

驗證與監控

free -h
#              total  used  free  shared buff/cache available
# Mem:          7.7G  2.1G  4.5G  120M   1.1G       5.2G
# Swap:         2.0G     0  2.0G

swapon -s
# Filename    Type  Size  Used  Priority
# /swapfile   file  2097148 0    -2
# /dev/sda3   part  4194300 0    -1

刪除 Swap 文件/分區

swapoff /swapfile
sed -i '/\/swapfile/d' /etc/fstab
rm -f /swapfile

避坑指南

坑點後果規避
文件權限非 600swapon 警告「insecure permissions」chmod 600 強制執行
fallocate 創建的稀疏文件在 Btrfs/ZFS 上無效實際佔用空間為 0,Swap 不工作統一用 dd 或確認文件系統支持
fstab 寫錯設備路徑開機進入 emergency 模式blkid 核對 UUID,推薦用 UUID=xxx 掛載
多 Swap 優先級未設置內核輪詢使用,SSD/HDD 混用性能抖動swapon -p 10 /dev/nvme0n1p3 設置高優先級(-1 最高)

總結

文件法適合「快速止血、雲盤不可分區」,分區法適合「長期穩定、追求極致 IO」。無論哪種,寫入 fstab、設置 swappiness、監控 Swap 使用率 三步不可少。

Copyright © Windows教程網 All Rights Reserved