首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >current_allocation S total_allocation在MySQL sys.memory_by_thread_by_current_bytes中的差异

current_allocation S total_allocation在MySQL sys.memory_by_thread_by_current_bytes中的差异
EN

Database Administration用户
提问于 2023-03-11 05:17:42
回答 1查看 45关注 0票数 0

我正在调试MySQL 5.7.37中的内存泄漏,运行以下查询可以了解每个线程运行的线程和内存分配情况。

代码语言:javascript
复制
select * from sys.memory_by_thread_by_current_bytes

输出显示了一些在total_allocated中具有GiB值的线程。但是,current_allocated值仍然在MiB中。我看到的一些值如下:

  • current_count_used => 1783年
  • current_allocated => 262.46MiB
  • current_avg_alloc => 150.74KiB
  • current_max_alloc => 259.49MiB
  • total_alloc => 16.07GiB

我如何解释上述数据?这是否意味着total_allocated内存是从内存中为这个线程保留的?

EN

回答 1

Database Administration用户

发布于 2023-03-11 20:49:03

正如文档:current_allocated中所提到的,线程当前分配的字节数尚未被释放。

total_allocated -线程的total内存分配以字节为单位。

其他查询可能会给您提供更多信息。

代码语言:javascript
复制
select * from sys.memory_global_total;
select thd_id,conn_id, current_memory from sys.session;
select * from memory_summary_by_thread_by_event_name where thread_id= "ID of the thread with high memory usage" order by CURRENT_NUMBER_OF_BYTES_USED;
select thread_id, user, current_allocated from memory_by_thread_by_current_bytes;

内存使用率高的常见原因可能是:

  • 一个查询中的多个语句
  • 缓冲池问题(可能是因为“冷”数据库(新鲜开始),很多脏页)
  • 临时表格问题
  • 其他问题

有关更多细节,您可以查看此页

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/324643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档