RockyLinux9 By SystemArch_Alex

Rocky Linux 9 基礎教學 (25):虛擬記憶體 Swap 配置與管理實務

系統穩定性的最後一道防線

Swap (交換空間) 是 Linux 系統在實體記憶體 (RAM) 不足時,將暫時不常用的資料移至硬碟的一種機制。雖然硬碟的速度遠慢於 RAM,但適當的 Swap 配置可以防止系統在記憶體耗盡時觸發 OOM Killer (Out of Memory Killer) 而導致關鍵服務崩潰。在 Rocky Linux 9 中,我們可以靈活地使用 Swap 分區或 Swap 檔案。

1. 檢查目前的 Swap 狀態

在開始配置前,先確認系統是否已有 Swap:

swapon --show
free -h
2. 建立 Swap 檔案 (推薦方式)

相比於調整硬碟分區,建立 Swap 檔案更加彈性且不需要重開機。假設我們要建立一個 4GB 的 Swap 檔案:

# 建立一個 4GB 的空檔案 (使用 fallocate 速度最快)
sudo fallocate -l 4g /swapfile

# 設定正確的權限 (極其重要,防止其他使用者讀取記憶體內容)
sudo chmod 600 /swapfile

# 將檔案格式化為 Swap 格式
sudo mkswap /swapfile

# 啟用 Swap 檔案
sudo swapon /swapfile
3. 設定開機自動掛載

編輯 /etc/fstab,在檔案末尾加入以下內容:

/swapfile swap swap defaults 0 0
4. 調優 Swappiness 參數

swappiness 決定了核心使用 Swap 的積極程度,數值範圍為 0-100。對於伺服器,建議設為 10,代表優先使用實體記憶體:

sudo sysctl vm.swappiness=10
# 永久生效請寫入 /etc/sysctl.d/99-custom.conf
5. 移除 Swap 檔案

若未來增加了實體記憶體而不再需要 Swap 檔案,可按以下步驟移除:

sudo swapoff /swapfile
sudo rm /swapfile
# 記得同步刪除 /etc/fstab 中的規則
6. 維運心得

在雲端環境 (如 AWS 或 OCI) 中,預設可能沒有 Swap。雖然 SSD 的壽命會因為頻繁寫入 Swap 而受影響,但比起資料庫因為記憶體不足而直接掛掉,配置一個適量的 Swap 檔案通常是更明智的選擇。記住,Swap 是用來「救命」的,而不是用來替代 RAM 的。