kernel.sem信号量参数调优,以及ipcs信号量队列查询

首先介绍下kernel.sem 这个参数

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

或者

ipcs -ls
 
------ Semaphore Limits --------
max number of arrays = 128
max semaphores per array = 250
max semaphores system wide = 32000
max ops per semop call = 32
semaphore max value = 32767

我机器上的信号队列arrays

ipcs -a | wc -l
144

144>128 为什么超了,这个我也不懂,但是我的openmanage插件一直超时,而且无法启动,无法停止,真TM的 查这个问题花了我好长时间

首先 介绍下kernel.sem这4个参数的意义

cat /proc/sys/kernel/sem
250     32000   32      128
 
250       SEMMSL    max semaphores per array     #信号集容纳最大信号数量   
32000     SEMMNS    max semaphores system wide   #所有信号的最大数量
32        SEMOPM    max ops per semop call       #调用单个信号集中最大信号数量
128       SEMMNI    max number of arrays         #信号集的最大值

这个是网上找的,不过感觉不太对,按照我们的思路来

首先

max semaphores per array
max number of arrays

这2个参数肯定是不够的,我们先调高一点

echo "500 641280 500 500" > /proc/sys/kernel/sem

调整完了

我们利用

ipcs -a | grep nagios | wc -l
90                                      查看当前nagios用户信号数量

然后把它全清理掉。

ipcs -a | grep nagios | awk '{print $2}' | xargs -n1 ipcrm -s

关于ipcs和ipcrm这2个命令的解释网上很多,我就不再说了

ipcs -a | grep nagios | wc -l

全部清理掉后,重启应用 比如

/opt/dell/srvadmin/sbin/srvadmin-services.sh stop

一条评论

  1. kernel.sem信号量参数调优,以及ipcs信号量队列查询
    avatar
    Lv.1 1楼

    什么情况下会出现瓶颈啊,有瓶颈会出现什么状况,怎么监控啊,都没说,光调,没有参考意义啊

    发表评论

  1. 😉
  2. 😐
  3. 😡
  4. 😈
  5. 🙂
  6. 😯
  7. 🙁
  8. 🙄
  9. 😛
  10. 😳
  11. 😮
  12. emoji-mrgree
  13. 😆
  14. 💡
  15. 😀
  16. 👿
  17. 😥
  18. 😎
  19. ➡
  20. 😕
  21. ❓
  22. ❗
  23. 60 queries in 0.425 seconds