linux 的 sem 参数

推荐以下文章

http://www.myexception.cn/operating-system/445637.html

#cat /proc/sys/kernel/sem
250 32000 32 128

#ipcs -ls

max number of arrays=128

max semophore per array = 250

max semophores system wide = 32000

max ops per semop call =32

 

由此,可以看出, cat /proc/sys/kernel/sem 时候,

其顺序是:

SEMMNI: Maximum number of semaphore per array --此时我的系统中为 250

SEMMNS: Maximum number of semaphores system-wide   --------------------此时我的系统中为 32000

SEMOPM: Maximum number of semaphore operations per system call -------此时我的系统中为 32

SEMMSL: Maximum number of arrays -------------------------------------------此时我的系统中为 128

 

第一列,表示每个信号集中的最大信号量数目。
第二列,表示系统范围内的最大信号量总数目。
第三列,表示每个信号发生时的最大系统操作数目。
第四列,表示系统范围内的最大信号集总数目。

所以,(第一列)*(第四列)=(第二列)

 

其中,最令人困惑的是对 SEMMNI 的解释,

有的说是 “SEMMNI: 内核参数用于控制整个 Linux 系统中信号集的最大数量。 Oracle 建议将 SEMMNI 设置为不小于 100。”

        这个一般是Oracle安装者说的。

还有的说是 什么最小值的。

但是我看到 ipcs -ls 的结果 和  cat /proc/sys/kernel/sem 的结果结合起来看,

我认为自己最上面的理解是对的--每个信号集中的最大信号量数目。

可以用下面的文章佐证:

http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=%2Fcom.ibm.db2.udb.uprun.doc%2Fdoc%2Ft0008238.htm

而且我们如果 改变 /etc/sysctl.conf 文件,设置 kernel.sem = 300 32000 100 128

然后执行: sysctl -p 使其立刻生效。

再看 ipcs -ls 和  cat /proc/sys/kernel/sem 都出现了 250不见,300出现的效果,证实了自己的推断。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值