欢迎光临
我们一直在努力

【MYSQL】mysql5.7-bug -information_schema的表被查询可能导致内存泄漏

  1. [11 May 2017 6:57] ChoShing Ma
  2. Description:
  3. Running a query (on Information _Schema.tables (where clause) to exclude system schema, showing memory growing eventually Outofmemory. Number of table entries around 20,000 (40 databases with 500 tables for each db)
  4. mysql uroot h227.0.0.1 e “select concat_ws(‘|’,ifnull(TABLE_SCHEMA,”),ifnull(TABLE_NAME,”),ifnull(ENGINE,”),ifnull(TABLE_ROWS,’0′),ifnull(DATA_LENGTH,’0′), ifnull(INDEX_LENGTH,’0′),ifnull(DATA_FREE,’0′), ifnull(TABLE_COLLATION,”),ifnull(CREATE_TIME,”), ifnull(UPDATE_TIME,”)) from information_schema.TABLES where TABLE_SCHEMA not in (‘mysql’,’test’,’information_schema’,’performance_schema’,’sys’);”
  5. How to repeat:
  6. Please refer to attached document.
  7. table_definition_cache=10000
  8. table_open_cache =10000
  9. innodb_open_files=10000
  10. open_files_limit=10000
  11. run the sql query every second and record the memory growing from OS and the mysqld.
  12. mysql uroot h227.0.0.1 e “select concat_ws(‘|’,ifnull(TABLE_SCHEMA,”),ifnull(TABLE_NAME,”),ifnull(ENGINE,”),ifnull(TABLE_ROWS,’0′),ifnull(DATA_LENGTH,’0′), ifnull(INDEX_LENGTH,’0′),ifnull(DATA_FREE,’0′), ifnull(TABLE_COLLATION,”),ifnull(CREATE_TIME,”), ifnull(UPDATE_TIME,”)) from information_schema.TABLES where TABLE_SCHEMA not in (‘mysql’,’test’,’information_schema’,’performance_schema’,’sys’);”
  13. Suggested fix:
  14. No idea but the memory is growing.

         日前,作者遇到一个疑似“内存”泄露的问题,一时找不头绪,然后就从mysql的官方上找线索,发现了上面的bug(见上图,bug id 86279 ),查询information_schema下的tables表导致内存溢出。 经动手简单测试,貌似还真有这回事。 同理,该schema下的其他的一下表,可能也存在这个问题。

         对于表数量特别多的系统,可能更需要慎重。 但也无须惊慌,上面写的重现现象是重复查询,然后内存逐步增长,最终OOM.

         

         以上信息仅供各位朋友参考!!!

percona 5.7 

  1. https://bugs.launchpad.net/perconaserver/+bug/1693511 performance占用大量内存10G左右稳定下来
赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。