Swap文件是Linux系统中用于扩展内存的虚拟内存空间,当物理内存(RAM)不足时,系统会将部分数据从内存移动到Swap文件中,避免因内存耗尽导致的系统崩溃或进程终止。合理设置Swap文件大小对系统性能至关重要。
Swap文件的大小需根据物理内存(RAM)容量和系统用途调整,以下是一般性建议:
注意:若系统用于内存密集型任务(如大数据分析、虚拟机运行),可适当增加Swap文件大小(如物理内存的2-3倍);若系统主要用于轻量级任务(如文档编辑、网页浏览),可适当减小Swap文件大小(如物理内存的1倍)。
在创建新的Swap文件前,需确认系统是否已有Swap空间,可使用以下命令:
sudo swapon --show
# 或
free -h
若有Swap空间,需先禁用(见“四、调整Swap文件大小”部分)。
使用fallocate命令(推荐,速度更快)或dd命令创建指定大小的Swap文件(以创建4GB Swap文件为例):
sudo fallocate -l 4G /swapfile
# 若fallocate不可用,使用dd命令:
sudo dd if=/dev/zero of=/swapfile bs=1G count=4
说明:bs=1G表示每次读写1GB,count=4表示写入4次(总计4GB)。
Swap文件需限制为仅root用户可读写,避免安全风险:
sudo chmod 600 /swapfile
将创建的文件格式化为Swap格式:
sudo mkswap /swapfile
启用刚创建的Swap文件:
sudo swapon /swapfile
编辑/etc/fstab文件,添加以下行,确保系统重启后自动启用Swap文件:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
若需调整现有Swap文件的大小(如从4GB增加到8GB),需按以下步骤操作:
sudo swapoff /swapfile
使用fallocate或dd命令调整文件大小(以增加到8GB为例):
sudo fallocate -l 8G /swapfile
# 若fallocate不可用,使用dd命令(注意:需指定conv=notrunc保留原文件内容):
sudo dd if=/dev/zero of=/swapfile bs=1G count=8 conv=notrunc
sudo mkswap /swapfile
sudo swapon /swapfile
使用free -h或swapon --show命令确认Swap文件大小已更新。
600权限,否则系统可能无法启用;swappiness参数调整,见后续扩展);/etc/fstab中移除对应条目:sudo swapoff /swapfile
sudo rm /swapfile
# 编辑/etc/fstab,删除包含/swapfile的行
swappiness参数控制系统使用Swap空间的倾向(范围0-100),值越高,系统越倾向于使用Swap(默认值为60)。若系统内存充足,可降低swappiness以减少Swap使用:
# 临时修改(重启后失效)
sudo sysctl vm.swappiness=10
# 永久修改
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p