Oracle安装-Linux内核参数-共享内存信号量设置

Oracle数据库在linux系统上的安装过程中,涉及到设置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 128echo “kernel.sem=250 32000 100 128>> /etc/sysctl.conf

ORACLE提供了sysresv工具管理共享内存以及信号量,操作系统级别可以通过ipcs管理。

还没有评论,快来抢沙发!

发表评论

  • 😉
  • 😐
  • 😡
  • 😈
  • 🙂
  • 😯
  • 🙁
  • 🙄
  • 😛
  • 😳
  • 😮
  • emoji-mrgree
  • 😆
  • 💡
  • 😀
  • 👿
  • 😥
  • 😎
  • ➡
  • 😕
  • ❓
  • ❗
  • 65 queries in 0.383 seconds