Lightsail 虚拟机 CPU 占用率100%的问题

Amazon Lightsail 的服务器各方面都挺好的,但最近遇到几次 CPU 占用率过高,甚至持续高达100%并导致服务器无法响应,只能关机重启的情况。

翻找一通之后,发现原因是 MySQL 服务的内存消耗较大,当峰值消耗超出内存上限后,最终导致 CPU 占用率异常。

解决办法有两个,一是直接升级内存配置;二是低成本的,不改变硬件配置的情况下,划分一部分磁盘空间来充当内存不足时的交换空间来解决。

好在这个问题不经常出现,服务器硬盘又是SSD,性能还可以,所以这里采用第二种方法先顶上。在默认配置下,Lightsail 服务器的硬盘分区里并没有划出 swap 分区,只能手工添加 swap 文件了。

操作步骤:


# 创建一个交换文件,大小自定,推荐内存*2
sudo fallocate -l 2G /swapfile

# 设置权限
sudo chmod 600 /swapfile

# 设置交换分区为此文件
sudo mkswap /swapfile

# 启用
sudo swapon /swapfile

# 查看是否生效
sudo swapon -s

# 设置开机自动挂载交换文件
sudo cp /etc/fstab /etc/fstab.bak
echo '/swapfile swap swap defaults 0 0' | sudo tee -a /etc/fstab
linux 设置 swapfile 交换文件
linux 设置 swapfile 交换文件

其它参考:

全文完