数保软件服务热线
新闻中心

您当前的位置:主页 > 新闻中心 > 技术交流 > 技术交流

如何让linux中的oracle 用到最大内存

打印 打印 来源 数保计算机 点击:
编辑:数保计算机 时间:2014-05-11 00:09

一台机器,配置为64G内存,
  但修改内核参数以后,主机可以认到64G内存,但在启动oracle时,报错:
SQL> startup

ORA-27102: out of memory
Linux-x86_64 Error: 12: Cannot allocate memory
 
   
   当oracle SGA最大值超过6G时,就报这个错。
 
原因是什么呢?
 
  
   经过检查,发现内核参数,需要调整:
 
kernel.core_uses_pid = 1
kernel.shmmax=10737418240
kernel.sem=250 32000 100 128
# kernel.shmall=2500000
kernel.shmall=4194304
kernel.shmmax 的单位是字节;kernel.shmall的单位是页。对于32位系统,一页=4k,也就是4096字节。kernel.shmall = 2097152  就是 2097152*4k/1024/1024 = 8G 就是说可用共享内存一共8G。
设置的一般规律
kernel.shmall = 2097152    ---内存8G
kernel.shmall = 4194304    ---内存16G
kernel.shmall = 8388608    ---内存32G
kernel.shmall = 16777216    ---内存64G
 
   这样再修改:
该文件指定内核所允许的最大共享内存段的大小
 kernel.shmax = 42949672960  40G内存可用
这样SGA区就可以调成到32GB, 不成问题,达到最高性能。
 




Copyright © 2015-2022 长沙数保信息科技有限公司 ┇ 湘ICP备08103633号 湘公网安备 43011102000746号

地址:长沙市岳麓区润花园D1-903 公司邮箱:dpisi@163.com
7*24小时技术支持服务热线:0731-85057097/13607439515 QQ: 400528 或 156462627

湘公网安备 43011102000746号