Linux虚拟内存swap分区配置详解:从创建到验证的教程

为什么要配置swap?先搞清楚适用场景

swap是Linux系统中的虚拟内存,当物理内存(RAM)不足时,系统会把暂时不用的数据交换到磁盘上的swap空间,从而避免进程因内存耗尽而崩溃。
如果你运行的是数据库、Java应用或者内存密集型服务,或者服务器只有2GB甚至更少的内存,配置swap能显著提升稳定性。
但注意,swap不能替代物理内存,频繁使用swap会导致性能下降,所以只在必要时配置。

检查当前swap状态,避免重复操作

在动手之前,先确认系统是否已经启用了swap。
执行以下命令查看:

free -h | grep -i swap
swapon --show

如果输出显示有活动swap,比如“/swapfile”或某个分区,说明已配置;
如果为空,则继续下一步。
另外,用df -h检查磁盘剩余空间,确保有足够容量(一般建议swap大小为物理内存的1~2倍,但不超过4GB,或者根据实际负载调整)。

创建swap的两种方式:分区或文件

方式一:使用磁盘分区创建swap(适合有空闲分区的情况)

如果你有未使用的磁盘分区(如/dev/sdb1),可以用mkswap将其格式化为swap格式:

sudo mkswap /dev/sdb1

然后启用该分区:

sudo swapon /dev/sdb1

方式二:使用文件创建swap(更灵活,无需重新分区)

这是最常见的方式,尤其适合云服务器。
以创建4GB大小的swap文件为例:

sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

chmod 600是为了安全,
只有root可读写。fallocate如果不可用,
可以用dd if=/dev/zero of=/swapfile bs=1M count=4096替代。

永久挂载与swappiness调优

上述操作重启后会失效,需要写入/etc/fstab实现开机自动挂载。

编辑fstab文件:

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

如果使用的是分区,则将路径替换为分区设备名,如/dev/sdb1 none swap sw 0 0

调整swappiness参数:swappiness(0~100)控制系统使用swap的积极程度,默认60。
数值越小,越优先使用物理内存。
对于服务器,建议设为10~30以减少磁盘I/O。

临时生效:

sudo sysctl vm.swappiness=10

永久生效:在/etc/sysctl.conf/etc/sysctl.d/下添加文件:

echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf

避坑指南与高频问题解答

常见坑1:swap文件权限错误
如果忘记chmod 600,系统会报“insecure permissions”警告,虽然能启用但不推荐。务必设置正确权限。

常见坑2:磁盘空间不足
创建swap文件前检查剩余空间,用df -h确认。如果根分区空间紧张,可以挂载额外磁盘到其他目录再创建。

常见坑3:Btrfs文件系统上的swap文件
Btrfs不支持fallocate创建的swap文件,需要用dd命令,并关闭写时复制(CoW):chattr +C /swapfile

高频问题:swap多大合适?
传统经验是物理内存的2倍,但现代服务器建议:

  • 内存小于2GB:swap = 2倍内存
  • 内存2~8GB:swap = 内存大小
  • 内存大于8GB:swap = 4~8GB(根据应用需求)

但最终以实际监控为准,使用free -hvmstat观察swap使用情况。

验证配置是否生效

重启后执行以下命令确认:

swapon --show
free -h | grep -i swap

如果显示swap空间大小和已用空间,则配置成功。
另外,可以用cat /proc/swaps查看详情。
测试swap能否正常使用:运行一个占用大量内存的程序(如stress --vm 1 --vm-bytes 2G),观察内存耗尽时swap是否被调用。

如果你正在处理Linux虚拟内存swap分区配置,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。
配置完成后,记得观察一段时间,确保系统稳定运行。

分享到:
上一篇
fail2ban防护暴力破解SSH登录
下一篇
服务器多IP地址绑定配置教程:从零开始轻松上手
1
系统公告

高考专属福利来袭|凭准考证免费领香港 CN2 云服务器

值高考落幕之际,泽御云开启考生专属回馈 + 产品限时特惠双重活动,助力学子暑期学习建站 高考 考生专属福利 全体应届高考生,凭高考准考证即可免费申领【香港 CN2 轻量云服务器,4 核 4G AMD 处理器】,免费使用周期 30 天,可用于搭建个人站点、编程实操、技术实训,祝各位考生金榜题名,前程似锦! 泽御云资质齐全合规自营机房,线路覆盖香港 CN2、国内 BGP、内蒙电信、美国精品线路,售后全天候技术支持。 官方网站:www.zeyuyun.com,活动限时有效,优惠逾期不再保留。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意