AWS 光帆 Amazon Lightsail 设置 SWAP

AWS 光帆 Amazon Lightsail 设置 SWAP

最近使用 AWS 光帆 Amazon Lightsail时,发现服务器经常卡死,SSH也是无法连接,只能在AWS后台重启。后面发现,是因为内存耗尽导致的,原来是 AWS Lightsail 默认不开启 SWAP,最小实列 512MB 内存用完就会崩溃。解决办法就是设置 SWAP,可以作为缓冲减少卡死的概率。

SWAP(虚拟内存分区)定义:

虚拟内存分区可以采用磁盘分区或文件的形式。用户可以在安装期间或以后根据需要创建交换空间。虚拟内存分区可用于两个目的,将虚拟内存扩展到已安装的物理内存 (RAM) 之外,以及用于挂起到磁盘的支持。

使用 swap 扩展虚拟内存是否有益取决于安装的物理内存量。如果物理内存量小于运行所有所需程序所需的内存量,则启用 swap 可能会有所帮助。这避免了内存不足的情况,即 Linux 内核 OOM 终止机制将自动尝试通过终止进程来释放内存。要将虚拟内存量增加到所需的数量,请添加必要的差值(或更多)作为交换空间。

在内存不足时使用 swap 的最大缺点是性能较低。因此,启用 swap 是一个个人喜好问题:有些人喜欢杀死程序而不是启用 swap,而另一些人更喜欢在物理内存耗尽时启用 swap 和更慢的系统。

操作

设置 SWAP 的脚本,示例是设置 1GB:

fallocate -l 1G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo "/swapfile swap swap defaults 0 0" | tee -a /etc/fstab

如果想扩大现有 SWAP:

swapoff /swapfile
rm /swapfile
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
swapon --show