solaris内存参数有哪些

63次阅读
没有评论

共计 3565 个字符,预计需要花费 9 分钟才能阅读完成。

这篇文章主要介绍“solaris 内存参数有哪些”,在日常操作中,相信很多人在 solaris 内存参数有哪些问题上存在疑惑,丸趣 TV 小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”solaris 内存参数有哪些”的疑惑有所帮助!接下来,请跟着丸趣 TV 小编一起来学习吧!

一、solaris 内存参数说明

shared memory: 共享内存段: 
一个内存区域,可以被不同的进程读取。Oracle 使用它来构成 SGA。Oracle 使用以下三种方法来创建一个 SGA 区: 
1. 使用单个共享内存段。 
2. 使用连续多个共享内存段。 
3. 使用多个不连续共享内存段。 
Oracle 优先使用第一种方法,如果成功,则继续初始化,不成功则使用第二种方法,再不成功则使用第三种方法。如果再不成功,则初始化失败,Oracle 报告错误代码。

Semaphore: 
可以看作一个标记。可以有 On 和 Off 两种状态。Oracle 使用 semaphores 来实现服务器进程对 SGA 区的存取控制。 
Shared memory 和 semaphore 是 Oracle 在 Unix 上运行的重要资源。如果 Oracle 实例得不到所需要的资源,实例启动就会失败。

参数: 
对于运行一个 Oracle 实例的 Solaris 系统,改变 /etc/system 文件中的一些关于共享内存的参数,以使 Oracle 实例可以正常运行。如果有多个实例的话,还需根据下面方法重新计算某些值。

shmmax 
含义:这个设置并不决定究竟 Oracle 数据库或者操作系统使用多少物理内存,只决定了最多可以使用的内存数目。这个设置也不影响操作系统的内核资源。 
设置方法:0.5* 物理内存。如果物理内存为 20G,则 0.5×20G×1024×1024=10485760 
例子:Set shmsys:shminfo_shmmax=10485760

shmmin 
含义:共享内存的最小大小。 
设置方法:一般都设置成为 1。 
例子:Set shmsys:shminfo_shmmin=1

shmmni 
含义:系统中共享内存段的最大个数。推荐值为 100 或者 128。 
例子:Set shmsys:shminfo_shmmni=100

shmseg 
含义:每个用户进程可以使用的最多的共享内存段的数目。推荐值为 20 或者 10。 
例子:Set shmsys:shminfo_shmseg=20

semmni 
含义:系统中 semaphore identifierer 的最大个数。推荐值为 100 或者 128。 
设置方法:把这个变量的值设置为这个系统上的所有 Oracle 的实例的 init.ora 中的最大的那个 processes 的那个值加 10。 
例子:Set semsys:seminfo_semmni=100

semmns 
含义:系统中 semaphores 的最大个数。 
设置方法:这个值可以通过以下方式计算得到:各个 Oracle 实例的 initSID.ora 里边的 processes 的值的总和(除去最大的 Processes 参数)+最大的那个 Processes×2+10×Oracle 实例的个数。详见下面“(semmns 计算实例)”。 
例子:Set semsys:seminfo_semmns=200

semmsl 
含义:一个 set 中 semaphore 的最大个数。

设置方法:设置成为 10+所有 Oracle 实例的 InitSID.ora 中最大的 Processes 的值。详见下面“(SEMMSL 计算实例)”  . 
例子:Set semsys:seminfo_semmsl=200

 
改变了 /etc/system 里边以上参数以后,重新启动计算机: 
 $reboot 
然后检查当前的参数: 
 $sysdef -I 
如果系统参数仍旧没有改变得话,使用以下命令: 
 $modload /kernel/sys/shmsys。

二、oracle 在 solaris 下安装时参数的计算

SHMMAX maximum size of a shared memory segment 
(共享内存段的最大字节数) 
SHMMIN minimum size of shared memory segment 
(共享内存段的最小尺寸) 
SHMMNI maximum number of shared memory identifiers in the system 
(系统中共享内存标识符的最大数目) 
SHMSEG maximum number of shared memory segments a user process can attach 
(每个用户进程可分配的最大共享内存段数目) 
SEMMNI maximum number of semaphore identifiers in the system 
(系统中信号灯标识符的最大数目) 
SEMMSL maximum number of semaphores in a set 
(每个(信号灯)集合中的信号灯的最大数目) 
SEMMNS maximum number of semaphores in the system 
(系统中信号灯的最大数目) 
SEMOPM maximum number of operations per semop call 
(每个 semop 调用的信号灯的最大数目) 
SEMVMX semaphore maximum value 
(信号灯最大值)

set semsys:seminfo_semmni 100

set semsys:seminfo_semmns 1024(semmns 计算实例)

系统中各个 Oracle 实例的 init[SID].ora 文件中 PROCESSES 值的总和(不包括最大的那个 PROCESSES 值)+ 最大的那个 PROCESSES 值 * 2 + 10 * Oracle 实例的个数。 
注:[SID]即为具体的数据库实例名  
例如,一个有三个 Oracle 实例的系统,在各自的 initsid.ora 文件中的 PROCESSES 参数设置为下列值: 
ORACLE_SID=A, PROCESSES=100 
 ORACLE_SID=B, PROCESSES=100 
 ORACLE_SID=C, PROCESSES=200 
则 SEMMSL 值的计算方法如下(SEMMSL 计算实例): 
SEMMSL = [(c=200) + 10] = 210 
则 SEMMNS 值的计算方法如下: 
SEMMNS = [(A=100) + (B=100)] + [(C=200) * 2] + [(# of instances=3) * 10] = 630

set semsys:seminfo_semmsl 256

SEMMSL 的值可以通过以下方式计算得到: 
所有 Oracle 实例的 init[SID].ora 文件中最大的 PROCESSES 值 + 10 
 set semsys:seminfo_semvmx 32767 
 set semsys:seminfo_shmmax 12884901888 

24G *0.5 * 1024*1024 (24G 是物理内存) 
set semsys:seminfo_shmmin 100

三、solaris11 对内存参数的设置

1、使用 prctl 调整
prctl -n project.max-shm-memory -v 10G -r -i project default 
prctl -n project.max-sem-ids -v 256 -r -i project default 
prctl -n project.max-shm-ids -v 256 -r -i project default 
这样所作的修改系统重启后就失效了

2、创建 project, 调整会记录到 /etc/project 里

可以使用下面的方法为 oracle 用户创建单独的 project,然后修改相应的值
projadd -U oracle user.oracle 
projmod -a-K project.max-shm-memory=(priv,10g,deny) user.oracle 
projmod -a-K project.max-sem-ids=(priv,100,deny) user.oracle 
projmod -a-K process.max-sem-nsems=(priv,500,deny) user.oracle 
projmod -a-K project.max-shm-ids=(priv,100,deny) user.oracle 
修改之后只要切换到 oracle 用户设置就生效了,重启之后也不会丢失。更加详细的关于 project 的操作请查看 solaris 相应的手册,以后修改 /etc/system 的方法应该会被这种方式逐步取代

到此,关于“solaris 内存参数有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注丸趣 TV 网站,丸趣 TV 小编会继续努力为大家带来更多实用的文章!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-20发表,共计3565字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)