文章
· 一月 15 阅读大约需 2 分钟

FAQ 关于当前通用内存堆(gmheap)和最大可获得锁表(locksiz)大小

作为针对数据导入处理性能和错误(锁定表已满)的衡量标准,可能需要调整常规内存堆 (gmheap) 和锁定表大小 (locksiz) 参数。

事实上,您可以使用终端和管理门户来检查当前分配了多少通用内存堆。


★终端用

// 一般メモリヒープサマリUSER> w $system .Config.SharedMemoryHeap.GetUsageSummary() 4992226 , 6029312 , 59441152

通用内存堆摘要以使用量、分配量和配置量(字节)的形式显示返回值。

使用量是分配的锁表、进程表等实际使用的量。
分配量是gmheap区域中锁表、进程表等分配的量。
配置量为gmheap(KB)+IRIS系统附加区,即当前最大可用量(实际通用内存堆区值)。

如上所述,配置数量与配置参数 gmheap 的独立值不匹配。
这是因为IRIS自动将内部使用的内存区域添加到配置参数gmheap中来配置通用内存堆区域。详情请参阅下面的文档。

关于gmheap

您可以使用以下命令获取锁表的使用情况:
返回值显示为可用量、用户可用量和已用量(字节)。详情请参阅这篇文章

 %SYS > w ##class (SYS. Lock ).GetLockSpaceInfo() 16772624 , 16764624 , 4592


★用于管理门户

您可以从“系统操作”>“系统使用情况”>“共享内存堆使用状态”进行检查。  

对于整个通用内存堆来说,
“Total SMH Pages Use”项中的“Alulated SMH/ST”表示分配量(字节)。

关于锁表
“Lock Table”项中的“SMH/ST in use”表示锁表使用量(字节)。
用户可用性必须通过从 locksiz 值中减去该值来计算。



更改 gmheap 涉及重新启动 IRIS 实例。
要查找当前 gmheap 中可以设置的最大 locksiz 值,请执行以下操作:
无需重新启动即可单独更改 Locksiz。

 %SYS > write ##class (SYS. Lock ).GetMaxLockTableSize() 16777216


如果要指定的locksiz大于通过GetMaxLockTableSize()获取的值,则需要将差值添加到gmheap并设置它。

在这种情况下,新设置将在 IRIS 实例重新启动后生效。


【注意力】
在版本 2023.1 及更高版本中,
共享内存堆 (gmheap)用于锁的共享内存 (locksiz)的默认值已更改为“0”。 单击此处查看发行说明
*2022.2 中,gmheap=37,568(KB),locksiz=65,536(字节)。

根据配置的Global缓冲区大小(数据库缓存大小)应用最有效的设置。
如果用户未设置Global缓冲区大小,则它将从可用的系统内存中构造。
与以前的版本一样,用户仍然可以使用特定值覆盖这些默认值。

讨论 (0)1
登录或注册以继续