linux 下的信號量參數
轉載自:http://blog.itpub.net/26110315/viewspace-718306/
信號量是一種鎖機制用於協調進程之間互斥的訪問臨界資源。以確保某種共享資源不被多個進程同時
訪問。數據庫使用信號量來管理對操作系統資源的訪問(比如內存共享段)。如果所有數據庫進程所
需的信號量不足,會導致數據庫不能啟動或者運行時出錯。這時候DBA 需要查看內核的信號量參數,
並重新進行設置。
[root@zeng ~]# cat /proc/sys/kernel/sem
250 32000 100 200
上面輸出的4個值分別對應內核信號量參數:
semmsl 250 每個信號量集中的最大信號量數。
semmns 32000 整個系統中的最大信號量數。
semopm 100 每一個semop系統調用操作的最大信號量數。
semmni 200 信號量集最大數。
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