MySQL 内存监控
上一篇blog介绍了因为sql查询information_schema表而导致内存暴涨的case。
今天顺便做了一个thd内存的监控:
先来介绍下MySQL的内存:
1. 线程内内存:thd->mem_root, 线程在执行sql的过程中,申请的内存从thd->mem_root进行分配,在sql结束的时候释放。
2. 线程外内存:对象专有的mem_root; 比如,table, table_share,st_transactions等都有专有的mem_root。
所以: 对于sql引起的内存暴涨,可以监控thd->mem_root的变化情况。 但对于其它,比如创建的临时表等,需要另外监控。
在sql/sql_show.cc show processlist调用的函数中添加一个thd_size字段。
最终的结果如下:
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。