ITPub博客

首页 > 数据库 > MySQL > mysql进程内存过高排查记录

mysql进程内存过高排查记录

原创 MySQL 作者:风陵渡口_ 时间:2021-09-27 18:27:33 0 删除 编辑

场景说明:一台物理机上安装了多个实例,服务其中其中一个mysql进程内存占用很高,但是cpu并不是很高

下面是排查步骤,记录一下:

top 查看如下:

 PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND

26567 mysql     20   0  136.4g 131.0g      0 S   0.3 52.1  22384:05 mysqld

这台物理机配置是

user01@loclhost#  free -g

              total        used        free      shared  buff/cache   available

Mem:            251         191          18           4          41          51

Swap:             0           0           0


1、登录到这个实例看当前此实例在做什么操作:,mysql版本是percona mysql5.7.21

没有正在执行的慢操作或者大事务。

2、查看当前是否有为提交的事务和锁等待:select * from innodb_trx;select * from innodb_lock......

结果并无未提交的事务和锁等待,怀疑是内存泄漏了。

3、查看innodb_buffer_pool_size大小,为10G,根据实际情况,将其调整为1G,隔断时间查看,此实例内存使用量没有明显下降,使用量占据服务器内存的50%。

4、临时将general log 打开,观察实例的具体操作,发现是部分select 和insert 操作,select 操作条件上有索引。

5、登录pmm监控:

发现tokudb_cache_size大小占用 了126G。


登录数据库,查看当前库中tokudb存储引擎的表:

| db1         | t1             | TokuDB |

| db1         | t2            | TokuDB |

| db1         | t3            | TokuDB |

总结:默认情况下,tokudb_cache_size大小为物理内存的50%,如果服务器中有其他使用内存的进程,需要适当调整大小

tokudb_cache_size大小,类似于innodb_buffer_pool_size参数。



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30162734/viewspace-2794083/,如需转载,请注明出处,否则将追究法律责任。

上一篇: pxc 一些知识点
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2015-03-14

  • 博文量
    48
  • 访问量
    32823