增加連線數processes

liujinwei633發表於2009-03-09
將processes由原來的150增加到300

看了資料說是還要注意linux的系統訊號量

以下是摘選的部分參考資料:

設定訊號

至此,您已經配置了共享記憶體設定,接下來將配置訊號。對“訊號”的最佳描述是,它是用於在共享資源(如共享記憶體)的程式(或程式中的執行緒)之間提供同步的 計數器。UNIX System V 支援訊號集,其中的每個訊號都是一個計數訊號。當應用程式請求訊號時,它使用“集合”來完成此工作。

要確定所有訊號限制,使用以下命令:

# ipcs -ls

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
您還可以使用以下命令:
# cat /proc/sys/kernel/sem
250 32000 32 128
設定 SEMMSL

SEMMSL 核心引數用於控制每個訊號集合的最大訊號數。

Oracle 建議將 SEMMSL 設定為 init.ora 檔案(適用於 Linux 系統上所有資料庫)中的最大 PROCESS 例項引數設定再加上 10。此外,Oracle 建議將 SEMMSL 設定為不小於 100。

設定 SEMMNI

SEMMNI 核心引數用於控制整個 Linux 系統中訊號集的最大數量。Oracle 建議將 SEMMNI 設定為不小於 100。

設定 SEMMNS

SEMMNS 核心引數用於控制整個 Linux 系統中的訊號(而非訊號集)的最大數量。

Oracle 建議將 SEMMNS 設定為系統上每個資料庫的 PROCESSES 例項引數設定之和,加上最大的 PROCESSES 的兩倍,最後為系統上的每個 Oracle 資料庫加上 10。

使用以下計算式確定可以在 Linux 系統上分配的訊號的最大數量。它將是以下兩者中較小的一個值:

SEMMNS -or- (SEMMSL * SEMMNI)

設定 SEMOPM

SEMOPM 核心引數用於控制每個 semop 系統呼叫可以執行的訊號運算元。

semop 系統呼叫(函式)能夠使用一個 semop 系統呼叫完成多個訊號的操作。一個訊號集可以擁有每個訊號集中最大數量的 SEMMSL,因此建議將 SEMOPM 設定為等於 SEMMSL。

Oracle 建議將 SEMOPM 設定為不小於 100。

設定訊號核心引數

最後,我們來看如何使用一些方法來設定所有訊號引數。在下文中,我想更改(增加)的唯一引數是 SEMOPM。所有其他的預設設定可以完全滿足我們的示例安裝。

  • 可以通過使用以下命令直接更改 /proc 檔案系統 (/proc/sys/kernel/sem) 來更改所有訊號設定的預設設定,而不必重新引導計算機:
    # sysctl -w kernel.sem="250 32000 100 128"
  • 然後,通過將該核心引數插入到 /etc/sysctl.conf 啟動檔案中,您可以使這種更改永久有效:
    # echo "kernel.sem=250 32000 100 128" >> /etc/sysctl.conf
最後決定將自己的系統設為 310 32000 100 128

然後修改processes
alter system set processes=300 scope=spfile;
重啟rac節點一的instance
重啟rac節點2的instance
檢查兩個節點的processes都是300
ok

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

相關文章