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字段。

最终的结果如下:

  

MySQL 内存监控

时间: 2024-10-28 21:40:35

MySQL 内存监控的相关文章

MySql:监控及优化

1.mysql的生命周期 ①MySql服务器监听3306端口 ②验证访问用户 ③创建mysql线程 ④检查内存(Qcache) ⑤解析sql ⑥生成查询计划 ⑦打开表 ⑧检查内存(Buffer Pool) ⑨到磁盘取数据 ⑩写入内存 ①①返回数据给客户端 ①②关闭表 ①③关闭线程 ①④关闭连接 2.mysql配置 linux下两种进入mysql的方式: ①设置别名 ②将mysql的/opt/lampp/bin/目录加入环境变量 ③让设置的别名永久生效 vi ~/.bashrc alias my=

对正在运行的mysql进行监控

对正在运行的mysql进行监控,其中一个方式就是查看mysql运行状态. (1)QPS(每秒Query量) QPS = Questions(or Queries) / seconds mysql > show global status like "Question%"; (2)TPS(每秒事务量) TPS = (Com_commit + Com_rollback) / seconds mysql > show global status like "Com_co

MySQL 性能监控4大指标——第二部分

[编者按]本文作者为 John Matson,主要介绍mysql 性能监控应该关注的4大指标.第一部分介绍了前两个指标:查询吞吐量与查询执行性能.本文将继续介绍另两个指标:MySQL 连接与缓冲池.文章系国内ITOM 管理平台OneAPM 编译呈现. 连接 名称 描述 指标类型 可用性 Threads_connected 当前开放的连接 资源: 利用率 服务器状态变量 Threads_running 当前运行的连接 资源: 利用率 服务器状态变量 Connection_errors_intern

MySQL 性能监控 4 大指标

[编者按]本文作者为 John Matson,主要介绍 mysql 性能监控应该关注的 4 大指标. 文章系国内 ITOM 管理平台 OneAPM 编译呈现.    MySQL 是什么? MySQL 是现而今最流行的开源关系型数据库服务器.由 Oracle 所有,MySQL 提供了可以免费下载的社区版及包含更多特性与支持的商业版.从 1995 年首发以来,MySQL 衍生出多款备受瞩目的分支,诸如具有相当竞争力的 MariaDB 及 Percona. 关键 MySQL 统计指标 如果你的数据库运

使用Flask结合python实现多台服务的内存监控

使用Flask结合python实现多台服务的内存监控   简介:使用flask结合python可以很好的实现服务资源的监控,而且Flask是一个使用 Python 编写的轻量级 Web 应用框架.其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 .Flask使用 BSD 授权. 接下来我们实现多台服务器的内存监控,并出图. 环境:centos1-6.5  ip:172.25.0.31   ##做flask python数据获取 Centos2-6.5  ip:172.2

10min 手写一个内存监控系统

本文的目的在于,尽可能用简单的代码,让大家了解内存监控的原理,及思想.更容易去理解Nagios.Zabbix.Ganglia监控原理,文章最后还有视频教程链接哦,从零敲出来的全过程 思路分为下面几块: 1.获取内存监控信息 2.存储监控信息 3.数据展现 4.后续扩展 1.加主机名,monitor部署在多台机器,不直接插入数据库 2. 增加CPU,Disk监控 3. 通过HTTP请求的方式,启用一个单独的Flask专门存储monitor数据 第一步:获取内存信息 我们通过读取 /proc/mem

MySQL内存使用查看方式

使用版本:MySQL 5.7 在performance_schema有如下表记录内存使用情况 mysql> show tables like '%memory%summary%'; +-------------------------------------------------+ | Tables_in_performance_schema (%memory%summary%) | +-------------------------------------------------+ | m

mysql常见监控503错误的软件

mysql常见监控软件:iis7服务器监控工具可以直接监控503错误监控,所以当503错误出现的时候可以直接发现:那我们应该监控MySQL的那些状态呢? 1.MySQL服务运行状态 约定所有MySQL服务都必须以ip1(内网ip)来绑定,每个机器只有一个ip1,可以有多个端口,即多个MySQL Server.采集程序读取ip端口信息文件来判断server是否存在. sockParam=ps aux | grep -P "mysqld.*--port=${port}" | grep -o

MYSQL 内存报错 Use 'mysqld --thread_stack=#' to specify a bigger stack.

MYSQL 内存报错 Use 'mysqld --thread_stack=#' to specify a bigger stack. 今天在使用mysql的过程中,连接数据库始终无法成功 最后发现是数据库无法执行增加修改的操作 :错误代码 Thread stack overrun:  11552 bytes used of a 131072 byte stack, and 128000 bytes needed.  Use 'mysqld --thread_stack=#' to specif