安装Oracle时在Linux上设置内核参数

阅读数:53 评论数:0

跳转到新版页面

分类

Linux

正文

1.SHMMAX参数:Linux进程可以分配置的单独共享内存段的最大值。

# grep MemTotal /proc/meminfo
# cat /proc/sys/kernel/shmmax

上面的命令是检查系统内存的大小,以及当shmmax的设置。

# echo 21474836480 > /proc/sys/kernetbl/shmmax
# sysctl -w kernel.shmmax=21474836480
# echo "kernel.shmmax=21474836480" >> /etc/sysctl.conf

这是设置shmmax参数的几种方法,这三种方式都可以将shmmax设置为20G。前两种方式类似alter system set scope=memory, 而第三种方式则类似于alter system set scope=spfile,这个参数的设置可以不重启数据库,但是为了确保下次重启后设置值仍然生效,第三种方式是必不可少的,采用第三种方式需要执行sysctl -t或重启。

2.SHMMNI参数:设置系统最大共享内存数量。

Oracle10g推荐最小值为4096。

# cat /proc/sys/kernel/shmmni
# echo 4096 > /proc/sys/kernel/shmmni
# sysctl -w kernel.shmmni=4096
# echo "kernel.shmmni=4096" >> /etc/sysctl.conf

3.SHMALL参数:设置共享内存总页数。推荐值为物理内存大小除以分页大小。

4.信号灯semaphore是进程或线程间访问共享内存时提供同步的计数器。

SEMMSL参数:设置每个信号灯组中信号灯最大数量,推荐的最小值是250.对于系统中存在大量并发连接的系统,推荐将这个值设置为processes初始化参数加10。

SEMMNI参数:设置系统中信号灯的最大数量。推荐值为142.

SEMMNS参数:设置系统中信号灯的最大数量,操作系统在分配信号灯时不会超过Least(SEMMNS, SEMMNI*SEMMSL),事实上,如果SEMMNS的值超过SEMMSL*SEMMNI是非法的,因此推荐SEMMNS的值就设置为SEMMSL*SEMMNI.

SEMOPM参数:设置每次系统调用可以同时执行的最大信号灯的数量。由于一个信号灯组最多拥有SEMMSL个信号灯,因此推荐将SEMOPM设置为SEMMSL的值。

# echo 610 86620 100 142 > /proc/sys/kernel/sem
# sysctl -w kernel.sem="610 86620 100 142"
# echo "kernel.sem=610 86620 100 142" >> /etc/sysctl.conf

对应的4个值从左到右分别为SEMMSL SEMMNS SEMOPM SEMMN