IPC参数(共享内存/信号量)

21 篇文章 0 订阅

共享内存参数

shmmax:共享内存段最大尺寸(字节)
shmmni:共享内存段最大数目
shmall:系统共享内存最大尺寸(页), 对32位系统,一页(page)等于4KB
shmmin:共享内存段最小尺寸(字节)
shmseg:每进程最大共享内存段数量

 

信号量参数

SEMMNI:系统中信号量集合最小数量
SEMMNS:系统中信号量集合最大值
SEMMSL:单个信号量集合最大信号量数
SEMOPM:信号量操作调用中操作数最大数值
SEMMVX:信号量最大数值

 

查看

ipcs命令

 

ipcs -l
cat

 

shmmax: cat /proc/sys/kernel/shmmax
shmmni: cat /proc/sys/kernel/shmmni
shmall: cat /proc/sys/kernel/shmall
semmsl semmns semopm semni: cat /proc/sys/kernel/sem
或: cat/etc/sysctl.conf

 

修改

echo命令。临时修改参数值,写入/proc/sys/kernel/路径下修改项对应文件;永久修改,修改/etc/sysctl.conf文件。

例:
临时修改共享内存段最大尺寸为256M
sudo echo "268435456">/proc/sys/kernel/shmmax

 

永久修改:
sudo echo "kernel.shmmax=268435456">>/etc/sysctl.conf

sysctl命令(永久修改)

sudo sysctl -w kernel.shmmax=268435456


Linux X86-64操作系统,Oracle 10g数据库,由8G加到16G,把kernel.shmmax参数改到17179869184(16G)后,发现只要修改sga_max_size和sga_target参数到超过8G,Oracle就会报内存不够无法启动,检查另外两个共享内存参数相关参数: kernel.shmall和kernel.shmmni,kernel.shmall参数是控制共享内存页数,kernel.shmmni参数是控制共享内存段总数,目前的参数值是4096,足够大了,那么问题应该是出在kernel.shmall上,用8589934592(8G)除以当前的参数值2097152,结果是4096,说明页大小是4K,现在要把SGA调到大于8G,就要调大kernel.shmall参数,调整到当前值的2倍(4194304)后,就可以成功地将sga设置到13G了。

对于32位系统,一页=4k,也就是4096字节。
kernel.shmall = 2097152  就是 2097152*4k/1024/1024 = 8G 就是说可用共享内存一共 8G
上面shmmax = 2G


512 32000 100 100 >/proc/sys/kernel/sem 分别是指什么
SEMMSL(每个用户拥有信号量最大数量),SEMMNS(系统信号量最大数量),SEMOPM(每次semop系统调用操作数),SEMMNI(系统中信号量集合最小数量)

 

REDHAT AS4 kernel.sem设置参考

在安装oracle 之前通常需要设置kernel.sem这个参数,下面对些作简单介绍
sem其实是semaphores的缩写,查看当前设置
[oracle@ebsse oracle]$ cat /proc/sys/kernel/sem
250 32000 100 128
4个数据分别对应
SEMMSL SEMMNS SEMOPM SEMMNI
如当oracle DB初始化参数文件中PROCESSES参数设置较大时,需要调整SEMAPHORES设置
SEMMSL应该设置为服务器中各个实例中最大的PROCESSES参数+10,例如,当最大的PROCESSES参数为5000时,SEMMSL应设置为5010。
SEMMNS参数应设置为SEMMSL*SEMMNI,接上例SEMMSL为5010,SEMMNS参数应为(5010*128)=641280。
SEMOPM参数应设置与SEMMSL参数相同,接上例此处应设置为5010
更改当前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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值