CentOS Swap使用最佳實踐
Swap大小的設置需結合物理內存容量,遵循以下經驗值:
Swappiness(vm.swappiness
)控制內核使用Swap的傾向,默認值為60(范圍0-100)。數值越高,系統越傾向于將內存數據交換到Swap;數值越低,越優先使用物理內存。
# 臨時調整(立即生效)
sudo sysctl vm.swappiness=10
# 永久調整(重啟后生效)
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
# 創建16GB Swap文件(使用fallocate更高效)
sudo fallocate -l 16G /swapfile
# 設置權限(僅root可讀寫)
sudo chmod 600 /swapfile
# 格式化為Swap
sudo mkswap /swapfile
# 啟用Swap
sudo swapon /swapfile
# 開機自動掛載
echo "/swapfile swap swap defaults 0 0" | sudo tee -a /etc/fstab
fdisk
/parted
創建分區,再用mkswap
格式化,最后添加到/etc/fstab
。定期監控Swap使用狀態,及時發現異常(如Swap使用率持續過高):
free -h
(直觀顯示Swap的總容量、已用/空閑容量);swapon --show
或cat /proc/swaps
(列出當前啟用的Swap分區/文件);vmstat 1
(實時查看內存、Swap的交換頻率)、top
(按Shift+M
排序內存占用,找出內存泄漏的進程)。除Swappiness外,還可調整以下內核參數提升Swap性能:
/etc/sysctl.conf
,添加:vm.dirty_ratio=10 # 內存中臟頁占比達到10%時觸發刷新
vm.dirty_background_ratio=5 # 后臺刷新線程啟動閾值設為5%
執行sudo sysctl -p
使設置生效。sudo yum install zram-config -y
sudo systemctl start zram-config
# 調整Zram大?。ㄈ?GB)
echo 'ZRAM_DEVICE_SIZE=4G' | sudo tee -a /etc/zram-config.conf
Zram適合內存充足但需減少Swap磁盤寫入的場景。vm.swappiness=0
并移除/etc/fstab
中的Swap條目),提升性能;