数据库服务器程序在运行起来之后,系统内存不足。
在系统监控中发现,当数据库服务程序启动后,占用了大量内存空间,导致系统的剩余的内存往往只有几十MB。
在ubuntu系统中,swap空间就是虚拟内存,所以考虑在磁盘空间富余的目录下设置虚拟内存swap文件,用来缓解内存不足的问题。
1、free -m 命令查看内存情况和swap分区大小
total used free shared buff/cache available
Mem: 3846 254 3296 4 295 3557
Swap: 0 0 0
可以看到swap空间目前为0。
2、创建一个swap文件
df -h 查看磁盘空间大小
通过上面的信息可以看到,/dev/vda2 目录下还剩余45G,那么就可以把swap文件生成在/dev/vda2目录下。
创建虚拟内存配置文件
cd /dev/vda2
mkdir swap #新建文件夹
cd swap
# bs 为块的大小,count 创建多少个块
sudo dd if=/dev/zero of=swapfile bs=1M count=4096 #4GB
# 修改权限
sudo chmod 0600 swapfile
#把生成的文件转换成 Swap 文件
sudo mkswap swapfile
# 激活文件
sudo swapon swapfile
# 执行命令检验是否操作成功
free -m
如果需要释放的话
# 执行命令后,删除创建的swap目录即可
sudo swapoff swapfile
如果需要开机自动使用该虚拟内存的话,则需要加入到启动脚本:
#此时开的虚拟内存会在开机后消失,如果永久保持下去,在/etc/fstab文件尾添加一下信息:
sudo vim /etc/fstab
/dev/vda2/swap/swapfile swap swap defaults 0 0 #根据自己目录定
#: qw! , 保存并退出即可