网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.把表里的数据导成insert语句.
.Oracle8i系统概述.
.Oracle的db_name和instance_name.
.主外键约束信息.
.Oracle 10G 最佳20位新特性:自动.
.Oracle归档模式的命令及参数.
.关于使用RMAN进行clone数据库二.
.Oracle数据库9i在AIX环境下的性能.
.数据库设计中的反规范技术探讨.
.Oracle Database 10 g : 为 DBA .
.说Oracle的MTS.
.详细介绍:安装0racle 10g 的艰难.
.Oracle PL/SQL语言基础(2).
.ORACLE常用傻瓜問題1000問(之八).
.在Oracle817上安装java虚拟机详细.
.Linux 网管 123 --- 组态 X Win.
.通过sql语句获取数据库的基本信息.
.DBA如何以别人的身份注册数据库.
.Win98+Win2K+Linux 装配方案.
.关于竖表转横表的问题.

Oracle9i进程的内存占用问题的说明

发表日期:2008-2-9


 过去这段时间,我工作的其中之一就是在为一个电信业务系统的升级做预备,在两台IBM M85(6CPU*12G MEM AIX 5L)上对Oracle9I RAC做具体的测试工作,开始的时候一切都很顺利,但后来却碰到一个难题,就是Oracle 9i的单个进程占用的内存过多。
  经过一段时间测试,在先后解决了其它问题后,最后的主要问题集中到了内存上,ORACLE9i在AIX 5L上每个进程都占用了很多内存,一个空连接进程就会用到5M多的内存,而众所周知,Oracle8i的单个进程占用的内存一般是2~3M,所以这就引起了我们的高度重视,因为假如按此计算,1000个连接什么事不做就要5G内存了!而我们的实际应用连接数比这还要多。
  
  在出现问题之后,我先后对ORACLE进行了不同方向的调整,也问过了一些朋友以及IBM和ORACLE的技术支持, 翻遍了国内外我所知道的论坛,都没有看到任何有意思的消息,更不要说解决方案了。这让我开始怀疑是Oracle9i的BUG,果然在6月底Oracle公布了这个BUG(我是在7月底看到的,因为7月份的大部分时间在处理别的事)!造成这个问题是因为AIX上C的编译器问题,使得本来可以共享的部分,最后都没有共享,造成每个进程都浪费了大约1MB的内存。详情参见本文最后BUG:3028673的描述。
  
  为了验证确实是AIX的问题,我在另外一台HP-UX B11.11上进行了同样的测试,结果显示Oracle9i的单个进程仍然占用很多内存!经过分析发现这是由于两方面原因造成的:
  
  1、Oracle9i的初始化参数CURSOR_SPACE_FOR_TIME从默认的FALSE改成了TRUE;
  
  2、HP-UX上的Oracle9i将虚拟内存数据页(virtual memory data pages)的默认值从原来的D(4KB)改成了L(1GB)。
  
  使用/usr/bin/chatr $ORACLE_HOME/bin/oracle查看oracle程序的内部属性 ,我们发现虚拟内存的text段从原来的16M改成了64M,而DATA段从原来的64M改成了L(最大可达到1GB)。经过测试验证 ,DATA段这个参数直接影响了Oracle9i单个进程所占用的内存的大小 。对于空连接来说,4MB是扩展的临界点,因为空连接是扩不到16MB(4MB的下一个可设DATA段大小)。
  
  Oracle8i和Oracle9i虚拟内存默认值对比:
  8i
  ......
  shared library binding:
  deferred
  global hash table disabled
  shared vtable support disabled
  segments:
  index type address flags size
  5 text 4000000000000000 z-r-c 16M
  6 data 8000000100000000 ---m- 64M
  executable from stack: D (default)
  kernel assisted branch prediction enabled
  lazy swap allocation for dynamic segments disabled
  
  9i
  .........
  shared library binding:
  deferred
  global hash table disabled
  shared vtable support disabled
  segments:
  index type address flags size
  5 text 4000000000000000 z-r-c 64M
  6 data 8000000100000000 ---m- L (largest possible)
  executable from stack: D (default)
  kernel assisted branch prediction enabled
  lazy swap allocation for dynamic segments disabled
  
  我们可以使用/usr/bin/chatr +pd newsize $ORACLE_HOME/bin/oracle来更改DATA段的可用内存大小,对于text段的内存大小我们也可以使用chatr +pi来改,但gototop并不建议你这样做,因为text段是给命令用的。
  
  至此,我就在想了,自然在HP-UX上是因为这个原因造成的,那么在AIX上除了C编译器的原因之外,是否也存在着同样的问题呢?到目前为止,gototop还没有的等到任何可靠的消息来证实这一点,但我猜想可能性很大。
  
  附、BUG:3028673描述
  Bug 号
  3028673
  
  已归档
  27-JUN-2003
  已更新
  08-JUL-2003
  
  产品
  Oracle Server - Enterprise Edition V7
  产品版本
  9.2.0.3
  
  平台
  Generic
  平台版本
  无数据
  
  数据库版本
  9.2.0.3
  影响平台
  Port-Specific
  
  优先级
  Severe Loss of Service
  状态
  Closed, Vendor OS Problem
  
  基本 Bug
  N/A
  修复产品版本
  无数据
  
  问题陈述:
  
  ORACLE ON AIX DOES NOT SHARE MANY CONST STRUCTS - PER PROCESS MEMORY OVERHEAD
  
  --------------------------------------------------------------------------------
  
  *** 06/27/03 10:31 am ***
  
  =========================
  
  PROBLEM:
  
  1. Clear description of the problem encountered:
  
  Oracle on IBM AIX platforms (AIX 5L and 4.3.3) use a large amount of memory per dedicated connection. For Oracle 9.2 on AIX 5L the memory required per idle Oracle process appears to be about 5Mb. A significant portion of this is related to non-shared const structures (probably about 1Mb) .
  
  This bug is to track the issue of the non-shared const structures.
  

上一篇:被Oracle9i应用服务器打动的几点理由 人气:482
下一篇:创建一个ORACLEstandby database的全过程 人气:598
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐