SHMVIRTSIZE 配置参数

使用 SHMVIRTSIZE 配置参数来指定虚拟共享内存段的初始大小。

onconfig.std 值
与平台有关
如未出现
如果 SHMADD 出现:SHMADD 配置参数的值。

如果 SHMADD 未出现:8192。

32 位平台:正整数,最大值 2 GB

64 位平台:正整数,最大值 4 TB

由于操作系统限制,在一些平台上最大值可能较小。 要查看您的 UNIX™ 平台的实际最大值,请参阅 machine notes。

单位
KB
生效
编辑 onconfig 文件并重启数据库服务器之后。

用法

要确定 SHMVIRTSIZE 配置参数适当的值,应使用下列算法来确定共享内存的虚拟部分大小:
shmvirtsize = fixed overhead + ((stack size + heap) * number of users)
        
变量 使用的值
fixed overhead 这包括 AIO 向量的大小、排序内存、dbspace 备份缓冲区、字典大小、存储过程高速缓存的大小、直方图池、其他池和其他开销。
要获得固定开销的估计,请启动数据库服务器,如果有的话,还要看分配了多少附加的内存段。当您启动服务器时,您在系统上拥有的用户数影响内存段的分配。当您启动服务器时:
  • 如果用户数是您环境的典型用户数,那么将内存段的大小添加到 SHMVIRTSIZE 配置参数的当前值并重启服务器。
  • 如果用户数远少于您环境的典型用户数,则必须计算要使用的内存段的适当开销值。当您启动服务器时,将分配的附加内存段数除以那时服务器上的用户数,您可计算每个用户消耗多少内存段。将每一用户内存段的值乘以系统上典型的用户数。将这个计算值的内存段添加到 SHMVIRTSIZE 配置参数的当前值并重启服务器。
stack size 在 32 位系统上,使用 32 KB 堆栈大小。在 64 位系统上,您典型地使用 64 KB 堆栈大小。然而,一些 64 位系统使用不同的值。
heap 每用户使用 30 KB。
用户数 使用服务器上您预计的并发用户会话的最大数目。

如果可能,创建一个共享内存的虚拟部分,其大小大于您每日处理的大小。

使用 onstat -g seg 命令来确定峰值用量并相应地降低 SHMVIRTSIZE 配置参数的值。