mariadb 10.1查看per connection内存消耗

Posted 太白的技术博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mariadb 10.1查看per connection内存消耗相关的知识,希望对你有一定的参考价值。

在mariadb 10.1版本中,在information_schema.processlist表中,新增了几个字段,其中有一个memory_used,其记录的是连接的内存消耗。

同时新增了一个状态变量memory_used,其记录的应该是所有连接加起来消耗的内存(官方并没有特别详细地解释https://mariadb.com/kb/en/mariadb/show-processlist/),应该类似于oracle pga的概念。

为了再检查下mysql占用内存远超过buffer pool的原因,我们特地让运维将某个线上实例从percona切换到了mariadb 10.1.21进行观察。如下:

[root@iZbp13xgu1d7hpg1gca4ndZ ~]# mysql -uroot -pmysql
Welcome to the MariaDB monitor.  Commands end with ; or \\g.
Your MariaDB connection id is 1046786
Server version: 10.1.20-MariaDB MariaDB Server

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type \'help;\' or \'\\h\' for help. Type \'\\c\' to clear the current input statement.

MariaDB [(none)]> show status like \'%memory_used%\';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Memory_used   | 67464 |
+---------------+-------+
1 row in set (0.00 sec)

MariaDB [(none)]> show global status like \'%memory_used%\';
+---------------+-----------+
| Variable_name | Value     |
+---------------+-----------+
| Memory_used   | 568761128 |
+---------------+-----------+
1 row in set (0.00 sec)

MariaDB [(none)]> select user,host,memory_used from information_schema.processlist;
+-----------------+----------------------+-------------+
| user            | host                 | memory_used |
+-----------------+----------------------+-------------+
| root            | localhost            |       84576 |
| osm             | 10.253.106.167:47847 |       95376 |
| osm             | 10.253.106.167:47843 |       94616 |
| osm             | 10.253.106.167:47845 |       94224 |
| osm             | 10.253.106.167:47841 |       93856 |
| osm             | 10.253.106.167:47835 |       94224 |
| osm             | 10.253.106.167:47836 |       94616 |
| osm             | 10.253.106.167:47831 |       67464 |
| osm             | 10.253.106.167:47832 |       67464 |
| osm             | 10.253.106.167:47815 |       71312 |
| osm             | 10.253.106.167:47791 |       67464 |
| osm             | 10.253.106.167:47792 |       67464 |
| osm             | 10.253.106.167:47780 |       67464 |
| event_scheduler | localhost            |       39784 |
+-----------------+----------------------+-------------+
14 rows in set (0.00 sec)

在其内存输出中,没有办法得出global memory_used是如何组成的?processlist汇总起来也不是这个值,这确实比较奇怪,官方和各种forum也没找到各种解释。。。

该服务器buffer pool配置的是4GB,外有一些临时表在用,当前的进程内存消耗如下:

所以,就算4GB+memory_used也差不多4.55G差不多,和实际的6.4G差距还是蛮大的,看来mysql在这方面还是需要有较大的改进。

以上是关于mariadb 10.1查看per connection内存消耗的主要内容,如果未能解决你的问题,请参考以下文章

MariaDB-10.1yum安装方法

mariadb5.5升级mariadb10.1

mariadb-10.1主从复制

下载安装MariaDB Galera 10.1

centos7 Mariadb安装

How to Upgrade MariaDB 5.5 to MariaDB 10.1 on CentOS/RHEL 7 and Debian Systems