共享内存

必须在操作系统中为数据库服务器配置足够的共享内存资源。反过来,共享内存不足会影响性能。

数据库服务器线程和进程需要共享内存以通过共享对内存段的访问权来共享数据。

GBase 8s 使用的共享内存可分为以下部分,其中每个包含一个或多个共享内存段:

常驻部分和消息部分是静态的;必须为它们分配足够的内存,数据库服务器才能进入联机方式。(通常,必须重新引导操作系统以重新配置共享内存。)数据库服务器共享内存的虚拟部分会动态增加,但是仍必须在操作系统共享内存分配中为该部分保留足够的初始量。

以下主题提供了有关共享内存的每个部分的信息以及用于估计数据库服务器每个共享内存部分大小的准则,这样可以在操作系统中分配足够的空间:

必需的空间量是数据库服务器共享内存所有三个部分需要的总量。使用 SHMTOTAL 配置参数指定共享内存的总量。

LOCKS 配置参数指定锁表的初始大小。如果会话分配的锁数超过了 LOCKS 的值,那么数据库服务器动态增加该锁表的大小。如果期望锁表动态地增长,那么将 SHMTOTAL 设置为 0。当 SHMTOTAL 为 0 时,对分配的内存总量(包括共享内存)没有任何限制。