Linux内核参数信号量semaphore设置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux内核参数信号量semaphore设置相关的知识,希望对你有一定的参考价值。

当前系统信号量限制:

# ipcs -ls

—— Semaphore Limits ——–

max number of arrays = 128

max semaphores per array = 250

max semaphores system wide = 32000

max ops per semop call = 100


SEMMSL

  • 含义:每个信号量set中信号量最大个数 

  • 设置:最小250;对于processes参数设置较大的系统建议设置为processes+10


SEMMNI

  • 含义:linux系统信号量set最大个数 

  • 设置:最少128


SEMMNS

  • 含义:linux系统中信号量最大个数 

  • 设置:最少32000;SEMMSL * SEMMNI


SEMOPM

  • 含义:semop系统调用允许的信号量最大个数

  • 设置:最少100;或者等于SEMMSL


查看信号量设置:cat /proc/sys/kernel/sem

order:SEMMSL, SEMMNS, SEMOPM, SEMMNI


# cat /proc/sys/kernel/sem

250    32000    100    128


修改:

sysctl -w kernel.sem=”250 32000 100 128″

echo “kernel.sem=250 32000 100 128″ >> /etc/sysctl.conf

以上是关于Linux内核参数信号量semaphore设置的主要内容,如果未能解决你的问题,请参考以下文章

Linux内核源码分析 -- 同步原语 -- 信号量 semaphore

Linux内核源码分析 -- 同步原语 -- 信号量 semaphore

三信号量(semaphore)

linux编程时的信号量问题。 我以前用过的信号量头文件是<semaphore.h>,而现在又发现还有个<sys/sem.h>

linux 内核并发同步 2

精通内核Linux 内核写锁实现原理与源码解析