大家好!如果你正在使用阿里云的轻量应用服务器(ECS Light),特别是配置较低的机型,比如1核1G或者1核2G,那你可能已经遇到过这样的问题:运行一些稍微吃内存的程序时,系统直接卡死、进程被杀,甚至SSH都连不上了。别急,这很可能是因为你的服务器内存不足,又没有开启Swap交换分区。

今天这篇文章,我就来手把手教你在阿里云轻量服务器上如何开启Swap交换分区。哪怕你是Linux小白,只要跟着步骤一步步来,也能轻松搞定。最关键的是——这个操作几乎不花一分钱,却能大大提升你服务器的稳定性和可用性。
什么是Swap交换分区?为什么需要它?
简单来说,Swap就是“虚拟内存”。当你的物理内存(RAM)快用完的时候,系统会把一部分暂时不用的数据从内存挪到硬盘上的Swap空间里,腾出内存给更紧急的任务使用。虽然硬盘速度比内存慢很多,但有总比没有强,至少能避免系统直接崩溃。
举个例子:你开了一台1GB内存的轻量服务器,装了个WordPress博客,再跑个Redis缓存。看着挺简单的对吧?但一旦访问量上来,或者后台有自动更新任务,内存瞬间就爆了。这时候如果没有Swap,Linux内核会直接启动OOM Killer(内存不足杀手),随机干掉一个进程来保命——倒霉的往往是你的网站服务。
开启Swap就像是给你的小服务器加了个“安全气囊”,关键时刻能救你一命。
阿里云轻量服务器默认没有Swap?
没错!大多数阿里云轻量服务器在初始化系统镜像时,默认是不开启Swap的。尤其是CentOS、Ubuntu这些主流系统镜像,为了追求“纯净”和“高性能”,干脆就把Swap给关了。对于高配机器来说没问题,但对于我们这些“抠门党”用低配机搞个人项目的人来说,这就有点坑了。
不过别担心,Swap是可以后期手动创建的。而且不需要额外购买磁盘,只要你还有硬盘空间就行。轻量服务器通常给25GB起步的SSD,就算只用几GB做Swap,也完全不影响日常使用。
第一步:检查当前Swap状态
登录你的轻量服务器(通过SSH)。你可以用终端(Mac/Linux)或者Putty(Windows)连接。
输入下面这条命令,看看现在有没有Swap:
sudo swapon --show
如果什么都没输出,说明目前没有启用Swap。也可以用这个命令查看整体内存情况:
free -h
你会看到类似这样的结果:
total used free shared buff/cache available
Mem: 981Mi 120Mi 700Mi 10Mi 160Mi 800Mi
Swap: 0B 0B 0B
看,Swap全是0,这就是我们要解决的问题。
第二步:创建Swap文件
接下来我们要在硬盘上创建一个专门用于Swap的文件。Swap大小建议是物理内存的1-2倍。比如你有1G内存,那建个1G或2G的Swap就差不多了。
这里我们以创建1G的Swap文件为例:
sudo fallocate -l 1G /swapfile
这条命令的意思是:分配一个1GB大小的文件,名字叫/swapfile。如果你想要2G,就把1G改成2G就行了。
执行完后,可以用下面的命令确认文件是否创建成功:
ls -lh /swapfile
你应该能看到一个1.0G的文件。
第三步:设置正确的权限
Swap文件很敏感,不能让普通用户随便读写,否则会有安全风险。所以我们得改一下权限:
sudo chmod 600 /swapfile
这样只有root用户才能读写这个文件,安全性就提高了。
第四步:格式化为Swap格式
现在文件有了,但还不能直接用,得把它“格式化”成Swap专用的格式:
sudo mkswap /swapfile
执行后你会看到类似这样的提示:
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes) no label, UUID=xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx
说明格式化成功!
第五步:启用Swap文件
现在可以正式启用Swap了:
sudo swapon /swapfile
然后再次检查Swap状态:
sudo swapon --show
这次你应该能看到:
NAME TYPE SIZE USED PRIO /swapfile file 1.0G 0B -2
恭喜!Swap已经成功启用。
第六步:设置开机自动挂载
上面的操作只是临时生效。一旦你重启服务器,Swap又没了。所以我们得让它开机自动加载。
编辑/etc/fstab文件:
sudo nano /etc/fstab
在文件末尾添加这一行:
/swapfile none swap sw 0 0
保存并退出(nano编辑器按Ctrl+O回车保存,Ctrl+X退出)。
这样每次开机系统都会自动挂载Swap,再也不用担心重启后失效了。
第七步:优化Swap使用策略(可选)
Linux有个参数叫swappiness,用来控制系统多“积极”地使用Swap。默认值通常是60,数值越高越倾向于用Swap。
对于我们这种内存紧张的小服务器,可以适当调高一点,比如设为80:
sudo sysctl vm.swappiness=80
但这只是临时生效。要永久设置,还得改配置文件:
sudo nano /etc/sysctl.conf
在文件末尾加上:
vm.swappiness=80
保存退出即可。
常见问题解答
Q:开启Swap会影响性能吗?
A:会有一点影响,毕竟硬盘比内存慢。但如果只是偶尔用到Swap,比如内存短暂飙高,影响微乎其微。比起直接崩掉,这点性能损失完全可以接受。
Q:Swap文件放在哪里?占不占系统盘?
A:我们创建的/swapfile就在系统根目录下,确实占用系统盘空间。但1G或2G对于25GB以上的系统盘来说,几乎可以忽略。
Q:能不能用独立磁盘做Swap?
A:可以,但轻量服务器一般不支持挂载数据盘,所以不现实。用文件方式最简单高效。
趁现在!领张阿里云优惠券省点钱
看到这里,相信你已经成功开启了Swap,服务器也变得更稳了。不过话说回来,如果你觉得1G内存实在捉襟见肘,不妨考虑升级一下配置。阿里云经常有活动,尤其是新用户,性价比非常高。
我推荐你现在就去领一张阿里云优惠券,说不定能省下好几十甚至上百块。不管是续费现有服务器,还是升级到更高配置,都能用得上。反正免费领,不用白不用,对吧?
小投入,大回报
开启Swap交换分区,看似是个小操作,但它能在关键时刻救你一命。尤其是对于预算有限、用低配轻量服务器搞个人项目的开发者、博主、学生党来说,这几乎是必做的优化之一。
整个过程不到10分钟,命令也就五六条,安全可靠,几乎没有风险。只要你按照本文一步步来,基本不会出错。
最后再强调一遍:内存不够不可怕,可怕的是没有任何缓冲机制。Swap就是那个让你安心睡觉的“备用轮胎”。
赶紧动手试试吧!如果你在操作过程中遇到任何问题,欢迎留言交流。
内容均以整理官方公开资料,价格可能随活动调整,请以购买页面显示为准,如涉侵权,请联系客服处理。
本文由星速云发布。发布者:星速云。禁止采集与转载行为,违者必究。出处:https://www.67wa.com/149802.html