暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

虚谷系统表探究:SYS_MEM_STATUS

原创 石河 2024-01-25
351

系统部分内存监控信息-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不共享时:



「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论