zoukankan      html  css  js  c++  java
  • 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出现的效果,证实了自己的推断。

  • 相关阅读:
    引用&符号详解
    简单计算器
    while循环输出的表格
    设置和获取变量类型
    位运算符
    MySQL基础(一)SQL基础
    python 21天网络爬虫使用 代理
    Spark入门(一)
    Apache spark2.1.0编译hadoop-2.6-cdh5.11.2的对应版本
    Java 多线程
  • 原文地址:https://www.cnblogs.com/gaojian/p/2720774.html
Copyright © 2011-2022 走看看