虚谷系统表探究:SYS_MEM_STATUS

本文详细解读了虚谷数据库的sys_mem_status表,关注数据缓冲区和SGA缓存的内存使用情况,包括BUFF_SIZE、缓冲区数量及其状态变化,以及SGA区块大小和内存消耗。这些指标有助于分析数据库内存使用效率和优化性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系统部分内存监控信息-sys_mem_status

序号字段名类型备注
1NODEIDINTEGER节点号
2CURR_TDATETIME当前时间
3BUFF_SIZEBIGINT数据区块大小,单位B
4TOTAL_BUFF_NUMBIGINT数据缓冲区buff数
5FREE_BUFF_NUMBIGINT数据缓冲区可用buff数
6DIRTY_BUFF_NUMBIGINT脏数据buff数
7LRU_BUFF_NUMBIGINT已产生变动的buff数
8SGA_BLK_SIZEBIGINT全局区块大小
9TOTAL_SGA_MEMBIGINTSGA区buff数
10FREE_SGA_MEMBIGINTSGA区可用buff数
11PEAK_SGA_MEMINTEGERSGA历史峰值数

虚谷数据库的内存中将预申请到的可用内存划分给不同的buff区,该表对数据缓冲区和SAG缓存内存的变化进行了动态记录,观察此表可分析当前数据库部分内存使用情况。

下面对该表的字段进行解析:

BUFF_SIZE:数据缓冲区块大小,虚谷数据库内存设计中,内存块和存储块不同,内存块无法通过xugu.ini参数修改大小,默认8192字节;存储块虽然也默认为8192字节,但是可通过xugu.ini中的block_size进行大小更改(可选大小2M、4M、8M、16M)。

TOTAL_BUFF_NUM:数据缓存区可用的BUFF数量,受xugu.ini中参数data_buff_mem影响。假设data_buff_mem=X(单位是M),计算公式如下:X = TOTAL_BUFF_NUM*BUFF_SIZE/1024/1024。此部分内存划分后单元内存由buffer管理器分组管理(组数由cata_parti_num控制)。数据块缓存结合checkpoint机制,减少数据库对磁盘数据的读写次数,在有限磁盘io能力上提供更高性能。

FREE_BUFF_NUM:数据缓冲区可用buff数。初始值约为TOTAL_BUFF_NUM的97%~98%。随值变更操作增加而减少,最终在TOTAL_BUFF_NUM的10%左右波动。但始终保持FREE_BUFF_NUM+LRU_BUFF_NUM=TOTAL_BUFF_NUM。

DIRTY_BUFF_NUM:脏数据buff数,内存中未落盘的数据缓存,随着数据变更容量增加,CKPT后清0,CKPT1后不清0。

LRU_BUFF_NUM:已变更的buff块数。新启动库或重启后,改值为TOTAL_BUFF_NUM的2%~3%。当数据变更量增大时,该值持续变大,最终在TOTAL_BUFF_NUM的90%左右波动。但始终保持FREE_BUFF_NUM+LRU_BUFF_NUM=TOTAL_BUFF_NUM。

SGA_BLK_SIZE:SGA全局区BUFF块大小,受ena_share_sga参数控制。当允许缓冲区与SGA共享时,BUFF块大小为8K,当不允许缓冲区与SGA共享时,BUFF块大小为256K。

TOTAL_SGA_MEM:SGA区总buff数,等于system_sga_mem/SGA_BLK_SIZE。

FREE_SGA_MEM:当sql中存在hash、排序、分组等情况时,消耗SGA内存buff块数,FREE_SGA_MEM随之减少。

PEAK_SGA_MEM:SGA历史峰值数,记录数据库运行过程中最高的SGA区BUFF块消耗数。

本字典表涉及到的虚谷内存结构如下:
当SGA与数据buff共享时:
请添加图片描述
当SGA与数据buff不共享时:
请添加图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值