Innodb分表太多或者表分区太多,会导致内存耗尽而宕机

微信扫一扫,分享到朋友圈

Innodb分表太多或者表分区太多,会导致内存耗尽而宕机

因为线上某个应用表分区太多,直接导致遍历表或者dump数据的时候导致内存耗尽死机。原因是Innodb的数据字典不会释放内存,会将所有表和分区的信息记录在内存当中,当表数量或者分区数到达一定数量之后(经验值:约10万张表或者10万个表分区,占用将近1G大小的内存),会导致内存耗尽。

my.cnf 配置参数: innodb_additional_mem_pool_size

查看数据字典使用多少内存:

SHOW engine innodb STATUS\\G

Dictionary memory allocated xxxxxxx

针对这种情况, Vadim
提供了一个限制数据字典占用内存大小(Limiting InnoDB Data Dictionary)的 补丁
,用来限制数据字典占用内存的大小,采用LRU淘汰算法,只保留最新使用的表信息。

觉得文章有用?立即:和朋友一起 共学习 共进步!

建议继续学习:


  1. ps – 按进程消耗内存多少排序    (阅读:10176)

  2. Linux内存点滴 用户进程内存空间    (阅读:9590)

  3. Linux Used内存到底哪里去了?    (阅读:8614)

  4. Linux操作系统的内存使用方法详细解析    (阅读:8302)

  5. 几个内存相关面试题(c/c++)    (阅读:7349)

  6. linux内核研究笔记(一)内存管理 – page介绍    (阅读:7075)

  7. Innodb IO优化-配置优化    (阅读:5972)

  8. 内存越界的概念和调试方法    (阅读:5759)

  9. 必看!linux系统如何查看内存使用情况    (阅读:5622)

  10. 如何查看Linux 硬件配置信息    (阅读:5141)

QQ技术交流群:445447336,欢迎加入!

扫一扫订阅我的微信号:IT技术博客大学习

微信扫一扫,分享到朋友圈

Innodb分表太多或者表分区太多,会导致内存耗尽而宕机

InfluxDB 2.0.0 Beta 15 发布,开源时序数据库

上一篇

项目总结 | 九种缺失值处理方法总有一种适合你

下一篇

你也可能喜欢

Innodb分表太多或者表分区太多,会导致内存耗尽而宕机

长按储存图像,分享给朋友