linux与oracle内核与内存技术_第1页
linux与oracle内核与内存技术_第2页
linux与oracle内核与内存技术_第3页
linux与oracle内核与内存技术_第4页
linux与oracle内核与内存技术_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、x86-32位体系结构中Linux+Oracle内核与内存管理技术演讲者:pinerLINUX与ORACLE的完美结合 “我们将把自己的所有业务都运行于Linux之上。” Larry EllisonRedhat Advance Server的内存管理 由于32-bit系统构架的限制,线性虚拟内存空间的大小在32-bit平台上为4 GB的固定大小 采用PAE技术而拥有36位的线性寻址能力,这就可以让Redhat Advance Server可以使用到达64G的虚拟内存空间 在PAE的Redhat AS上,Oracle怎么样充分利用内存呢?内存管理方式 AS 2.1中,4G的虚拟地址空间将被划分为

2、3G的用户空间与1G的核心空间,在这种方式下,每个用户进程最多能访问3G的虚拟内存空间 在AS 3.0,为了更好的利用大内存,出现了一种称为hugemem的核心,将采用4+4的寻址方式,也就是说,用户进程与核心进程将可以有单独的4G的虚拟地址寻址能力 内存管理方式Redhat Advance Server的核心介绍 kernel-BOOT核心 AS 2.1与3.0的kernel-smp核心 AS 2.1的kernel-enterprice核心 AS 3.0的kernel-hugemem核心 获得内核的办法 安装新的核心包(RPM包) 重新编译新的核心(make) AS 2.1将Oracle S

3、GA扩大到2.7G Oracle 817以上 修改OS基地址 修改Oracle SGA限制oxFFFFFFFFoxC0000000oxBF000000ox00000000共享内存段ox40000000 SGA ox50000000application codeshared librarieskernel stuffstack SGA max 1.75Gox10000000ox150000002.98GAS 2.1将Oracle SGA扩大到2.7G 0 xc0000000 (核心空间的基地址 3 GB) - 0 x15000000 (SGA的基地址 336 MB) - 0 xab000000

4、 (十进制约2.736 GB) - 堆栈空间 - 其它内存空间 - 2.65到 2.70 GBAS 2.1将Oracle SGA扩大到2.7G 用root身份修改启动Oracle的进程基地址 echo 268435456 /proc/$pid/mapped_base 修改共享内存段 echo 3000000000 /proc/sys/kernel/shmmax 修改Oracle的SGA束缚地址 genksms -s 0 x15000000 ksms.s make -f ins_rdbms.mk ksms.o make -f ins_rdbms.mk ioracle AS 3.0将Oracle

5、SGA扩大到3.7G 3+1内存管理只能到2.7G SGA 4+4内存管理可以到3.7G SGA OS基地址AS 3.0默认已经修改 只需要修改Oracle的SGA束缚地址 genksms -s 0 x15000000 ksms.s make -f ins_rdbms.mk ksms.o make -f ins_rdbms.mk ioracle取消大SGA内存修改 返回默认值 genksms ksms.s 重新编译 make -f ins_rdbms.mk ksms.o make -f ins_rdbms.mk ioracle AS 2.1上2.7G以上SGA支持 VLM技术 通过使用内存共享

6、文件系统shmfs来实现 仅仅是对Oracle 92版本有效 不能使用9i的动态内存与多个块大小的特性 REDHAT 2.1 企业版核心 2.4.9-e.8 enterprise以上 AS 2.1上2.7G以上SGA支持 用root身份运行 mount -t shm shmfs -o size=7g /dev/shm 修改/etc/fstab自动挂装 shmfs /dev/shm shm size=7g 0 0 确保大页的支持,提高TLB命中率,防止被交换 增加bigpages=8200 MB 到lilo或grub.conf kernel /boot/vmlinuz-2.4.9-e.40smp

7、 ro root=/dev/hda2 hdc=ide-scsi bigpages=8100MB 看大页的信息 /proc/meminfoAS 2.1上2.7G以上SGA支持 确保大页类型 echo 2 /proc/sys/kernel/shm-use-bigpages echo kernel.shm-use-bigpages=2 /etc/sysctl.conf 修改共享内存段 echo 4000000000 /proc/sys/kernel/shmmax 修改init参数 use_indirect_data_buffers=true db_block_buffers=850000AS 3.0

8、上3.7G以上SGA支持 AS 3.0不支持大页,利用改进的ramfs内存文件系统 可以自动防止被交换与分页 创建共享文件系统,并放入到/etc/rc.local umount /dev/shm mount -t ramfs ramfs /dev/shm chown oracle:dba /dev/shmAS 3.0上3.7G以上SGA支持 为了防止错误 ORA-27103: internal error Linux Error: 11: Resource temporarily unavailable 修改最大锁内存限制(ulimit l) 因为3.0的ulimit l默认是4,为了容纳最大

9、LVM window size(默认512M),可以设置限制为3G AS 3.0上3.7G以上SGA支持 修改 /etc/security/limits.conf: oracle soft memlock 3145728 oracle hard memlock 3145728 如果是远程SSH连接 在/etc/init.d/sshd 的start中增加ulimit -l 3145728 在/etc/ssh/sshd_config 开启UseLogin yes 重新启动sshd服务,service sshd restartAS 3.0上3.7G以上SGA支持 修改共享内存段 echo 37000

10、00000 /proc/sys/kernel/shmmax 修改init参数 use_indirect_data_buffers=true db_block_buffers=850000AS 3.0上hugetlb 支持 Oracle 92版本,参考补丁3318884,10g默认 直接映射的地址空间(非VLM环境) 页面由大的 TLB 条目支持,避免交换与分页 取ipcs 的shmmax值 转换为M的单位并增加一定冗余量 echo 计算值 /proc/sys/vm/hugetlb_pool 动态修改 如果想启动生效,可以放入/etc/rc.loacl 生效信息可以从/proc/meminfo获得怎么样编译Linux内核 清除所有的临时文件、中间件和配置文件 make mrporper 进入到源码目录/usr/src/linux-2.4/ 启动编

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论