GBase 8a提供了系统内存使用信息的元数据表,其中HEAP_USAGE_INFO是内部几个堆内存的使用情况,包括dc,large和temp,MEMORY_USAGE_INFO表则是该系欸但内存整体概况,包括峰值和出现峰值的时间等。同时当前session连接的内存使用信息可以通过SESSION_MEMORY_USAGE_INFO查看。
该功能,需要打开数据库统计内存功能才可看到数据。 GBase 8a集群统计运行期内存使用情况_gbase_session_memory_stat参数
目录导航
系统堆内存信息 HEAP_USAGE_INFO
注意,主要是gbased占用高,所以看gncli的表数据。
堆内存在配置参数内时,一旦分配了就不会归还操作系统。超过参数后,会从操作系统分配,使用后会归还操作系统。
说明
列名 | 类型 | 说明 |
---|---|---|
HOST | varchar(64) | 主机名(本机) |
HEAP_TYPE | varchar(16) | 堆类型(dc_heap,temp_heap,large_heap) |
HEAP_SIZE | bigint(16) | 堆总大小,单位字节 |
USED_IN_HEAP | bigint(16) | 堆使用中的大小,单位字节 |
USED_IN_SYSTEM | bigint(16) | 从操作系统额外申请的大小,单位字节 |
MAX_USED_BLOCK | bigint(16) | 当前堆中,最大块的大小,单位字节 |
MAX_FREE_BLOCK | bigint(16) | 当前堆中,最大可用块的大小,单位字节 |
USED_BLOCKS | bigint(16) | 堆中使用的块个数(申请成功的次数) |
样例
gbase> select * from heap_usage_info;
+---------------+------------+------------+--------------+----------------+----------------+----------------+-------------+
| HOST | HEAP_TYPE | HEAP_SIZE | USED_IN_HEAP | USED_IN_SYSTEM | MAX_USED_BLOCK | MAX_FREE_BLOCK | USED_BLOCKS |
+---------------+------------+------------+--------------+----------------+----------------+----------------+-------------+
| gbase_rh7_001 | dc_heap | 3075473408 | 69632 | 0 | 139264 | 3075403776 | 1 |
| gbase_rh7_001 | temp_heap | 511705088 | 2384 | 0 | 141600 | 511664128 | 7 |
| gbase_rh7_001 | large_heap | 1537212416 | 0 | 0 | 0 | 1537212416 | 0 |
+---------------+------------+------------+--------------+----------------+----------------+----------------+-------------+
3 rows in set (Elapsed: 00:00:00.00)
CELL堆内存使用详情
其中的SIZE是占用大小,与前面汇总的相当。 CLASS是分类(一个内部内存分配标记位,区分哪些类,哪些位置申请了内存,0-511. 每个分类,CELL,LARGE,TEMP各自独立),ADDR是内存地址,不看也罢。INHEAP如果是1则表示从配置的heap堆里分配的, 为0表示从操作系统malloc的(在新版95里也许指超过参数范围的)。
gbase> select * from mem_detail_cell;
+-------+-------+----------------+--------+
| CLASS | SIZE | ADDR | INHEAP |
+-------+-------+----------------+--------+
| 7 | 66666 | 0x7fd504cc2008 | 1 |
+-------+-------+----------------+--------+
1 row in set (Elapsed: 00:00:00.00)
LARGE堆内存使用详情
运行统计时才使用,之后释放。没特意去采集。
gbase> select * from mem_detail_large;
Empty set (Elapsed: 00:00:00.00)
TEMP堆内存使用详情
gbase> select * from mem_detail_temp;
+-------+------+----------------+--------+
| CLASS | SIZE | ADDR | INHEAP |
+-------+------+----------------+--------+
| 157 | 32 | 0x7fd489ac3008 | 1 |
| 59 | 29 | 0x7fd489ac3038 | 1 |
| 2 | 128 | 0x7fd489ac4008 | 1 |
| 4 | 8 | 0x7fd489ac5008 | 1 |
| 156 | 283 | 0x7fd489ac7008 | 1 |
| 156 | 700 | 0x7fd489ac9008 | 1 |
| 156 | 851 | 0x7fd489acb008 | 1 |
+-------+------+----------------+--------+
7 rows in set (Elapsed: 00:00:00.00)
系统内存概况 MEMORY_USAGE_INFO
说明
列名 | 类型 | 说明 |
---|---|---|
HOST | varchar(64) | 主机名 |
PHSICAL_MEMORY | bigint(16) | 物理内存大小,单位字节 |
SWAP_SIZE | bigint(16) | SWAP大小,单位字节 |
PCT | varchar(16) | pct内存上限设定参数 |
UPPER_LIMIT | bigint(16) | 内存上限大小 |
CURRENT_USED | bigint(16) | 内存当前使用量,单位字节 |
MEMORY_PEAK | bigint(16) | 内存使用峰值,单位字节 |
MEMORY_PEAK_TIMESTAMP | datetime | 内存峰值时的时间 |
样例
gbase> select * from MEMORY_USAGE_INFO;
+---------------+----------------+------------+-----+-------------+--------------+-------------+-----------------------+
| HOST | PHSICAL_MEMORY | SWAP_SIZE | PCT | UPPER_LIMIT | CURRENT_USED | MEMORY_PEAK | MEMORY_PEAK_TIMESTAMP |
+---------------+----------------+------------+-----+-------------+--------------+-------------+-----------------------+
| gbase_rh7_001 | 3974889472 | 4294963200 | 80% | 6615882137 | 3623336 | 5513664 | 2021-05-12 09:55:14 |
+---------------+----------------+------------+-----+-------------+--------------+-------------+-----------------------+
1 row in set (Elapsed: 00:00:00.00)
gbase> select * from MEMORY_USAGE_INFO\G
*************************** 1. row ***************************
HOST: gbase_rh7_001
PHSICAL_MEMORY: 3974889472
SWAP_SIZE: 4294963200
PCT: 80%
UPPER_LIMIT: 6615882137
CURRENT_USED: 3623336
MEMORY_PEAK: 5513664
MEMORY_PEAK_TIMESTAMP: 2021-05-12 09:55:14
1 row in set (Elapsed: 00:00:00.00)
SESSION级当前连接使用概况SESSION_MEMORY_USAGE_INFO
说明
列名 | 类型 | 说明 |
---|---|---|
HOST | varchar(64) | 主机名字 |
ID | bigint(8) | SESSION的ID号 |
CURRENT | bigint(16) | 当前使用的总量,单位字节 |
PEAK | bigint(16) | 峰值使用总量,单位字节 |
PEAK_TIMESTAMP | datetime | 峰值使用时间 |
TEMP_SPACE | bigint(16) | 临时空间使用总量,单位字节 |
样例
gbase> select * from SESSION_MEMORY_USAGE_INFO;
+-------+----+---------+---------+---------------------+------------+
| HOST | ID | CURRENT | PEAK | PEAK_TIMESTAMP | TEMP_SPACE |
+-------+----+---------+---------+---------------------+------------+
| rh6-2 | 9 | 17708 | 1430090 | 2021-05-11 13:45:06 | 0 |
+-------+----+---------+---------+---------------------+------------+
1 row in set (Elapsed: 00:00:00.00)