在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

怎么理解MySQL中多源复制引起的内存泄漏

140次阅读
没有评论

共计 2472 个字符,预计需要花费 7 分钟才能阅读完成。

怎么理解 MySQL 中多源复制引起的内存泄漏,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

场景 :
MySQL-5.7, 所有的小版本 (=17), percona-mysql-5.7 所有版本;
开启多源复制的只读实例的内存无限增长, 直到触发系统的 OOM Kill;

结论 :
mysql bug, 附上 bug 单链接: https://bugs.mysql.com/bug.php?id=85371

现象描述 :
内存监控如图

问题原因:
目前只能基于现象来分析;

开启 binlog_rows_query_log_events 之后, 启用多源复制的 slave 会出现内存泄漏; 
表现为内存使用率不断增长: 占用内存的为 slave_sql 线程, 数据库事件为 memory/sql/Log_event;

相关数据 (来源于截图中的实例): 
重启只读 slave 之后, 相关事件的内存使用: 
申请了内存, 但是没有释放过: COUNT_FREE, SUM_NUMBER_OF_BYTES_FREE 为 0

点击 (此处) 折叠或打开

*************************** 2. row ***************************

 THREAD_ID: 18189

 EVENT_NAME: memory/sql/Log_event

 COUNT_ALLOC: 521692

 COUNT_FREE: 0

 SUM_NUMBER_OF_BYTES_ALLOC: 117988604

 SUM_NUMBER_OF_BYTES_FREE: 0

 LOW_NUMBER_OF_BYTES_USED: 25286276

CURRENT_NUMBER_OF_BYTES_USED: 117988604

 HIGH_NUMBER_OF_BYTES_USED: 117988604

*************************** 3. row ***************************

 THREAD_ID: 18183

 EVENT_NAME: memory/sql/Log_event

 COUNT_ALLOC: 521426

 COUNT_FREE: 0

 SUM_NUMBER_OF_BYTES_ALLOC: 117732632

 SUM_NUMBER_OF_BYTES_FREE: 0

 LOW_NUMBER_OF_BYTES_USED: 25154914

CURRENT_NUMBER_OF_BYTES_USED: 117732632

 HIGH_NUMBER_OF_BYTES_USED: 117732632

两小时以后:

点击 (此处) 折叠或打开

*************************** 1. row ***************************

 THREAD_ID: 18189

 EVENT_NAME: memory/sql/Log_event

 COUNT_ALLOC: 2297022

 COUNT_FREE: 0

 SUM_NUMBER_OF_BYTES_ALLOC: 525744164

 SUM_NUMBER_OF_BYTES_FREE: 0

 LOW_NUMBER_OF_BYTES_USED: 25286276

CURRENT_NUMBER_OF_BYTES_USED: 525744164

 HIGH_NUMBER_OF_BYTES_USED: 525744164

*************************** 2. row ***************************

 THREAD_ID: 18183

 EVENT_NAME: memory/sql/Log_event

 COUNT_ALLOC: 2296412

 COUNT_FREE: 0

 SUM_NUMBER_OF_BYTES_ALLOC: 524600639

 SUM_NUMBER_OF_BYTES_FREE: 0

 LOW_NUMBER_OF_BYTES_USED: 25154914

CURRENT_NUMBER_OF_BYTES_USED: 524600639

 HIGH_NUMBER_OF_BYTES_USED: 524600639

event 对应的线程:

点击 (此处) 折叠或打开

*************************** 1. row ***************************

 thd_id: 18183

 conn_id: 18158

 user: sql/slave_sql

 command: Sleep

 state: Slave has read all relay log; waiting for more updates

current_memory: 532.28 MiB

*************************** 2. row ***************************

 thd_id: 18189

 conn_id: 18164

 user: sql/slave_sql

 command: Sleep

 state: Slave has read all relay log; waiting for more updates

current_memory: 533.50 MiB

2 rows in set (0.10 sec)

解决方案 :
关闭 binlog_rows_query_log_events(默认就是关闭的),
实际上这个参数主要是控制 binlog 中是否记录原始 SQL 语句的, 主要是 Debug 用;
而平时用 -vv 来解析 binlog 以后, 本身也会注明 row 模式中的 SQL 语句, 可读性也还可以接受;

这个 bug 目前是 S2(Serious)

关闭这个配置以后, 内存变化如上图的后半部分, 基本可以看到不再有明显的上升趋势;
需要注意的是, 并不一定就不再有内存泄漏的问题了。

关于怎么理解 MySQL 中多源复制引起的内存泄漏问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注丸趣 TV 行业资讯频道了解更多相关知识。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-19发表,共计2472字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 国产高清第一页 | 欧美高清在线视频一区二区 | 免费日韩视频 | 小荡货好紧好爽奶头大视频 | 亚洲乱码日产精品m | 国内精品久久久久久久久野战 | 欧美做爰gif动态图一区二区 | 特级黄国产片一级视频播放 | 制服丝袜美腿一区二区 | 蜜桃视频一区二区三区 | 91佛爷美容院女老板在线播放 | 精品国产视频 | 亚洲精品无码久久久久久久 | 伊人激情久久综合中文字幕 | 99久久精品日本一区二区免费 | 久久99精品综合国产首页 | 欧美自拍嘿咻内射在线观看 | 午夜性色福利在线视频福利 | 手机在线色视频 | 中文亚洲av片在线观看不卡 | 热99精品| 亚洲在线一区二区 | 亚洲av无码专区在线播放中文 | 午夜成人鲁丝片午夜精品 | 日韩在线二区全免费 | 国产免费做爰午夜视频 | 高清黄色直接看 | 国产精品a成v人在线播放 | 成人久久久久久久久久久 | 亚洲精品免费在线 | 久久国产乱子伦免费精品 | 国产精品国产三级国产av′ | 国产美女做a免费视频软件 国产美女做爰免费视 | 欧美成人a| 久播影院理论片成年看 | 99999久久久久久亚洲 | 国产精品成人免费视频网站京东 | 大学生高潮无套内谢视频 | 亚洲成a∨人片在线观看不卡 | 成人三级在线视频 | 香港曰本韩国三级网站 |