GreatSQL社区

搜索

[已解决] MGR内存泄漏

1319 13 2022-9-16 08:59
mysql 8.22 社区版MGR ,单主模式,3个节点
物理内存250G,buffer_pool_size 160G

内存有规律的上升,每天8点左右开始,这期间有大量的truncate和insert操作,内存上升后不会下降

图片是内存free 20天的下降图

QQ图片20220916085717.png

全部回复(13)
whl 2022-9-16 09:31:01
yejr 发表于 2022-9-16 09:08
提供的有效信息太少了,可以先试着参考这篇文章的方法排查下 https://mp.weixin.qq.com/s/fLSg74hsin5Ke_oI ...

| event_name                           | SUM_NUMBER_OF_BYTES_ALLOC |
+--------------------------------------+---------------------------+
| memory/sql/thd::main_mem_root        |            54568542054568 |
| memory/innodb/memory                 |            15417625381008 |
| memory/mysys/IO_CACHE                |             8369781948717 |
| memory/sql/String::value             |             6756252872520 |
| memory/mysqld_openssl/openssl_malloc |             2863206219298 |
| memory/sql/Row_data_memory::memory   |             2773648818866 |
| memory/sql/QUICK_RANGE_SELECT::alloc |             1946417526992 |
| memory/sql/test_quick_select         |             1807490067447 |
| memory/temptable/physical_ram        |             1783641407488 |
| memory/sql/dd::String_type           |             1152711217889 |
+--------------------------------------+---------------------------+

+-------------------------------------+---------------------------+
| event_name                          | SUM_NUMBER_OF_BYTES_ALLOC |
+-------------------------------------+---------------------------+
| memory/innodb/memory                |             1935722160832 |
| memory/innodb/memory                |              385367474320 |
| memory/innodb/memory                |              375630501672 |
| memory/innodb/memory                |              205367364304 |
| memory/sql/Log_event                |              105803950764 |
| memory/innodb/memory                |              100870183984 |
| memory/sql/Sid_map::Node            |               38339059096 |
| memory/sql/Gtid_set::Interval_chunk |               34869508344 |
| memory/innodb/memory                |               31340182568 |
| memory/sql/Sid_map::Node            |               18132289968 |
| memory/innodb/btr0sea               |               17559875544 |
| memory/innodb/rem0rec               |               12632531858 |
| memory/innodb/btr0sea               |                3181547568 |
| memory/innodb/btr0pcur              |                2812761212 |
| memory/innodb/rem0rec               |                2020995687 |
| memory/innodb/btr0sea               |                1855721200 |
| memory/innodb/eval0eval             |                1465182873 |
| memory/innodb/rem0rec               |                1399025959 |
| memory/sql/String::value            |                1373462840 |
| memory/sql/MYSQL_LOCK               |                1098020024 |
+-------------------------------------+---------------------------+

排查不出其它问题,请指教
whl 2022-9-16 09:33:32
yejr 发表于 2022-9-16 09:08
提供的有效信息太少了,可以先试着参考这篇文章的方法排查下 https://mp.weixin.qq.com/s/fLSg74hsin5Ke_oI ...

让研发修改了,truncate和insert的任务时间后,内存下降问题,跟随着他们的任务也推迟了,大量trucnate和insert会导致内存问题?
whl 2022-9-16 11:34:35
yejr 发表于 2022-9-16 11:27
对linux下的很多进程来说,已申请的内存,用完后不会立即释放,而是先放在共享内存中,有必要时再归还给 ...

这里的大事务,是只insert操作了,insert每次只插入5千以内的数据,提交一次,这个还需要建议研发在减少每次插入的数据量吗,这个内存,一直不释放,怎么处理,一直在下降,有没有办法释放掉,现在mysql占用了198G的内存
whl 2022-9-16 11:37:41
yejr 发表于 2022-9-16 11:27
对linux下的很多进程来说,已申请的内存,用完后不会立即释放,而是先放在共享内存中,有必要时再归还给 ...

表的数据量并不大,4百万左右
whl 2022-9-16 12:02:36
donghy 发表于 2022-9-16 11:35
之前分析的一个案例:
https://mp.weixin.qq.com/s/Emjy42wFFZoGlmpNwcSnsw

现在如果要使用 jemalloc内存管理,必须安装后,重启mysql吧
whl 2022-9-19 09:00:20
yejr 发表于 2022-9-16 15:57
可以试试GreatSQL,默认启用jemalloc的,参考这里 https://greatsql.cn/doc/#!&v=35_22_0

让研发修改了insert大事务,减少每次insert量和间隔时间,观察内存没有在下降
whl

1

主题

0

博客

8

贡献

新手上路

Rank: 1

积分
15

2022年度博学人物

合作电话:010-64087828

社区邮箱:greatsql@greatdb.com

社区公众号
社区小助手
QQ群
GMT+8, 2024-5-19 06:43 , Processed in 0.021414 second(s), 21 queries , Redis On.
快速回复 返回顶部 返回列表