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在这方面还是需要有较大的改进。

posted @ 2017-01-18 08:47  zhjh256  阅读(700)  评论(0编辑  收藏  举报