最近更新:19th 6月, 2016
前段时间落格从虚拟主机迁移到了独立的vps上,这下所有的维护内容都得我自己动手了。为了性能,另外既然能自己配环境了,自然不会用旧的配置。
我用了 Ubuntu Server 16.04 + PHP 7.0 + Nginx + MySQL 5.7 总之,踩了不少的坑。
现在,来记录一下
关于 MySQL 为什么会突然占满内存
一开始我以为是vps遭到了攻击,可是只查看网卡流量就不是这么回事。第一次死机,我以为是配置错误,添加了一大堆缓存,减小了内存配置等等。但好景不长,又死了。
但之前为什么一直没有死机,这是一个迷。
在修复了表、优化了 MySQL 配置等一系列无用功之后,终于定位到了问题所在:
Performance Schema
这是在 5.6 版本中开始默认开启的一项功能,它会在 MySQL 启动之后悄悄占用 400M 左右的内存来加速 MySQL 的运行——对于动辄近百的企业级服务器来说,可能不值一提,但是对于咱们这种屌丝小 vps (我这个 1GB 独立内存算是不错的了)来说,可就要顶了天了!
所以,这大概就是为什么我的服务器最近连续死机两次了。
要关闭 Performance Schema ,在你的 MySQL 配置文件的
[mysqld] 字段添加一句
performance_schema=off
这样,我的数据库就稳定在 300M 内存左右了。
参考