0、前言
有些小伙伴买的 VPS 配置比较低:
| 配置 | 常见场景 |
|---|---|
| 1核1G | Halo、WordPress、Memos |
| 2核2G | Docker 小项目 |
| 2核2.5G | 多个容器同时运行 |
比如我想用1G内存VPS搭建halo后,还要搭建别的docker项目比如memos,那1G的内存就不够看,但是VPS没到期,重新买一台2G的感觉浪费,那就可以创建虚拟内存
或者是平时看着内存够用,但一旦Docker 拉镜像、WebUI 启动、WordPress 装插件、系统自动更新等等,都有可能突然占用大量内存。这时候 Linux 就会触发【Out Of Memory(OOM)】,这就是内存不够用了,系统开始随机杀进程。你的博客可能突然打不开。所以今天我们要给 VPS 加一个 SWAP :
一、添加 Swap(新手可直接照抄)
如果你的 VPS 内存 ≤ 1G,建议添加 Swap 虚拟内存。
例如:
| VPS内存 | 推荐Swap |
|---|---|
| 1G | 1G~2G |
| 2G | 1G |
| 4G以上 | 一般不需要 |
Swap 本质上是拿硬盘空间充当临时内存使用。
虽然速度比真正内存慢很多,但可以降低程序因为内存不足被强制关闭的概率。
1.1、创建 Swap 文件
创建 1G Swap:
👉【需要2G将下面的1改成2即可】
👉【一般SWAP设置成内存1~2倍】
fallocate -l 1G /swapfile
1.2、修改权限
chmod 600 /swapfile
1.3、格式化 Swap
mkswap /swapfile
1.4、启用 Swap
swapon /swapfile
1.5、查看是否成功
free -h
如果看到类似:
Swap: 1.0Gi
说明已经成功。
1.6、设置开机自动挂载
echo '/swapfile none swap sw 0 0' >> /etc/fstab
否则 VPS 重启后 Swap 会失效。
1.7、查看 Swap 状态
swapon --show
例如:
NAME TYPE SIZE USED PRIO
/swapfile file 1G 0B -2
说明当前 Swap 正常运行。
二、0 基础 Linux 拆词讲解
2.1 什么是 Swap?
你可以把 VPS 内存理解成:
你的办公桌
桌子(内存)越大,同时能摆的东西越多。
但是桌子总有放满的时候。
于是 Linux 想了个办法:
桌子放不下的东西,先塞进旁边的储物柜。
这个储物柜:
就是 Swap。
举个例子
假设:
内存(RAM) = 1GB
Swap = 2GB
那么系统实际可使用空间大约变成:
1GB + 2GB
但注意:
Swap 不是内存。
它实际上是硬盘空间。
速度远远慢于内存。
所以:
Swap 是救命用的,不是提升性能用的。
2.2 查看当前有没有 Swap
执行:
free -h
例如:
Mem: 956Mi
Swap: 0B
如果看到:
Swap: 0B
说明当前没有配置 Swap。
2.3 创建 Swap 文件
创建一个 2GB 的 Swap:
fallocate -l 2G /swapfile
2.3.1 命令拆解
fallocate 是什么?
字面意思:
File Allocate
文件预分配
作用:
提前创建一个指定大小的文件。
-l 是什么?
length
长度
告诉系统:
我要创建多大的文件
2G 是什么?
代表:
2GB
也可以:
1G
4G
8G
/swapfile 是什么?
创建出来的文件名。
最终会生成:
/swapfile
这个文件以后专门拿来做 Swap。
2.4 修改权限
执行:
chmod 600 /swapfile
为什么要改权限?
默认情况下:
0644
意味着:
别人也能读取这个文件。
Linux 认为:
Swap 文件属于系统核心文件。
权限太开放不安全。
所以必须改成:
0600
只允许 root 使用。
2.5 格式化为 Swap
执行:
mkswap /swapfile
看到类似:
Setting up swapspace version 1
说明成功。
mkswap 是什么?
字面意思:
Make Swap
创建交换空间
作用:
告诉 Linux:这个文件以后不是普通文件,而是 Swap。
2.6 启用 Swap
执行:
swapon /swapfile
swapon 拆解
字面意思:
Swap On
打开 Swap
作用:
正式启用交换空间。
2.7 查看是否成功
执行:
free -h
如果看到:
Mem: 956Mi
Swap: 2.0Gi
说明成功。
也可以:
swapon --show
查看详细信息。
2.8 设置开机自动加载
如果不设置:
VPS重启
↓
Swap消失
所以执行:
echo '/swapfile none swap sw 0 0' >> /etc/fstab
这句什么意思?
它会向系统启动配置文件:
/etc/fstab
添加一条记录。
以后每次 VPS 开机都会自动挂载 Swap。
2.9 推荐配置
| VPS配置 | 推荐Swap |
|---|---|
| 1核1G | 2G |
| 2核2G | 2G |
| 2核2.5G | 1G |
| 4核4G以上 | 可选 |
2.10 本课总结
本课我们学会了:
① 查看 Swap
free -h
② 创建 Swap
fallocate -l 2G /swapfile
③ 修改权限
chmod 600 /swapfile
④ 格式化
mkswap /swapfile
⑤ 启用
swapon /swapfile
⑥ 开机自动加载
echo '/swapfile none swap sw 0 0' >> /etc/fstab
至此,你的 VPS 已经拥有了一块额外的“应急内存”,即使偶尔内存不够,也不容易被系统直接干掉进程了。
评论区