linux sga_max_size 作用,Linux上SGA的最大大小是什么?

在Linux上,全部SGA大小被限制为2G,有多种方法可以为SGA分配更多的内存,但是最可靠和灵活的方法需要使用到共享内存文件,如在RHEL2。1下的shmfs或RHEL

3、

4、5下的ramfs,本文描述在Red Hat企业版Linux以及它的克隆版本上创建非常大的高速缓存的方法。

Red Hat企业版Linux(RHEL)2。1

创建一个共享内存文件系统(shmfs)

shmfs是一个内存文件系统,因此它可以与Red Hat Linux AS2。1考试大提示支持的虚拟内存的最大大小一样大,虽然理论上企业版内核支持超过64GB内存,但目前最大是16GB。

shmfs是root用户使用下面的命令创建的:

mount -t shm shmfs -o size=3g /dev/shm

通过在/etc/fstab中添加下面一行,共享内存文件系统可以被自动挂载:

shmfs /dev/shm shm size=3g 0 0

在上面的例子中,我创建了一个3G大小的shmfs,也是我计划使用的高速缓存的大小,SGA的其他组件放在常规内存中,而不是这个共享内存文件系统中,因此在考虑shmfs的大小时不要将它们包括进来了,比实际需要的大小要稍微大一点,本例中我使用3G shmfs作为高速缓存。

开启大页面支持

在/boot/grub/grub。conf文件中添加bigpages=xMB到相关的内核条目后来开启大页面支持,这里的x象下面这样计算:

总SGA大小(单位G)*1024

然后围绕这个值取整百,因此一个4G大小的SGA,我们做下面的计算:

4*1024=4096=4100

因此/boot/grub/grub。

conf文件条目看起来就是:

kernel /vmlinuz-2。4。9-e。40enterprise ro root=/dev/cciss/c0d0p2 bigpages=4100MB

保存后应该重启系统,然后你必须作为root用户执行下面的命令:

echo 2 > /proc/sys/kernel/shm-use-bigpages

你可以直接在/etc/sysctl。

conf文件中添加一行让这个值固定下来:

kernel。shm-use-bigpages = 2

Red Hat企业版Linux(RHEL)

3、4和5

挂载ramfs文件系统,并确认它对oracle是可用的

umount /dev/shm

mount -t ramfs ramfs /dev/shm

chown oracle:oinstall /dev/shm

将这些命令添加到/etc/rc。

local文件中,和RHEL2。1的方法一样,只有高速缓存存储在这个位置。

因为Oracle会为共享池锁住共享内存,我们必须在/etc/security/limits。conf中调整memlock参数,memlock以Kb为单位进行表示的,因此对于一个2G大小的共享池,我们至少需要(2*1024*1024=2097152),如下所示:

oracle soft memlock 2097152

oracle hard memlock 2097152

实际上,最好稍微比这个数值大一点。

设置SHMMAX值

对于32位架构,shmmax值应该设置为物理内存的一半,最大值为4294967295,对于一个有6G内存的服务器,我们可以作为root用户使用下面的命令将这个值设为3G(物理内存的一半):

echo 3221225472 > /proc/sys/kernel/shmmax

另外还可以设置在/etc/sysctl。

conf文件中:

kernel。shmmax = 3221225472

你的/etc/sysctl。conf文件看起来应该象下面这样:

kernel。shmmax = 3221225472

kernel。shmmni = 4096

kernel。

shmall = 2097152

kernel。sem = 1000 32000 100 150

fs。file-max = 65536

net。ipv4。ip_local_port_range = 1024 65000

kernel。

shm-use-bigpages = 2

修改/etc/sysctl。conf文件后,使用下面的命令应用而无需重新启动系统:

/sbin/sysctl -p

实例参数

必须修改一些实例参数以允许oracle实例使用共享内存文件系统,在处于运行中的实例上可以使用alter system set命令或离线修改spfile文件操作spfile参数,:

-- Change the parameter value in the spfile directly。

ALTER SYSTEM SET parameter = value SCOPE=spfile

-- Create a pfile with the contents of the current spfile。

CREATE PFILE='/tmp/pfile' FROM SPFILE;

-- Manually manipulate the contents of the pfile。

-- Recreate the spfile from the amended pfile。

CREATE SPFILE FROM PFILE='/tmp/pfile';

下面的参数应该被添加到spfile或pfile中:

use_indirect_data_buffers=true

同时,所有涉及到db_cache_size和db_xK_cache的参数都应该被移除,使用旧版本风格的db_blcok_buffers参数条目代替:

# 3Gig for an 8K db_block_size。

((3 * 1024 * 1024) / 8) = 393216

db_block_buffers = 393216

这意味着使用这种方法时多数据块大小特征将不可用,记住高速缓存仅仅是SGA的一部分。

全部

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值