在docker中安装好mysql后发现mysqld服务占用内存到45%左右,查了资料,因为mysql吞吐量大,不建议在docker中玩. 不过我这边只是个小博客,也不至于用这么大内存,所以进行了mysql的性能优化.
经过2天断断续续的测试(苦逼…..),以下是cnf的优化设置,挂载在mysql容器的配置下,文件名可随便,只要在/etc/mysql/conf.d下都会自动识别进行叠加设置
[mysqld]
performance_schema_max_table_instances=400
table_definition_cache=400
table_open_cache=256
performance_schema=off
innodb_buffer_pool_chunk_size=64M
innodb_buffer_pool_size=64M
skip-host-cache
skip-name-resolve
因为mysql容器中没有vim之类的编辑器,也可以先复制出来后在宿主机修改好,之后再放入启动的mysql容器中,重启容器,如下
sudo docker cp [id]:/etc/mysql/conf.d/mysql.cnf ./mysql.cnf
sudo docker cp ./mysql.cnf [id]:/etc/mysql/conf.d/mysql.cnf
修改后内存消耗降至 15%