最近网站更换服务器,由原来的虚拟主机换成centos服务器,配置好后运行了半个月,各种折腾,也是一边学习一边捣鼓各种功能,随着访问量增大,这两天出现mysql数据库自动停止。只要稍微流量大一点,就会出现莫名的的数据库连接错误的情况,然后连上服务器查看,发现mysql进程被结束了,经常出现这种情况,这还怎么得了,然后第一时间查看mysql日志发现是被进程结束了,好端端的怎么就自己结束了呢,这时候想到应该是mysql进程占用太多内存,然后被系统给kill 掉了。
然后 var/log/messages 查看服务器的系统日志/var/log/messages。
然后看了下在mysql自动停止的时间段内,有什么异常的日志信息,日志有提示“Out of memory”这就可以判定,是服务器的内存使用不足,导致系统自动杀死的mysql的进程,果然是内存不足,通过升级服务器的内存可以解决。还有就是linux开启swap(虚拟内存) 也能相应的解决问题, 所以我选择了后者试一试。
在CentOS中添加Swap交换文件,防止内存不足时MYSQL崩溃
添加交换空间有两种选择:添加一个交换分区或添加一个交换文件。推荐你添加一个交换分区;不过,若你没有多少空闲空间可用, 则添加交换文件。
网站用的是宝塔面板,里面的硬盘空间没问题,不需要做相关的挂在操作。记得前面写过,里面提升性能介绍有一个Linux工具箱就可以设置物理内存 Swap,安装好以后设置很简单,如下图:
注意:swap分区一般为内存的2倍,但最大不超过2G。
后续:经过以上操作这两天发现网站速度整体提升,暂没发现其他问题,不过浏览量大到一定量的时候,记得及时增加运存。