linux 下的信号量参数

时间:2021-11-26 02:16:12
        linux 下的信号量参数 转载自:http://blog.itpub.net/26110315/viewspace-718306/ 信号量是一种锁机制用于协调进程之间互斥的访问临界资源。以确保某种共享资源不被多个进程同时 访问。数据库使用信号量来管理对操作系统资源的访问(比如内存共享段)。如果所有数据库进程所 需的信号量不足,会导致数据库不能启动或者运行时出错。这时候DBA 需要查看内核的信号量参数, 并重新进行设置。 [root@zeng ~]# cat /proc/sys/kernel/sem 250     32000   100     200 上面输出的4个值分别对应内核信号量参数: semmsl  250    每个信号量集中的最大信号量数。 semmns  32000  整个系统中的最大信号量数。 semopm  100    每一个semop系统调用操作的最大信号量数。 semmni  200    信号量集最大数。 oracle 11gR2 在 oracle linux 6.0 安装对内核信号量参数的要求: semmsl  250     semmns  32000   semopm  100    semmni  200   注:参照的是Oracle Linux 5 Update 2 的安装要求。因为oracle 11gR2 没有针对oracle linux 6.0 的安装文档。 修改信号量参数的值前请先查看信号量参数的值。 [root@zeng ~]# cat /proc/sys/kernel/sem 250     32000   100     200 可以使用echo、cat、sysctl -w、编辑/etc/sysctl.conf 的方式来改变内核信号量参数。写进 /etc/sysctl.conf 的内核参数应该执行sysctl -p 把刚才的修改实例化为当前的内核参数。 写进/etc/sysctl.conf 的内核参数下次重启以后依然有效。 [root@zeng ~]#  echo "kernel.sem =250 32000 100 128" >> /etc/sysctl.conf [root@zeng ~]# sysctl -p 确认修改以后的当前信号量值 [root@zeng ~]# cat /proc/sys/kernel/sem 250     32000   100     128