当前位置: 首页 > article >正文

MySQL内存分析常用语句

一、 OS层
首先需要确认是否是MySQL占用的内存

top -p $(pidof mysqld) -n 1


或者

cat /proc/$(pidof mysqld)/status


二、 DB层
1. 全局情况
各种buffer pool大小,是否有明显不合理的设置
SHOW GLOBAL VARIABLES LIKE '%buffer%szie%';


MySQL总占用内存
SELECT * FROM sys.memory_global_total;


2. 内存占用详情
按内存模块
SELECT
  EVENT_NAME,
  CURRENT_NUMBER_OF_BYTES_USED AS memory_bytes,
  CURRENT_NUMBER_OF_BYTES_USED / 1024 / 1024 AS memory_mb
FROM
  performance_schema.memory_summary_global_by_event_name
WHERE
  CURRENT_NUMBER_OF_BYTES_USED > 0
ORDER BY
  CURRENT_NUMBER_OF_BYTES_USED DESC
LIMIT 10;


各模块内存使用变化(结果是累计值,可以根据差值观察变化情况)
多次查询,求差值

SELECT
  EVENT_NAME,
  SUM(SUM_NUMBER_OF_BYTES_ALLOC) / 1024 / 1024 AS total_memory_mb
FROM
  performance_schema.memory_summary_global_by_event_name
GROUP BY
  EVENT_NAME
ORDER BY
  SUM_NUMBER_OF_BYTES_ALLOC DESC
LIMIT 10;


按线程查看内存占用
SELECT
  m.EVENT_NAME,
  m.COUNT_ALLOC,
  m.CURRENT_NUMBER_OF_BYTES_USED AS mem_sum,
  (m.CURRENT_NUMBER_OF_BYTES_USED / 1024 / 1024.0) AS mem_sum_mb,
  t.NAME,
  t.TYPE,
  t.PROCESSLIST_ID,
  LEFT(t.PROCESSLIST_INFO, 10)
FROM
  performance_schema.memory_summary_by_thread_by_event_name m
  JOIN performance_schema.threads t
 USING (THREAD_ID)
WHERE   
 t.PROCESSLIST_ID != CONNECTION_ID()
ORDER BY
  m.CURRENT_NUMBER_OF_BYTES_USED desc
LIMIT 10;


sys库中的视图基于 performance_schema 提供了更易读和易用的性能数据汇总

SELECT * FROM sys.memory_by_thread_by_current_bytes LIMIT 10;
 ​​​​​​​​​

内存分布详情
SELECT * FROM sys.memory_global_by_current_bytes order by current_alloc desc LIMIT 10;


按用户排序
SELECT * FROM sys.memory_by_user_by_current_bytes;


参考

GreatSQL 运行时内存太高,超过90%怎么办(重发,附解决办法)-CSDN博客

MySQL内存使用率高且不释放问题排查与总结_Mysql_脚本之家

MySQL 8.0不再担心被垃圾SQL搞爆内存 - GreatSQL - 博客园

MySQL内存为什么不断增高,怎么让它释放 - 墨天轮

MySQL进程内存一直在涨,怎么办? - 墨天轮


http://www.kler.cn/a/459190.html

相关文章:

  • “大数据+职业本科”:VR虚拟仿真实训室的发展前景
  • C++ 面向对象编程:多态、虚函数原理
  • 《计算机组成及汇编语言原理》阅读笔记:p177-p177
  • 安卓播放器TVbox或影视仓软件如何链接到xiaoya小雅超集?很详细的教程
  • 如何在IDEA一个窗口中导入多个项目
  • 快速掌握Elasticsearch检索之二:滚动查询(scrool)获取全量数据(golang)
  • 基本算法——聚类
  • 基于eBPF的微服务网络安全(Cilium 1)
  • spring-boot 日志配置的几种方式
  • 【每日学点鸿蒙知识】Shape描述、全局loading组件、checkbox样式、H5监听键盘收起、弹窗不关闭
  • 利用JavaScript实现猜数字
  • k8S-foundation-_ label、ns
  • Java设计模式 —— 【行为型模式】模板方法模式(Template Method Pattern) 详解
  • EasyExcel(环境搭建以及常用写入操作)
  • 智能工厂的设计软件 应用场景的一个例子:为AI聊天工具添加一个知识系统 之8 重新开始 之1
  • 如何在 Ubuntu 22.04 上添加 Swap 内存
  • nginx中try_files $uri $uri index.html的作用 和 $uri的含义
  • 【每日学点鸿蒙知识】PersistentStorage持久化、插槽方法、相对布局、上拉加载下拉刷新、List联动滑动
  • 【GO基础学习】Gin 框架中间件的详解
  • Error: The Calculated NPWS= 84330 != The Read NPWS= 84328
  • 优化租赁小程序提升服务效率与用户体验的策略与实践
  • 代码随想录算法训练营第六天 | 242. 有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和
  • 如何利用无线路由器实现水泵房远程监测管理
  • 关于科研工具的思考
  • 企业能源物联网数据采集设备
  • WOFOST作物模型(3):敏感性分析