Skip to content

阿里云开启swap

背景

阿里云服务器99元购买的2c2g 主机,个人使用cpu基本是够了,但是有时候ssh连接特别卡,经过排查,发现内存严重不够用,其实随便跑几个服务docker啥的就满了。然后会出现ssh客户端严重卡顿,cpu升高,感觉服务器要炸的体验。

所以: 通过添加了4G的swap后,感觉服务器性能得到史诗级般的提升。

查看swap

查看当前的内存,其实你会发现阿里云给的配置严重缩水,内存说是2G实际就1.6G,系统占用后就不到1G,随便玩玩就满了,如果几天不关机(linux这不是正常操作嘛)基本就没了。

shell
root@iZuf6jan0ceb3gi12hemq4Z:~/app# free -h
               total        used        free      shared  buff/cache   available
Mem:           1.6Gi       695Mi       256Mi       2.0Mi       720Mi       813Mi
Swap:          4.0Gi       329Mi       3.7Gi

开启swap

1. 检查当前系统的 swap 状态

首先,可以使用 free 命令检查当前系统的内存和交换空间使用情况:

free -h

这会显示系统当前的内存(Mem)和交换空间(Swap)使用情况。

2. 创建交换文件

如果系统没有预先分配的交换空间,你可以创建一个交换文件:

创建一个 1GB 大小的交换文件

bash
 sudo fallocate -l 1G /swapfile

设置文件权限

shell
sudo chmod 600 /swapfile

设置交换空间

shell
sudo mkswap /swapfile

3. 启用交换空间

shell
sudo swapon /swapfile

4. 永久使交换空间生效(别忘了)

要使交换空间在系统重启后仍然生效,需要将其添加到 /etc/fstab 文件中:

打开 /etc/fstab 文件进行编辑

shell
sudo nano /etc/fstab

在文件末尾添加以下行

bash
/swapfile   none    swap    sw    0   0

5. 调整交换空间的使用策略(必须,阿里云默认给禁了,所以直接添加就行)

可以根据需要调整 Linux 内核对交换空间的使用策略。例如,可以调整 vm.swappiness 参数来控制系统在内存不足时使用交换空间的程度。默认值为 60。你可以通过编辑 /etc/sysctl.conf 文件来永久更改这个值:

shell
sudo nano /etc/sysctl.conf

添加或修改以下行: 参数含义:范围从0-100,0代表不使用swap,100代表尽可能多的使用swap,默认是60,阿里云给禁了

shell
vm.swappiness=60

然后运行以下命令使更改生效:

shell
sudo sysctl -p

注意事项(服务器就不用咱担心了)

  • 交换文件大小:根据系统需求和硬件资源,可以调整交换文件的大小。
  • SSD 硬盘:在使用 SSD 硬盘时,交换空间的使用要谨慎,因为频繁写入可能会影响 SSD 的寿命。

通过这些步骤,你可以在 Linux 系统上启用和配置交换空间,以提高系统的内存管理和性能。

最后更新于: