- 浏览: 4405112 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (634)
- Oracle日常管理 (142)
- Oracle体系架构 (45)
- Oracle Tuning (52)
- Oracle故障诊断 (35)
- RAC/DG/OGG (64)
- Oracle11g New Features (48)
- DataWarehouse (15)
- SQL, PL/SQL (14)
- DB2日常管理 (9)
- Weblogic (11)
- Shell (19)
- AIX (12)
- Linux/Unix高可用性 (11)
- Linux/Unix日常管理 (66)
- Linux桌面应用 (37)
- Windows (2)
- 生活和工作 (13)
- 私人记事 (0)
- Python (9)
- CBO (15)
- Cognos (2)
- ORACLE 12c New Feature (2)
- PL/SQL (2)
- SQL (1)
- C++ (2)
- Hadoop大数据 (5)
- 机器学习 (3)
- 非技术 (1)
最新评论
-
di1984HIT:
xuexilee!!!
Oracle 11g R2 RAC高可用连接特性 – SCAN详解 -
aneyes123:
谢谢非常有用那
PL/SQL的存储过程和函数(原创) -
jcjcjc:
写的很详细
Oracle中Hint深入理解(原创) -
di1984HIT:
学习了,学习了
Linux NTP配置详解 (Network Time Protocol) -
avalonzst:
大写的赞..
AIX内存概述(原创)
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
发表评论
-
Linux OOM机制介绍
2018-06-06 11:27 3453Linux系统运行过程中,有时候会在message中看 ... -
Linux启动过程--从引导说起
2016-09-23 13:49 1174Linux的引导过程是一个用来初始化系统的程序。它包含了在打 ... -
基于案例学SQL优化第5周脚本
2015-04-12 19:35 0===============BEGIN=========== ... -
重启linux network服务/etc/resolv.conf信息丢失的解决方案
2014-11-13 13:38 3108修改/etc/resolv.conf,修改后重启服务 ser ... -
linux sudo 命令
2014-11-04 15:01 1325“Sudo”是Unix/Linux平台上的一个非常有用的工具 ... -
linux sudo,su和打开终端速度很慢
2014-11-04 09:42 4273一、症状sudo指令执行速度很慢,例如:sudo -u ro ... -
Linux NFS服务器的安装与配置
2014-10-15 00:00 1006一、NFS服务简介 N ... -
DISPLAY变量和xhost(原创)
2014-10-14 16:58 60565DISPLAY 在Linux/Unix类操作系统上, D ... -
Linux NTP配置详解 (Network Time Protocol)
2014-10-02 21:49 18489Network Time Protocol (NTP) ... -
Linux下DNS服务器的设置
2014-10-02 21:43 1460环境:要设的DNS机子 ... -
nslookup工具的使用方法
2014-10-02 21:35 6915配置好DNS服务器,添加 ... -
ntpd与ntpdate的区别
2014-10-02 17:57 1140之前配置ntpd的时候搜到一句话,印象很深刻,也觉得很有标题 ... -
认识/etc/fstab和/etc/mtab文件
2014-09-20 12:27 3158fstab fs tab(描述 各 ... -
扩展Linux swap分区 两种方法
2014-09-16 17:23 1540先来查询一下系统的swap [root@localhost ... -
vim切换tab标签快捷键
2014-06-22 17:16 19477这几天在学习VIM,在WIN7下装了GVIM,在折腾好配置文 ... -
如何看linux是32位还是64位
2014-04-27 14:09 1671查看linux机器是32位还是64位的方法:方法一:file ... -
iSCSI的配置(target/initiator)
2014-04-27 13:45 54471iSCSI 是一种 SAN的设备而 SAN的设备主要是提供 ... -
linux kudzu作用与操作方法(原创)
2013-08-29 22:03 2864概述kudzu是在linux系统启动时用来检测硬件的,一般在 ... -
Linux下获取详细硬件信息的工具:Dmidecode命令详解
2013-08-29 21:52 2535Dmidecode 这款软件允许 ... -
DAS,NAS,SAN和ISCSI存储架构介绍(原创)
2013-06-23 10:22 16116DASDAS是Direct Attached Stor ...
相关推荐
在本文中,我们将深入探讨如何在Red Hat Enterprise Linux Advanced Server 4(简称Red Hat AS4)上安装Oracle Database 10g。Oracle数据库是企业级的数据库管理系统,广泛应用于大型企业的数据存储和处理。Red Hat ...
### Redhat AS5 上安装 Oracle 10g Release 2 (10.2.0.1) 的详细步骤 #### 一、环境准备 在安装 Oracle 10g Release 2 (10.2.0.1) 之前,需要确保 Redhat AS5 (RHEL5) 系统满足以下条件: 1. **Swap 分区调整**:...
为了优化Oracle的运行环境,需要对系统内核参数进行调整,修改`/etc/sysctl.conf`文件,设置如`kernel.shmall`, `kernel.shmmax`, `kernel.shmmni`, `kernel.sem`, `fs.file-max`, `net.ipv4.ip_local_port_range`, ...
- 对于Oracle 10g的兼容性和性能优化,需要修改内核参数,例如`kernel.shmall`、`kernel.shmmax`、`kernel.shmmni`、`kernel.sem`、`fs.file-max`以及网络相关的参数如`net.ipv4.ip_local_port_range`等。...
### RedHat AS4 下安装 Oracle 10g 在 RedHat AS4 操作系统上安装 Oracle 10g 数据库是一项复杂但可实现的任务。本文将详细介绍安装过程中的关键步骤和技术要点,帮助读者理解并顺利完成 Oracle 10g 的安装。 ####...
在Red Hat AS4上安装Oracle 10g数据库是一个涉及多步骤的过程,主要涉及系统配置、依赖包安装、用户和组设置、内核参数调整以及实际的安装过程。以下是详细的步骤解析: 首先,确保系统已经安装了Oracle 10g所需的...
- 调整Linux内核参数,如`shmmax`、`kernel.sem`等,优化Oracle运行环境。 - 设置Oracle对文件的要求,例如修改`/etc/security/limits.conf`以提高文件打开限制。 2.3 **Oracle数据库安装** - 准备Oracle安装...
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-...
在Red Hat AS4上安装Oracle 10g是一项复杂的过程,需要对操作系统和数据库系统有深入理解。以下是一些关键的知识点: 1. **系统内核参数调整**:Oracle数据库在运行时需要特定的内核参数以确保高效稳定。在`/etc/...
在本文中,我们将详细探讨如何在Redhat Linux AS4操作系统上安装Oracle 10g (10.2)数据库。这个过程涉及多个步骤,包括系统资源检查、软件依赖安装、用户与权限设置、环境变量配置以及系统参数调整。 首先,确保你...
### Redhat AS3 下安装 Oracle 9i 的详细步骤与注意事项 #### 一、系统环境准备 在开始安装 Oracle 9i 之前,确保已经安装并配置好了 Redhat Enterprise Linux AS3 操作系统。本指南将详细介绍如何进行必要的系统...
- `kernel.sem`:设置信号量参数。 - `fs.file-max`:增加文件描述符的最大数量。 修改后,运行`sysctl -p`使改动生效。 5. **系统资源限制**: 使用`ulimit`命令为`oracle`用户调整系统资源限制,包括打开文件...
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...
kernel.sem = 250 32000 100 128 fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000 ``` 运行`sysctl -p`使更改生效。接着,修改`/etc/security/limits.conf`文件,设置文件描述符和进程限制: ```...
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 ...
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 ...