前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >docker 中的mysql 经常重启优化

docker 中的mysql 经常重启优化

原创
作者头像
猎户星座1
修改2020-10-27 14:27:19
2.7K0
修改2020-10-27 14:27:19
举报
文章被收录于专栏:Java StudyJava StudyJava Study

自己的腾讯云 服务器为 学生机1核2G 的 自己的docker 容器中本来有2个mysql 服务(配置的为主从复制),1 个redis 其中提供服务mysql 最近总是重启,导致自己的java 环境挂掉,一直想解决。

查看 自己的centos 内存占用 :

[xx xxxxcentos ~]#   free -m
              total        used        free      shared  buff/cache   available
Mem:           1838        1069         103           0         664         618
Swap:             0           0   

还有600m 的可用呢 ,不是没有内存不可用啊。

网上查找问题是 mysql 的所占资源过多了 查看一下 docker 下的mysql 日志

dmesg | grep mysql

[10360983.950070] [12015]   999 12015   317044    81903     245        0             0 mysqld
[10360983.950114] Out of memory: Kill process 12015 (mysqld) score 174 or sacrifice child
[10360983.953032] Killed process 12015 (mysqld), UID 999, total-vm:1268176kB, anon-rss:327612kB, file-rss:0kB, shmem-rss:0kB

确实也是 Out of memory: Kill process 12015(mysqld) 也有解决办法 就是修改mysql 的使用内存

参考 解决办法

https://www.cnblogs.com/WNpursue/p/10617217.html

查看你 现在的 mysql 服务内存占用 MEM 占用为百分之 20 自己的两个java 服务各占 百分之 7.5 之前我会开两个 mysql 还有自己配置的1个nginx 那么 内存确实会占用很多。

ps -aux |grep mysqld           
polkitd  25395  0.5  19.9  1292132 374736 ?      Ssl  09:16   0:39 mysqld

进入docker 容器

docker exec -it dockermysql bash

切换到容器下的

cd /etc/mysql/conf.d

修改配置 : 在docker 中 mysql 目录下的 docker.cnf 自己猜测是 docker 对 mysql 的配置

vim docker.cnf

添加这几行 其中是把 performance_schema 关掉了

performance_schema_max_table_instances=400  
table_definition_cache=400  
table_open_cache=256
performance_schema = off

docker restart dockermysql

查看现在的mysqld 服务内存占用情况

[xxxxx centos ~]# ps -aux | grep mysqld 
polkitd  17423  0.7  6.6 1055400 125636 ?      Ssl  11:29   0:03 mysqld
root     18835  0.0  0.0 112812   972 pts/0    R+   11:36   0:00 grep --color=auto mysqld

确实内存会下降很多。

同时也修改了另一个 mysql 实例,

[xxxx centos ~]# ps -aux | grep mysqld
polkitd  17423  0.6  6.6 1055976 125636 ?      Ssl  11:29   0:04 mysqld
polkitd  19649  4.6  6.1 1052988 115068 ?      Ssl  11:39   0:01 mysqld

现在两个总共也就占用 13 的mem 估计这次是不会mysql 服务不会重启了。

关于这问题的其他参考 有关于 performance_schema的介绍 简单就是performance_schema 是一个会监控mysql 运行状态的一个线程,off 后性能肯定会提高, 其他几个是配置一些缓存 实例的减少。

https://zxacn.com/articles/2019/08/02/1564729999649.html

https://yq.aliyun.com/articles/207095

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档