Linux內核參數-共享內存信號量設置

共享內存

可以通過ipcs -lm命令查看目前系統共享內存的參數限制:

# ipcs -lm

—— Shared Memory Limits ——–
max number of segments = 4096
max seg size (kbytes) = 1048576
max total shared memory (pages) = 2097152
min seg size (bytes) = 1

這裏涉及到3個於共享內存相關的參數:SHMMAX,SHMMNI,SHMALL

SHMMAX

  • 含義:單個共享內存段最大字節數
  • 設置:比SGA略大
  • 查看:cat /proc/sys/kernel/shmmax

    $ cat /proc/sys/kernel/shmmax
    1073741824

  • 修改:

    sysctl -w kernel.shmmax=1073741824
    echo “kernel.shmmax=1073741824″ >> /etc/sysctl.conf

SHMMNI

  • 含義:共享內存段最大個數
  • 設置:至少4096
  • 查看:cat /proc/sys/kernel/shmmni

    # cat /proc/sys/kernel/shmmni
    4096

  • 修改:

# sysctl -w kernel.shmmni=4096
# echo “kernel.shmmni=4096″ >> /etc/sysctl.conf

SHMALL

  • 含義:系統中共享內存頁總數
  • 設置:至少ceil(shmmax/PAGE_SIZE);ORACLE DOC 默認值:2097152*4096=8GB
  • 查看:cat /proc/sys/kernel/shmall

$ getconf PAGE_SIZE
4096

# cat /proc/sys/kernel/shmall
2097152

  • 修改:

# sysctl -w kernel.shmall=2097152
# echo “kernel.shmall=2097152″ >> /etc/sysctl.conf

信號量:

當前系統信號量限制:

oracle@lab-rd-01:~$ 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

oracle@lab-rd-01:~$ 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

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