最近,新版的博客运行一个礼拜左右就挂掉了,挂掉的原因不是nginx死掉而是数据库死掉。
经过排查发现原来是内存不够用,并且阿里云的ubuntu默认木有创建交换分区Swap。
如下图:
于是想到的就是增加交换分区以及优化数据库配置:
先创建目录
mkdir /swap
cd /swap
定义swap的大小以及位置,注意:bs blocksize ,每个块大小为1k.count=4096000。则总大小为4G的文件(一般创建swap的大小为改机器内存的2倍)。
dd if=/dev/zero of=swapfile bs=1k count=4096000
建立swap
mkswap /swap/swapfile
启动swap
swapon /swap/swapfile
修改/etc/fstab使其启动时自动mount,这个操作与swap分区法一样,在/etc/fstab中增加如下语句:
/swap/swapfile swap swap defaults 0 0
如果重启之后swap没有自动启用的话,还要去修改/etc/rc.local文件。
sudo vi /etc/rc.local
exit 0 之前加入:
#sudo dd if=/dev/zero of=/swap.disk bs=1M count=2k && sudo mkswap -f /swap.disk && sudo swapon /swap.disk
sudo mkswap -f /swap.disk && sudo swapon /swap.disk
exit 0
查看结果
如果是已经创建了swap,需要修改大小,命令如下:
先卸载swap,然后再创建
sudo swapoff /swap/swapfile
sudo rm /swap/swapfile
优化数据库配置:
修改缓存innodb表的索引,数据,插入数据时的缓存
innodb_buffer_pool_size = 512M
阅读数 72783