GBase 8a 提供了查看当前系统运行期状况的元数据表,其中performance_schema.CACHE_usage_info表包含了当前服务的内存缓冲信息,以及每个DC的具体详情CACHE_CELL_STATUS_INFO。本文介绍该表的使用方法。
该功能,需要打开数据库统计内存功能才可看到数据。 GBase 8a集群统计运行期内存使用情况_gbase_session_memory_stat参数
目录导航
CACHE_usage_info 元数据表
说明
字段 | 类型 | 说明 |
---|---|---|
HOST | varchar(64) | 主机名字,就是本机 |
TOTAL_DC | bigint(16) | DC总数量 |
UNLOCKED_DC | bigint(16) | 没有被锁住的DC总数量(表示可以被redlease释放) |
TOTAL_DC_SIZE | bigint(16) | DC占用总内存大小(单位:字节) |
UNLOCKED_DC_SIZE | bigint(16) | 没有被锁住的DC占用内存大小(单位:字节) |
HOT_TOTAL_DC | bigint(16) | 热数据DC数量 |
HOT_UNLOCKED_DC | bigint(16) | 没有被锁住的热数据DC数量 |
HOT_TOTAL_DC_SIZE | bigint(16) | 热数据DC占用总内存大小(单位:字节) |
HOT_UNLOCKED_DC_SIZE | bigint(16) | 没有被锁住的热数据DC占用内存大小(单位:字节) |
COLD_TOTAL_DC | bigint(16) | 冷数据DC数量 |
COLD_UNLOCKED_DC | bigint(16) | 没有被锁住的冷数据DC数量 |
COLD_TOTAL_DC_SIZE | bigint(16) | 冷数据DC占用总内存大小(单位:字节) |
COLD_UNLOCKED_DC_SIZE | bigint(16) | 没有被锁住的冷数据DC占用内存大小(单位:字节) |
HIT_RATE | varchar(16) | DC命中率 |
使用样例
默认没有缓冲时
全部数值为0
gbase> select * from CACHE_usage_info;
+-------+----------+-------------+---------------+------------------+--------------+-----------------+-------------------+----------------------+---------------+------------------+--------------------+-----------------------+----------+
| HOST | TOTAL_DC | UNLOCKED_DC | TOTAL_DC_SIZE | UNLOCKED_DC_SIZE | HOT_TOTAL_DC | HOT_UNLOCKED_DC | HOT_TOTAL_DC_SIZE | HOT_UNLOCKED_DC_SIZE | COLD_TOTAL_DC | COLD_UNLOCKED_DC | COLD_TOTAL_DC_SIZE | COLD_UNLOCKED_DC_SIZE | HIT_RATE |
+-------+----------+-------------+---------------+------------------+--------------+-----------------+-------------------+----------------------+---------------+------------------+--------------------+-----------------------+----------+
| rh6-2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 100% |
+-------+----------+-------------+---------------+------------------+--------------+-----------------+-------------------+----------------------+---------------+------------------+--------------------+-----------------------+----------+
1 row in set (Elapsed: 00:00:00.00)
查询一个表后
该表有50万行,8个DC(每个DC 65536行)。可以看到缓冲的DC数量为8. 命中率30%。
gbase> select * from testdb.t1_n1;
+-------+------+
| id | name |
+-------+------+
| 222 | NULL |
| 5105 | NULL |
| 18263 | NULL |
| 16969 | NULL |
| 6116 | NULL |
^C| 13664 | Query aborted by Ctrl+C
NULL |
+-------+------+
500001 rows in set (Elapsed: 00:00:00.61)
gbase> select * from CACHE_usage_info;
ERROR 1317 (70100): Query execution was interrupted
gbase> select * from CACHE_usage_info;
+-------+----------+-------------+---------------+------------------+--------------+-----------------+-------------------+----------------------+---------------+------------------+--------------------+-----------------------+----------+
| HOST | TOTAL_DC | UNLOCKED_DC | TOTAL_DC_SIZE | UNLOCKED_DC_SIZE | HOT_TOTAL_DC | HOT_UNLOCKED_DC | HOT_TOTAL_DC_SIZE | HOT_UNLOCKED_DC_SIZE | COLD_TOTAL_DC | COLD_UNLOCKED_DC | COLD_TOTAL_DC_SIZE | COLD_UNLOCKED_DC_SIZE | HIT_RATE |
+-------+----------+-------------+---------------+------------------+--------------+-----------------+-------------------+----------------------+---------------+------------------+--------------------+-----------------------+----------+
| rh6-2 | 8 | 8 | 1000098 | 1000098 | 8 | 8 | 1000098 | 1000098 | 0 | 0 | 0 | 0 | 30% |
+-------+----------+-------------+---------------+------------------+--------------+-----------------+-------------------+----------------------+---------------+------------------+--------------------+-----------------------+----------+
1 row in set (Elapsed: 00:00:00.00)
gbase> select * from CACHE_usage_info\G;
*************************** 1. row ***************************
HOST: rh6-2
TOTAL_DC: 8
UNLOCKED_DC: 8
TOTAL_DC_SIZE: 1000098
UNLOCKED_DC_SIZE: 1000098
HOT_TOTAL_DC: 8
HOT_UNLOCKED_DC: 8
HOT_TOTAL_DC_SIZE: 1000098
HOT_UNLOCKED_DC_SIZE: 1000098
COLD_TOTAL_DC: 0
COLD_UNLOCKED_DC: 0
COLD_TOTAL_DC_SIZE: 0
COLD_UNLOCKED_DC_SIZE: 0
HIT_RATE: 30%
1 row in set (Elapsed: 00:00:00.00)
再次查询该表的100行
命中率增加到了36.36%,全部是热数据。
gbase> select * from testdb.t1_n1 limit 100;
+-------+------+
| id | name |
+-------+------+
| 222 | NULL |
。。。。。。
| 23793 | NULL |
+-------+------+
100 rows in set (Elapsed: 00:00:00.00)
gbase> select * from CACHE_usage_info\G;
*************************** 1. row ***************************
HOST: rh6-2
TOTAL_DC: 8
UNLOCKED_DC: 8
TOTAL_DC_SIZE: 1000098
UNLOCKED_DC_SIZE: 1000098
HOT_TOTAL_DC: 8
HOT_UNLOCKED_DC: 8
HOT_TOTAL_DC_SIZE: 1000098
HOT_UNLOCKED_DC_SIZE: 1000098
COLD_TOTAL_DC: 0
COLD_UNLOCKED_DC: 0
COLD_TOTAL_DC_SIZE: 0
COLD_UNLOCKED_DC_SIZE: 0
HIT_RATE: 36.36%
1 row in set (Elapsed: 00:00:00.00)
DC详细信息源数据表 CACHE_CELL_STATUS_INFO
说明
字段 | 类型 | 说明 |
---|---|---|
TABLE_ID | bigint(16) | 表编号(GBase 8a查看表的tableId) |
COLUMN_ID | bigint(16) | 列编号,从0开始 |
DP | bigint(16) | DC的位置,从0开始 |
LOCK_COUNT | bigint(16) | 被锁的次数 |
LOCKED | bigint(16) | 锁住状态,1=是,0=否 |
SIZE | bigint(16) | 占用内存大小 |
样例
如下是前面的内存缓冲表数据,每个DC的情况信息
gbase> select * from CACHE_CELL_STATUS_INFO;
+----------+-----------+----+------------+--------+--------+
| TABLE_ID | COLUMN_ID | DP | LOCK_COUNT | LOCKED | SIZE |
+----------+-----------+----+------------+--------+--------+
| 243717 | 0 | 6 | 0 | 0 | 131084 |
| 243717 | 0 | 7 | 0 | 0 | 82510 |
| 243717 | 0 | 3 | 0 | 0 | 131084 |
| 243717 | 0 | 2 | 0 | 0 | 131084 |
| 243717 | 0 | 5 | 0 | 0 | 131084 |
| 243717 | 0 | 1 | 0 | 0 | 131084 |
| 243717 | 0 | 4 | 0 | 0 | 131084 |
| 243717 | 0 | 0 | 0 | 0 | 131084 |
+----------+-----------+----+------------+--------+--------+
8 rows in set (Elapsed: 00:00:00.00)