主题
阿里云开启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 系统上启用和配置交换空间,以提高系统的内存管理和性能。