小内存云服务器别急着裸奔:给 512MB 内存加一道 swap 保险
很多人薅到便宜的小规格云服务器,第一件事就是装应用跑服务。但 512MB 甚至 1GB 内存的机器有个隐藏雷区:内存一旦被打满,系统会直接触发 OOM,把进程杀掉,服务莫名其妙就没了。日志里只留下一句 Out of memory,新手往往要排查很久。
解决办法不复杂:加一块 swap(交换空间),让硬盘临时充当内存的缓冲垫。它速度远不如真内存,但关键时刻能保命——突发流量、编译时内存尖峰,有了 swap 就只是变慢,而不是直接崩掉。
在 Debian / Ubuntu 上添加 1GB swap
全程只需要几条命令(root 或 sudo 执行):
- 创建交换文件:
fallocate -l 1G /swapfile - 收紧权限:
chmod 600 /swapfile - 格式化为交换空间:
mkswap /swapfile - 立刻启用:
swapon /swapfile - 写进开机自启:在
/etc/fstab末尾追加一行/swapfile none swap sw 0 0 - 验证:
free -h,看到 Swap 一行有容量就说明生效了
几个容易踩的坑
第一,只执行 swapon 不写 fstab,重启后 swap 就消失了,这是最常见的翻车点。
第二,swap 大小不是越大越好。小内存机器建议设为内存的 1 到 2 倍;512MB 内存配 1GB swap 是比较稳妥的组合,再大只会白占磁盘。
第三,swap 里的数据会落盘,云盘 IO 差的机器重度使用 swap 时整机会明显变卡。它是保险,不是扩容;如果 free 显示 swap 长期被大量占用,说明该升级配置或优化程序了。
第四,可以顺手把 swappiness 调低(如 10~20),减少系统主动用 swap 的倾向,让它只在真内存告急时出手,配置在 /etc/sysctl.conf 里加 vm.swappiness=10 即可。
小结
给小服务器加 swap 属于五分钟的成本、长期受益的动作:防 OOM、防莫名崩溃、给突发负载留缓冲。尤其是长期挂着的轻量服务,先把这道保险加上,再安心折腾别的。
- 点赞
- 收藏
- 关注作者
评论(0)