Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2767586
  • 博文数量: 389
  • 博客积分: 4177
  • 博客等级: 上校
  • 技术积分: 4773
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-16 23:29
文章分类

全部博文(389)

分类: Oracle

2009-05-26 11:05:32

     在LINUX系统上部署ORACLE时,为了能够使最大限度地发挥ORACLE数据库性能,我们需要在/etc/sysctl.conf文件中增加以下关于内存的内核参数:(1)kernel.shmall设置系统中最大内存页面数量,ORACLE建议的为2097152,(2)kernel.shmmax设置单个共享内存段的最大尺寸,单位为BYTE,ORACLE建议大于或等于SGA大小,(3)kernel.shmmni参数设置系统中共享段的数量,ORACLE建议值为4096.
     LINUX的标准内存页面尺寸大小为4KB,所以当我们在SGA大于8GB的系统上,需要相应增加kernel.shmall的值,这个值一般应该大于或等于SGA大小除以4KB。
     在linux 2.6的kernel增加了称之为hugepage的支持,HUGEPAGE是一个地址连续的内存块区域。在linux下可以通过/proc/meminfo来看hugepage的大小,单个HUGEPAGE大小与平台紧密相关.通过使用hugepage,而不使用标准的page,会带来性能上增加。由于hugepage使用了更大且连续的地址尺寸,减少了地址转换的性能开销,同时也使在CPU级别能同时存储更宽的地址范围。通过设置vm.nr_hugepages参数来设定hugepage的数量,这个值default为0,也就是不使用hugepage,另外还需要设置的参数,vm.disable_cap_mlock参数设为true,允许非根用户拥有对hugepage有写的权限。同时为了保证安全需设定vm.hugetlb_shm_group设定为ORACLE用户组,一般为DBA组
      当ORACLE实例在启动时,调用shmget()函数来请求内存分配时,根据SHM_HUGETLB标志来决定是否使用HUGEPAGE,如果请求的SGA大小设定比可用的HUGEPAGE还要大的时候,ORACLE则续继使用标准的内存页面尺寸,而不使用hugepage。但是分配出去的hugepage继续保持在bugepage pool中,所以这样会导致减少可用的内存数量。可查看/proc/meminfo来得来内存中关于hugepage的相关信息
阅读(4537) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~