Linux內核參數信號量semaphore設置

首先 熟悉 ipcs 和 ipcrm 命令:

ipcs用法 
ipcs -a  是默認的輸出信息 打印出當前系統中所有的進程間通信方式的信息
ipcs -m  打印出使用共享內存進行進程間通信的信息
ipcs -q   打印出使用消息隊列進行進程間通信的信息
ipcs -s  打印出使用信號進行進程間通信的信息

ipcs -t   輸出信息的詳細變化時間

ipcs -u  輸出當前系統下ipc各種方式的狀態信息(共享內存,消息隊列,信號)

# ipcs -h
ipcs provides information on ipc facilities for which you have read access.
Resource Specification:
        -m : shared_mem
        -q : messages
        -s : semaphores
        -a : all (default)
Output Format:
        -t : time
        -p : pid
        -c : creator
        -l : limits
        -u : summary
-i id [-s -q -m] : details on resource identified by id
usage : ipcs -asmq -tclup 
        ipcs [-s -m -q] -i id
        ipcs -h for help.

ipcrm 命令 
移除一個消息對象。或者共享內存段,或者一個信號集,同時會將與ipc對象相關鏈的數據也一起移除。當然,只有超級管理員,或者ipc對象的創建者纔有這項權利啦

ipcrm -M shmkey  移除用shmkey創建的共享內存段
ipcrm -m shmid    移除用shmid標識的共享內存段
ipcrm -Q msgkey  移除用msqkey創建的消息隊列
ipcrm -q msqid  移除用msqid標識的消息隊列
ipcrm -S semkey  移除用semkey創建的信號
ipcrm -s semid  移除用semid標識的信號


當前系統信號量限制:

# 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章