linux 下的訊號量引數

pingley發表於2012-03-12
linux 下的訊號量引數
訊號量是一種鎖機制用於協調程式之間互斥的訪問臨界資源。以確保某種共享資源不被多個程式同時
訪問。資料庫使用訊號量來管理對作業系統資源的訪問(比如記憶體共享段)。如果所有資料庫程式所
需的訊號量不足,會導致資料庫不能啟動或者執行時出錯。這時候DBA 需要檢視核心的訊號量引數,
並重新進行設定。
[root@zeng ~]# cat /proc/sys/kernel/sem
250     32000   100     200
上面輸出的4個值分別對應核心訊號量引數:
semmsl  250    每個訊號量集中的最大訊號量數。
semmns  32000  整個系統中的最大訊號量數。
semopm  100    每一個semop系統呼叫操作的最大訊號量數。
semmni  200    訊號量集最大數。
其中:semmns=semmsl*semmni
oracle 11gR2 在 oracle linux 6.0 安裝對核心訊號量引數的要求:
semmsl  250    
semmns  32000  
semopm  100   
semmni  200  
注:參照的是Oracle Linux 5 Update 2 的安裝要求。因為oracle 11gR2 沒有針對oracle linux 6.0
的安裝文件。
修改訊號量引數的值前請先檢視訊號量引數的值。
[root@zeng ~]# cat /proc/sys/kernel/sem
250     32000   100     200
可以使用echo、cat、sysctl -w、編輯/etc/sysctl.conf 的方式來改變核心訊號量引數。寫進
/etc/sysctl.conf 的核心引數應該執行sysctl -p 把剛才的修改例項化為當前的核心引數。
寫進/etc/sysctl.conf 的核心引數下次重啟以後依然有效。
[root@zeng ~]#  echo "kernel.sem =250 32000 100 128" >> /etc/sysctl.conf
[root@zeng ~]# sysctl -p
確認修改以後的當前訊號量值
[root@zeng ~]# cat /proc/sys/kernel/sem
250     32000   100     128

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26110315/viewspace-718306/,如需轉載,請註明出處,否則將追究法律責任。

相關文章