使用free -h
命令可快速查看內存與Swap的總使用量、剩余量及使用率;swapon --show
或cat /proc/swaps
能顯示當前啟用的Swap分區/文件的詳細信息(如設備名、大小、已用空間)。這些命令是診斷Swap狀態的常用工具。
for i in $(cd /proc; ls grep "[0-9]" | awk '{print $0}'); do awk '/Swap:/ {print $2}' /proc/$i/smaps 2>/dev/null; done | sort -k1,1nr | head
命令,找出占用Swap最多的進程,必要時終止異常進程(如kill -9 PID
)。sudo sysctl vm.swappiness=10
(數值越低,越少使用Swap);永久生效則編輯/etc/sysctl.conf
,添加vm.swappiness=10
,再運行sudo sysctl -p
使配置生效。/etc/fstab
中存在正確的Swap配置(如/dev/sdX1 none swap sw 0 0
或/swapfile none swap sw 0 0
),無錯誤或缺失。sudo swapon -a
命令啟用所有配置的Swap分區;若未配置/etc/fstab
,需添加對應行,確保重啟后自動啟用。sudo fallocate -l 2G /swapfile
(或sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
);sudo chmod 600 /swapfile
;sudo mkswap /swapfile
;sudo swapon /swapfile
;/etc/fstab
添加/swapfile none swap sw 0 0
。fdisk
/parted
創建新分區(如/dev/sdb1
),類型設為“Linux swap”;sudo mkswap /dev/sdb1
;sudo swapon /dev/sdb1
;/etc/fstab
添加/dev/sdb1 none swap sw 0 0
。sudo swapoff /swapfile
;sudo fallocate -l 4G /swapfile
(或dd
命令);sudo mkswap /swapfile
;sudo swapon /swapfile
;/etc/fstab
中的文件大?。蛇x)。sudo swapoff /dev/sdX1
;fdisk
刪除原分區,創建更大新分區;sudo mkswap /dev/sdX1
;sudo swapon /dev/sdX1
;/etc/fstab
中的分區信息。SSD的讀寫壽命有限,頻繁的Swap操作會加速其老化,尤其在SSD老化后可能導致性能下降。建議:
smartctl
工具)。Swappiness控制系統使用Swap的傾向,取值0-100(默認60)。數值越高,系統越傾向于將內存頁交換到Swap中。
sudo sysctl vm.swappiness=10
(立即生效,重啟失效);/etc/sysctl.conf
,添加vm.swappiness=10
,然后運行sudo sysctl -p
使配置生效。若系統因Swap問題無法正常啟動,可通過單用戶模式修復:
e
編輯,在內核行末尾添加single
,按Ctrl+X
啟動進入單用戶模式。e
編輯,找到linux16
/linuxefi
開頭的行,將ro
改為rw
,在行末尾添加init=/bin/bash
,刪除rhgb
和quiet
,按Ctrl+X
啟動進入單用戶模式。journalctl -b -1
)或修復文件系統(fsck
)。OPENVZ架構的VPS沒有獨立的Swap分區,其Swap空間由宿主機統一管理,用戶無法手動添加或修改Swap配置。若需擴展內存,建議升級VPS套餐或優化應用內存使用。
Swap是物理內存的補充,不能完全替代物理內存。頻繁使用Swap會導致系統性能下降(如進程響應變慢、磁盤I/O升高)。建議: