1、根据oracle安装文档给出的建议,要配置如下参数内容,原文内容如下
Parameter | Replaced by Resource Control | Recommended Value |
noexec_user_stack | NA | 1 |
semsys:seminfo_semmni | project.max-sem-ids | 100 |
semsys:seminfo_semmns | NA | 1024 |
semsys:seminfo_semmsl | process.max-sem-nsems | 256 |
semsys:seminfo_semvmx | NA | 32767 |
shmsys:shminfo_shmmax | project.max-shm-memory | 4294967295 |
shmsys:shminfo_shmmni | project.max-shm-ids | 100 |
2、根据 Solaris 可调参数参考手册 有部分参数已删除或过时,具体内容如下:(手册下载)
Solaris 10 发行版中Solaris 系统调优方面的新增功能
System V IPC 配置
在本Solaris 发行版中,所有System V IPC 功能或者是自动配置的,或者可通过资源控制来控制。可共享的功能包括内存、消息队列以及信号。
通过资源控制,可以在本地系统或名称服务环境中按项目或按用户来进行IPC 设置。
在以前的Solaris 发行版中,IPC 功能由内核可调参数来控制。要更改这些功能的缺省值,必须修改/etc/system文件并重新引导系统。
由于IPC 功能现在通过资源控制来控制,因此可以在系统运行过程中修改其配置。
许多以前需要系统调优才能正常运行的应用程序现在无需调优即可运行,因为增加了缺省资源并且资源是自动分配的。
下表介绍了现已过时的IPC 可调参数及其替代资源控制。
资源控制 | 过时的可调参数 | 原有的缺省值 | 最大值 | 新缺省值 |
process.max-msg-qbytes | msginfo_msgmnb | 4096 | ULONG_MAX | 65536 |
process.max-msg-messages | msginfo_msgtql | 40 | UINT_MAX | 8192 |
process.max-sem-ops | seminfo_semopm | 10 | INT_MAX | 512 |
process.max-sem-nsems | seminfo_semmsl | 25 | SHRT_MAX | 512 |
project.max-shm-memory | shminfo_shmmax | 0x800000 | UINT64_MAX | 物理内存的1/4 |
project.max-shm-ids | shminfo_shmmni | 100 | 2的24次幂 | 128 |
project.max-msg-ids | msginfo_msgmni | 50 | 2的24次幂 | 128 |
project.max-sem-ids | seminfo_semmni | 10 | 2的24次幂 | 128 |
过时的参数仍可包括在Solaris 系统上的/etc/system 文件中。如果是这样,则这些参数可像在以前的Solaris 发行版中一样,用来初始化缺省资源控制值。但是,建议不要使用过时的参数。
以下相关参数已被删除。如果这些参数包括在Solaris 系统上的/etc/system文件中,则会注释掉这些参数。
semsys:seminfo_semmns
semsys:seminfo_semvmx
semsys:seminfo_semmnu
semsys:seminfo_semaem
semsys:seminfo_semume
semsys:seminfo_semusz
semsys:seminfo_semmap
shmsys:shminfo_shmseg
shmsys:shminfo_shmmin
msgsys:msginfo_msgmap
msgsys:msginfo_msgseg
msgsys:msginfo_msgssz
msgsys:msginfo_msgmax
Solaris 10 发行版中的新增参数或已更改的参数
System V 消息队列
在Solaris 10 发行版中,已删除了以下参数:
msgsys:msginfo_msgmap
msgsys:msginfo_msgmax
msgsys:msginfo_msgseg
msgsys:msginfo_msgssz
从Solaris 10 发行版开始,以下参数已过时:
msgsys:msginfo_msgmnb
msgsys:msginfo_msgmni
msgsys:msginfo_msgtql
System V 信号
在Solaris 10 发行版中,已删除了以下参数:
semsys:seminfo_semmaem
semsys:seminfo_semmap
semsys:seminfo_semmns
semsys:seminfo_semmnu
semsys:seminfo_semvmx
semsys:seminfo_semume
semsys:seminfo_semusz
System V 共享内存
从Solaris 10 发行版中,已删除了以下参数:
shmsys:shminfo_shmmin
shmsys:shminfo_shmseg
以下参数已过时。
shmsys:shminfo_shmmni
shmsys:shminfo_shmmax
3、结合实际环境,配置如下机器内存:16G
oracle processes =500
Oracle安装手册需要配置参数
set noexec_user_stack = 1
set semsys:seminfo_semmni = 100
set semsys:seminfo_semmns = processes×2+10
set semsys:seminfo_semmsl = processes+10
set semsys:seminfo_semvmx = 32767
set shmsys:shminfo_shmmax = 内存一半或者4294967295(4g)
set shmsys:shminfo_shmmni = 100
根据上文所述
set noexec_user_stack = 1
set semsys:seminfo_semmni 已过时 用project.max-sem-ids代替 默认 128 保持默认
set semsys:seminfo_semmns 已删除
set semsys:seminfo_semmsl 已过时 用process.max-sem-nsems代替 默认 512, 实际设置500+10 保持默认设置
set semsys:seminfo_semvmx 已删除
set shmsys:shminfo_shmmax 已过时 用project.max-shm-memory代替 默认 物理内存的1/4 即4G,实际设置4G 保持默认
set shmsys:shminfo_shmmni 已删除
最后设置为
修改/etc/system
加入 set noexec_user_stack = 1
完成内核设置
Oracle 安装配置的内核参数主要是共享内存、信号量、消息队列3块内容。
如要修改内核参数,采用如下操作
先检查oracle用户的project配置
$ id -p
uid=100(oracle) gid=100(oinstall) projid=100(default)
如果是default,则添加proj配置
1、创建oracle用户的project
#projadd group.dba
2、在/etc/user_attr 文件添加一行
oracle::::project=group.dba
3、修改内核参数
projmod -sK "project.max-shm-memory=(privileged,4294967295,deny)" group.dba
4、查询内存参数
prctl -n project.max-shm-memory -i process $$