kernel.shmall !!

redhat Linux as 4.7 x86_64 ;Oracle 10g 2.0.1.0 64bit
今天用EM改大了SGA可用最大内存结果启动数据库报以下的错
SQL> startup nomount
ORA-27102: out of memory
Linux-x86_64 Error: 28: No space left on device
答案找得很辛苦,最后在一个高手的Blog里找到了解决方法,汗。开始还以为是个老外,后来看了他Blog的其它文章才发现是一个E文非常牛B的国人,
得感谢他http://yuekczy.spaces.live.com/blog/

Changes

shmall is too small, most likely is set to the default setting of 2097152

$ cat /proc/sys/kernel/shmall
2097152

Cause
shmall is the total amount of shared memory, in pages, that the system can use at one time.
Solution

Set shmall equal to the sum of all the SGAs on the system, divided by the page size. 

The page size can be determined using the following command: 

$ getconf PAGE_SIZE
4096

For example, if the sum of all the SGAs on the system is 16Gb and the result of  '$ getconf PAGE_SIZE' is 4096 (4Kb) then set shmall to 4194304 (4Mb)

As the root user set the shmall to 4194304 in the /etc/sysctl.conf file:

kernel.shmall = 4194304

then run the following command:

# sysctl -p
# cat /proc/sys/kernel/shmall
4194304

=================================

20110922新的领悟

============================

Linux X86-64操作系统,Oracle 10g数据库,

给出两组参数细看一下就发现其中的奥妙了

(1)

kernel.shmmax = 8589934592##(8G)

kernel.shmmni = 4096

kernel.shmall = 2097152


(2)

kernel.shmmax = 17179869184##(16G)

kernel.shmmni = 4096

kernel.shmall = 4194304


[[[kernel.shmall=kernel.shmmax  /  kernel.shmmni ]]]

kernel.shmall参数是控制共享内存页数,

kernel.shmmni参数是控制共享内存段总数,值4096,足够大了,对于32位系统,一页=4k,也就是4096字节。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值