信号量是通常每个大小为 1 字节的内核资源。数据库服务器的信号量不包含在为其他软件包分配的资源之内。您可以设置某些 UNIX™ 信号量参数。
每个数据库服务器实例都需要以下几组信号量:
- 一组用于与数据库服务器一起启动的每组虚拟处理器 (VP)(多达 100 个)
- 一组用于可在数据库服务器运行时动态添加的每个额外的 VP
- 一组用于通过共享内存通信接口连接的每组用户会话(不超过 100)
技巧: 为了获取最佳性能,请分配足够用于期望的 ipcshm 连接数两倍的信号量。请使用 NETTYPE 配置参数来为此两倍数量的连接配置数据库服务器轮询线程。
由于实用程序(例如,onmode)使用共享内存连接,因而您必须为数据库服务器的每个实例配置最少两组信号量集:一组用于初始集的 VP,一组用于数据库服务器实用程序使用的共享内存连接。SEMMNI 操作系统配置参数通常指定要分配的信号量集的数目。有关如何设置与信号量相关的参数的信息,请参阅针对您的操作系统的配置指示信息。
SEMMSL 操作系统配置参数通常指定每组信号量的最大数目。将此参数设置为至少 100。
某些操作系统需要您配置所有组中信号量的最大总数,该值通常由 SEMMNS 操作系统配置参数指定。使用以下公式计算每个数据库服务器实例所需要的信号量总数:
SEMMNS = init_vps + added_vps + (2 * shmem_users) + concurrent_utils
- init_vps
- 是与数据库服务器一起启动的虚拟处理器 (VP) 数。此数值包含 CPU、PIO、LIO、AIO、SHM、TLI、SOC 和 ADM VP。最小值为 15。
- added_vps
- 是您要动态添加的 VP 数。
- shmem_users
- 是允许用于此数据库服务器实例的共享内存连接数。
- concurrent_utils
- 是可以连接到此实例的并发数据库服务器实用程序数。建议您最少允许使用六个实用程序连接:两个用于 ON-Archive 或 ON-Bar,四个用于其他实用程序,如 onstat 和 oncheck。
如果使用需要信号量的软件包,那么 SEMMNI 配置参数必须包含数据库服务器和其他软件包需要的信号量集总数。您必须将 SEMMSL 配置参数设置为任何软件包都需要的每组最大信号量数。有关需要
SEMMNS 配置参数的系统,可以用 SEMMNI 乘以 SEMMSL 的值来计算可接受的值。