ADJ網路實驗室
打印

[介紹] Linux 修改核心程式參數 ipcs

Linux 修改核心程式參數 ipcs

最近Apache重啟時...遇到了這個錯誤...導致Apache開不起來...非得重開機才能解決...
引用:
[Fri Aug 31 10:28:07 2012] [error] (28)No space left on device: Cannot create SSLMutex
查了一些文件...發現可能是 Semaphore 的 arrays 太小...所以如果有這個問題的可以這樣解決看看~~

若要在 Red Hat 及 SUSE Linux 上更新核心程式參數,請:
  • 執行 ipcs -l 指令
  • 分析輸出,以判斷您的系統是否需要任何必要的變更。 已經在 // 後面新增註解,以顯示參數名稱為何。
引用:
      # ipcs -l
      ------ Shared Memory Limits --------
      max number of segments = 4096               // SHMMNI
      max seg size (kbytes) = 32768               // SHMMAX
      max total shared memory (kbytes) = 8388608  // SHMALL
      min seg size (bytes) = 1

      ------ Semaphore Limits --------
      max number of arrays = 1024                 // SEMMNI
      max semaphores per array = 250              // SEMMSL
      max semaphores system wide = 256000         // SEMMNS
      max ops per semop call = 32                 // SEMOPM
      semaphore max value = 32767

      ------ Messages: Limits --------
      max queues system wide = 1024               // MSGMNI
      max size of message (bytes) = 65536         // MSGMAX
   default max size of queue (bytes) = 65536    // MSGMNB
從 Shared Memory Limits 的第一個區段開始,SHMMAX 與 SHMALL 是需要查看的參數。SHMMAX 是 Linux 系統上共用記憶體區段的大小上限,而 SHMALL 是系統上共用記憶體頁面的配置上限。

        建議將 SHMMAX 值設為等於系統上的實體記憶體數量。然而,x86 系統的最低需求是 268435456 (256 MB),而在 64 位元的系統中,則為 1073741824 (1 GB)。

        SHMALL 預設會設為 8 GB (8388608 KB = 8 GB)。如果您的實體記憶體數量大於此值,且將提供給 DB2 使用,則此參數增加至您電腦大約 90% 的實體記憶體。例如,如果您的電腦系統上有 16 GB 的記憶體主要用於 DB2,則 SHMALL 應設為 3774873 (16 GB 的 90% 是 14.4 GB;14.4 GB 再除以 4 KB,這是基本分頁大小)。ipcs 輸出已將 SHMALL 轉換成 KB。核心程式需要此值作為分頁數。 如果您升級至 DB2 9.7 版,且未使用預設 SHMALL 設定,則必須另外增加 SHMALL 設定 4 GB。快速通訊管理程式 (FCM) 的其他緩衝區或通道需要如此增加記憶體。

    下一個區段包含作業系統可用之號誌的數量。核心程式參數 sem 由 4 個記號組成,即 SEMMSL、SEMMNS、SEMOPM 及 SEMMNI。SEMMNS 是 SEMMSL 乘以 SEMMNI 的結果。資料庫管理程式要求視需要增加陣列的數目 (SEMMNI)。一般而言,SEMMNI 應該是系統預期代理程式數目上限乘以資料庫伺服器電腦上邏輯分割區數目的兩倍,再加上資料庫伺服器電腦上的本端應用程式連線數。

    第三個區段包含系統的訊息。
        MSGMNI 會影響可啟動之代理程式的數目,MSGMAX 會影響佇列中可傳送之訊息的大小,而 MSGMNB 會影響佇列的大小。
        MSGMAX 應該變更為 64 KB (亦即 65535 個位元組),而 MSGMNB 應該增加至 65535。

若要修改這些核心程式參數,請編輯 /etc/sysctl.conf 檔案。如果此檔案不存在,請建立該檔案。 下列指令行是檔案中應放置之內容的範例:
引用:
kernel.sem=250 256000 32 1024
#Example shmmax for a 64-bit system
kernel.shmmax=1073741824

#Example shmall for 90 percent of 16 GB memory
kernel.shmall=3774873

kernel.msgmax=65535
kernel.msgmnb=65535
執行 sysctl (搭配 -p參數),以從預設檔案 /etc/sysctl.conf 載入 sysctl 設定:
#sysctl -p
引用自: http://www.bcgsc.ca/downloads/NB ... l-installing43.html





TOP

ARTERY.cn