最近在阿里云购买了一台云服务器,因为是自己测试玩的,所以配置按最低的来了,1G内存,然后啪啪啪(指键盘声音)的安装了JDK,Tomcat,MySQL(5.6)等一系列环境,开始很爽,然后噩梦开始了:
MySQL会经常停止运行,而且启动都起不起来,要reboot才行,常看MySQL保存日志,发现是内存不够,看了一下,环境全部开启以后,内存占用基本都在90%以上,通过htop仔细查看内存占用,MySQL要占用460M左右…
后来查阅相关资料,MySQL 5.6的默认缓存设置对于低内存的环境并不合理,如果使用默认的配置,至少要占用400M以上。可以修改my.cnf中的默认配置,降低内存占用。
我的系统是centos,my.cnf位于/etc目录下,先关闭MySQL服务然后编辑配置文件:
service mysql stop sudo vi /etc/my.cnf
默认的配置是:
performance_schema_max_table_instances 12500 table_definition_cache 1400 table_open_cache 2000
修改为:
performance_schema_max_table_instances=600 table_definition_cache=400 table_open_cache=256
即可,如果没有找到这三个配置,可以直接在文件尾添加,然后启动MySQL服务即可,我这边修改后后MySQL的内存占用大概在70M多。