1. <span id='ak0wd'></span>

      2. <ins id='ak0wd'></ins>

        <code id='ak0wd'><strong id='ak0wd'></strong></code>

        <dl id='ak0wd'></dl>
      3. <i id='ak0wd'><div id='ak0wd'><ins id='ak0wd'></ins></div></i>

          <fieldset id='ak0wd'></fieldset>

          <acronym id='ak0wd'><em id='ak0wd'></em><td id='ak0wd'><div id='ak0wd'></div></td></acronym><address id='ak0wd'><big id='ak0wd'><big id='ak0wd'></big><legend id='ak0wd'></legend></big></address>

        1. <i id='ak0wd'></i>
          1. <tr id='ak0wd'><strong id='ak0wd'></strong><small id='ak0wd'></small><button id='ak0wd'></button><li id='ak0wd'><noscript id='ak0wd'><big id='ak0wd'></big><dt id='ak0wd'></dt></noscript></li></tr><ol id='ak0wd'><table id='ak0wd'><blockquote id='ak0wd'><tbody id='ak0wd'></tbody></blockquote></table></ol><u id='ak0wd'></u><kbd id='ak0wd'><kbd id='ak0wd'></kbd></kbd>
          2. Linux上SGA的最大大小

            • 时间:
            • 浏览:12
            • 来源:124软件资讯网

              在Linux上 ,所有SGA巨细被限制为2G  ,有多种要领可以为SGA分配更多的内存  ,可是最可靠和天真的要领需要使用到共享内存文件  ,如在RHEL2.1下的shmfs或RHEL3、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的一部门