博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux kernel.shmall shemax shemin解释
阅读量:5166 次
发布时间:2019-06-13

本文共 1429 字,大约阅读时间需要 4 分钟。

 
 
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
 
 
摘自:http://www.2cto.com/os/201309/240573.html

转载于:https://www.cnblogs.com/wangqianqiannb/p/5359680.html

你可能感兴趣的文章
linux第1天 fork exec 守护进程
查看>>
Ajax原理学习
查看>>
最新最潮的24段魔尺立体几何玩法(2016版)
查看>>
C# 3.0 LINQ的准备工作
查看>>
CodeForces - 449D Jzzhu and Numbers
查看>>
mysql批量插入更新操作
查看>>
静态代码审查工具FxCop插件开发(c#)
查看>>
创建代码仓库
查看>>
理解裸机部署过程ironic
查看>>
Django 组件-ModelForm
查看>>
zabbix 二 zabbix agent 客户端
查看>>
大数据分析中,有哪些常见的大数据分析模型?
查看>>
Generate SSH key
查看>>
URL中不应出现汉字
查看>>
SSH框架面试总结----1
查看>>
如何防止Arp攻击
查看>>
luoguP1313 [NOIp2011]计算系数 [组合数学]
查看>>
清明 DAY2
查看>>
[LintCode] 全排列
查看>>
Windows内存管理
查看>>