关于swap的一些事

返回 使用微信阅读
请用微信扫一扫
Jack

最近,新版的博客运行一个礼拜左右就挂掉了,挂掉的原因不是nginx死掉而是数据库死掉。
经过排查发现原来是内存不够用,并且阿里云的ubuntu默认木有创建交换分区Swap。
如下图:
neicun

于是想到的就是增加交换分区以及优化数据库配置:

先创建目录

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

查看结果
A60D2AF4-BB06-4373-BA36-B695AB499BA1

如果是已经创建了swap,需要修改大小,命令如下:

先卸载swap,然后再创建

sudo swapoff /swap/swapfile
sudo rm /swap/swapfile

优化数据库配置:

修改缓存innodb表的索引,数据,插入数据时的缓存

innodb_buffer_pool_size = 512M
阅读数  37355