docker 中的mysql 经常重启优化
自己的腾讯云 服务器为 学生机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
- 巧用Live Template,不仅能提升AS开发效率,还能装逼
- 黑了前男友网站:从找SQL注入到后台权限
- 扩展CakePHP的CacheHelper以使用缓存引擎
- 走进科学:酒店保险箱真的保险么?
- 利用xmlrpc.php对WordPress进行暴力破解攻击
- .Net中如何操作IIS
- Havex:以工控设备为狩猎目标的恶意软件
- 大规模异常滥用检测:基于局部敏感哈希算法——来自Uber Engineering的实践
- 浅谈php安全
- 在统一的分析平台上构建复杂的数据管道
- 隐藏在注册表的恶意软件 – Poweliks
- 数千万WordPress和Drupal站点存在DDoS风险
- 利用基因突变和K均值预测地区种群
- 缓冲区溢出攻击初学者手册(更新版)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Mybatis高级查询(四):延迟加载
- I/O多路复用器之隐秘的角落
- 打卡群刷题总结0809——二叉树的锯齿形层次遍历
- 简单的ssm整合练手项目:汽车项目
- 在spring-boot中使用pageHelper插件
- 要深入 JavaScript,你需要掌握这 36 个概念
- mybatis-plus实现增删改查
- mybatis-plus代码生成器
- mybatis-plus逻辑删除
- mybatis-plus一些关键配置
- mybatis-plus自定义sql注入器
- k8s代码走读---kube-controller-manager
- 我们一起学一学渗透测试——黑客应该掌握的HTML基础知识(一)
- 一套漏洞组合拳接管你的账号
- 我们一起学一学渗透测试——黑客应该掌握的HTML基础知识(二)