`

REDHAT AS4内核调优之kernel.sem的设置(原创)

阅读更多

semaphore概述

信号量
信号量(Semaphore),有时被称为信号灯,是在多线程环境下使用的一种设施, 它负责协调各个线程, 以保证它们能够正确、合理的使用公共资源。
Semaphore分为单值和多值两种,前者只能被一个线程获得,后者可以被若干个线程获得。
以一个停车场是运作为例。为了简单起见,假设停车场只有三个车位,一开始三个车位都是空的。这时如果同时来了五辆车,看门人允许其中三辆不受阻碍的进入,然后放下车拦,剩下的车则必须在入口等待,此后来的车也都不得不在入口处等待。这时,有一辆车离开停车场,看门人得知后,打开车拦,放入一辆,如果又离开两辆,则又可以放入两辆,如此往复。
在这个停车场系统中,车位是公共资源,每辆车好比一个线程,看门人起的就是信号量的作用。
更进一步,信号量的特性如下:信号量是一个非负整数(车位数),所有通过它的线程(车辆)都会将该整数减一(通过它当然是为了使用资源),当该整数值为零时,所有试图通过它的线程都将处于等待状态。在信号量上我们定义两种操作: Wait(等待) 和 Release(释放)。 当一个线程调用Wait(等待)操作时,它要么通过然后将信号量减一,要么一直等下去,直到信号量大于一或超时。Release(释放)实际上是在信号量上执行加操作,对应于车辆离开停车场,该操作之所以叫做“释放”是因为加操作实际上是释放了由信号量守护的资源。

在安装oracle 之前通常需要设置kernel.sem这个参数,下面对些作简单介绍
kernel.sem相关配置

查看kernel.sem大小

sem其实是semaphores的缩写,查看当前设置
#cat /proc/sys/kernel/sem

250                         32000         100           128

或者

#sysctl -a|grep kernel.sem
error: permission denied on key 'kernel.cad_pid'
kernel.sem = 250    32000    32    128

或者

# ipcs -ls
------ Semaphore Limits --------
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

参数含义

上面的4个数据分别对应:SEMMSL、SEMMNS、SEMOPM、SEMMNI这四个核心参数,具体含义和配置如下。

SEMMSL :用于控制每个信号集的最大信号数量。
Oracle 建议将 SEMMSL 设置为 init.ora 文件(用于 Linux 系统中的所有数据库)中的最大 PROCESS 实例参数的设置值再加上 10 。此外, Oracle 建议将 SEMMSL 的值设置为不少于 100 。
SEMMNS:用于控制整个 Linux 系统中信号(而不是信号集)的最大数。
Oracle 建议将 SEMMNS 设置为:系统中每个数据库的 PROCESSES 实例参数设置值的总和,加上最大 PROCESSES 值的两倍,最后根据系统中 Oracle 数据库的数量,每个加 10 。
使用以下计算式来确定在 Linux 系统中可以分配的信号的最大数量。它将是以下两者中较小的一个值:SEMMNS 或  (SEMMSL * SEMMNI)

SEMOPM: 内核参数用于控制每个 semop 系统调用可以执行的信号操作的数量。semop 系统调用(函数)提供了利用一个 semop 系统调用完成多项信号操作的功能。一个信号集能够拥有每个信号集中最大数量的SEMMSL 信号,因此建议设置 SEMOPM 等于SEMMSL 。
Oracle 建议将 SEMOPM 的值设置为不少于 100 。

SEMMNI :内核参数用于控制整个 Linux 系统中信号集的最大数量。Oracle 建议将 SEMMNI 的值设置为不少于 100 。

更改当前SEMAPHORES参数设置
[oracle@ebsse oracle]$ su
Password:
[root@ebsse oracle]# echo "5010 641280 5010 128" > /proc/sys/kernel/sem
[root@ebsse oracle]# cat /proc/sys/kernel/sem
5010 641280 5010 128

如需启动时自动应用,可在/etc/sysctl.conf增加:
kernel.sem =5010 641280 5010 128


参考至:http://baike.baidu.com/view/1499210.htm

                http://blog.sina.com.cn/s/blog_60359c5b0100is94.html

                http://www.bitscn.com/os/linux/200611/81127_7.html

本文原创,转载请注明出处、作者

如有错误,欢迎指正

邮箱:czmcj@163.com

0
0
分享到:
评论

相关推荐

    RedHat AS4安装oracle10.doc

    在本文中,我们将深入探讨如何在Red Hat Enterprise Linux Advanced Server 4(简称Red Hat AS4)上安装Oracle Database 10g。Oracle数据库是企业级的数据库管理系统,广泛应用于大型企业的数据存储和处理。Red Hat ...

    redhat as5 oracle10g 安装文档.

    ### Redhat AS5 上安装 Oracle 10g Release 2 (10.2.0.1) 的详细步骤 #### 一、环境准备 在安装 Oracle 10g Release 2 (10.2.0.1) 之前,需要确保 Redhat AS5 (RHEL5) 系统满足以下条件: 1. **Swap 分区调整**:...

    RedHat AS4 下安装oracle10.2.0

    为了优化Oracle的运行环境,需要对系统内核参数进行调整,修改`/etc/sysctl.conf`文件,设置如`kernel.shmall`, `kernel.shmmax`, `kernel.shmmni`, `kernel.sem`, `fs.file-max`, `net.ipv4.ip_local_port_range`, ...

    RedHat5安装Oracle10g文档.docx

    - 对于Oracle 10g的兼容性和性能优化,需要修改内核参数,例如`kernel.shmall`、`kernel.shmmax`、`kernel.shmmni`、`kernel.sem`、`fs.file-max`以及网络相关的参数如`net.ipv4.ip_local_port_range`等。...

    RedHat AS4 下安装oracle10g

    ### RedHat AS4 下安装 Oracle 10g 在 RedHat AS4 操作系统上安装 Oracle 10g 数据库是一项复杂但可实现的任务。本文将详细介绍安装过程中的关键步骤和技术要点,帮助读者理解并顺利完成 Oracle 10g 的安装。 ####...

    RedHat AS4上安装oracle10g并创建使用oracle数据库

    在Red Hat AS4上安装Oracle 10g数据库是一个涉及多步骤的过程,主要涉及系统配置、依赖包安装、用户和组设置、内核参数调整以及实际的安装过程。以下是详细的步骤解析: 首先,确保系统已经安装了Oracle 10g所需的...

    Oracle_for_redhat_as4.0_cluster_全过程

    - 调整Linux内核参数,如`shmmax`、`kernel.sem`等,优化Oracle运行环境。 - 设置Oracle对文件的要求,例如修改`/etc/security/limits.conf`以提高文件打开限制。 2.3 **Oracle数据库安装** - 准备Oracle安装...

    虚拟机安装redhat6.2平台下安装oracle.doc

    kernel.sem = 1250 32000 100 256 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 4194304 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576 fs.aio-...

    Redhat as4 上安装oracle10g

    在Red Hat AS4上安装Oracle 10g是一项复杂的过程,需要对操作系统和数据库系统有深入理解。以下是一些关键的知识点: 1. **系统内核参数调整**:Oracle数据库在运行时需要特定的内核参数以确保高效稳定。在`/etc/...

    Redhat Linux AS4 安装 Oracle 10g (10.2).doc

    在本文中,我们将详细探讨如何在Redhat Linux AS4操作系统上安装Oracle 10g (10.2)数据库。这个过程涉及多个步骤,包括系统资源检查、软件依赖安装、用户与权限设置、环境变量配置以及系统参数调整。 首先,确保你...

    redhat as3下安装oracle 9i

    ### Redhat AS3 下安装 Oracle 9i 的详细步骤与注意事项 #### 一、系统环境准备 在开始安装 Oracle 9i 之前,确保已经安装并配置好了 Redhat Enterprise Linux AS3 操作系统。本指南将详细介绍如何进行必要的系统...

    ORACLE 10G在Linux RedHat AS4下的安装与卸载

    - `kernel.sem`:设置信号量参数。 - `fs.file-max`:增加文件描述符的最大数量。 修改后,运行`sysctl -p`使改动生效。 5. **系统资源限制**: 使用`ulimit`命令为`oracle`用户调整系统资源限制,包括打开文件...

    redhat AS 5 oracle10g安装方法

    kernel.sem = 250 32000 100 128 fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000 net.core.rmem_default=262144 net.core.rmem_max=262144 net.core.wmem_default=262144 net.core.wmem_max=262144...

    浅谈在Redhat9上安装Oracle92.docx

    kernel.sem = 250 32000 100 128 fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000 ``` 运行`sysctl -p`使更改生效。接着,修改`/etc/security/limits.conf`文件,设置文件描述符和进程限制: ```...

    Redhat 6.2 下 oracle 11g R2的安装详解第1/2页

    kernel.sem = 250 32000 100 128 kernel.shmall = 2097152 kernel.shmmax = 2147483648  kernel.shmmni = 4096 fs.aio-max-nr = 1048576 fs.file-max = 6815744 net.core.rmem_default = 4194304 ...

    Redhat linux5.6下Oracle 10g (10.2.0.1)安装及升级到10.2.0.4.doc

    4. kernel.sem = 250 32000 100 128 5. fs.file-max = 65536 6. net.ipv4.ip_local_port_range = 1024 65000 7. net.core.rmem_default = 262144 8. net.core.rmem_max = 262144 9. net.core.wmem_default = 262144 ...

Global site tag (gtag.js) - Google Analytics