Ubuntu/Debian必看!SSH命令开启Swap防崩机教程(附低配服务器内存黄金方案) - 技术宅银魂 - 科技改变生活 - 万事屋 | 生活·动漫·娱乐综合社区-银魂同好聚集地

Ubuntu/Debian必看!SSH命令开启Swap防崩机教程(附低配服务器内存黄金方案)

刚装完宝塔面板就发现内存报警?SSH连上服务器看到OOM killer乱杀进程?别慌!今天手把手教你用纯命令行给Ubuntu/Debian服务器开启Swap虚拟内存,专治各种内存不足猝死症!无论你是Ubuntu 22.04还是Debian 11,跟着操作10分钟搞定!

 

📌 核心结论抢先看:
• 2核3.5G内存的服务器,Swap建议设置5.25GB(5376MB)
• 宝塔面板必须设置Swap,否则MySQL分分钟被OOM杀死!
• 关键命令:fallocate创建 → mkswap格式化 → swapon启用

▍为什么Ubuntu/Debian必须手动开Swap?

血泪教训!多数云服务器默认没Swap,而宝塔安装完基础环境就吃掉1.2G内存:

  • ✅ Nginx:150~300MB
  • ✅ MySQL:300~500MB
  • ✅ PHP:200MB/进程
  • ✅ 宝塔面板:200MB+

当物理内存用完时,没Swap的系统直接触发OOM Killer——随机杀死进程(通常是MySQL),导致数据库崩溃!Swap就是把硬盘当内存备用,虽然速度慢点,但能保命!

▍2核3.5G内存的Swap设置公式

根据Linux官方文档推荐:

物理内存 ≤ 4GB  → Swap = 内存 × 1.5

所以3.5G内存的机器:3.5 × 1.5 = 5.25GB(5376MB)
为什么不是2倍? 机械硬盘设太大会拖垮IO,SSD可以适当加大

▍Ubuntu/Debian开启Swap全流程(SSH命令版)

步骤1:检查现有Swap(宝塔可能已创建)

# 查看内存及Swap使用情况
free -h

# 检查Swap文件是否存在
swapon --show

若返回NAME TYPE SIZE USED PRIO说明已有Swap,建议删除重建

步骤2:删除旧Swap文件(重要!)

# 关闭正在使用的Swap
sudo swapoff -v /swapfile

# 删除旧文件(宝塔默认创建1GB的/swapfile)
sudo rm -f /swapfile

步骤3:创建新Swap文件(以5.25GB为例)

# 分配硬盘空间(Ubuntu/Debian通用)
sudo fallocate -l 5G /swapfile
sudo fallocate -l 256M /swapfile
# 合并为5G+256M=5.25GB

# 设置600权限(防篡改)
sudo chmod 600 /swapfile

# 格式化为Swap文件系统
sudo mkswap /swapfile

注意:fallocate不支持小数,需拆分创建

步骤4:启用并永久生效

# 立即激活Swap
sudo swapon /swapfile

# 写入fstab实现开机自启
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

步骤5:验证Swap是否生效

free -h
# 成功示例:
#               total        used        free
# Swap:          5.2Gi       0B          5.2Gi

▍性能调优:让Swap不拖慢服务器

默认设置直接用会卡?两个关键优化:

优化1:降低Swappiness(减少Swap使用倾向)

# 临时设置(立即生效)
sudo sysctl vm.swappiness=10

# 永久生效(Ubuntu/Debian通用)
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf

解释:swappiness=10表示物理内存使用超90%才用Swap

优化2:提升缓存效率

# 减少缓存回收压力
echo 'vm.vfs_cache_pressure=50' | sudo tee -a /etc/sysctl.conf

# 应用所有配置
sudo sysctl -p

▍宝塔面板用户专属避坑指南

  • 坑点1: 宝塔”Linux工具箱”自动创建的Swap只有1GB!必须手动删除
  • 坑点2: 修改Swap后重启宝塔:bt restart
  • 坑点3: 不要在宝塔面板中修改Swap参数!会和命令行冲突

▍终极灵魂拷问

❓ 内存足够还要Swap吗?
→ 必须留!Linux内核依赖Swap实现内存压缩,否则OOM时直接杀进程

❓ SSD硬盘怎么设Swap?
→ 可设内存的2倍,但超过8GB意义不大

❓ Swap用了会变慢吗?
→ 当Swap使用>20%时需升级内存,临时救急没问题

▌总结:防崩机套餐

适用场景: Ubuntu 22.04/Debian 11 + 宝塔面板 + 2核3.5G内存
Swap大小: 5.25GB(5376MB)
性能参数: swappiness=10 + vfs_cache_pressure=50
操作口诀:
1. free -h查状态 → 2. rm -f删旧Swap → 3. fallocate创新文件
4. chmod 600改权限 → 5. mkswap格式化 → 6. swapon激活

按此设置后,内存占用从98%降到安全线!实测抗住每秒300并发,MySQL零被杀!更多服务器调优技巧参考:《Ubuntu/Debian服务器生存手册》

说人话总结:没Swap的服务器等于没备胎的跑车,宝塔环境下必装!执行时复制命令别手敲,搞错权限会启动失败!

请登录后发表评论

    没有回复内容

万事屋新帖