Oracle进程内存占用或者CPU达到100%

   问:oracle进程内存占用一直增加,达到1G左右的时候就会连接失败,监听进程死掉,或者CPU达到100%,如何解决?

  Oracle性能调优一直是一个很有意思的命题,增强硬件配置是一种方法,但我们平时遇到的最多的问题是如何在没办法增强硬件配置的情况下,将数据库性能优化,这里给出一个思维流程,希望对各位有益:

  1 PATCH是否都打了,ORACLE系统内存参数是否太大,超出OSMEMORY

  2查查是不是程序没有关闭连接导致连接数不断上升引起的,你是什么操作系统?

  3服务器都作了什么设置呢?比如sga的分配,是什么情况呢?

  4要进行调优,及参数设置.

  启动“Enterprise Management Console”,以SYS/**** as SYSDBA身份进入系统。

  ORACLE9i调优只涉及如下几个参数:

  a) processes = 2000;

  b) open_links = 100;

  c)open_cursors = 30000;

  d)sessions=2500;

  e) parallel_automatic_tuning=true

  f) undo_retention=3600

  g) undo_management=AUTO

  请确保在“SPFILE”中保存.Oracle9i缺省的启动参数是spfile.不要用pfile文件启动数据库.

  物理内存大于2.5G以上的通用设置:

  启动“Enterprise Management Console”,以SYS/**** as SYSDBA身份进入系统。

  配置SGAPGA大小方法如下:

  物理内存大于2.5G以上的通用设置

  中文名参数名参数值设置方法

  SGA的最大大小 Sga_max_size 1200M 例程> 配置> 内存项卡

  日志缓冲区 Log_buffer 3145728 例程> 配置> 一般信息选项卡> 所有初始化参数

  大型池 Large_pool_size 24M 例程> 配置> 内存项卡

  Java Java_pool_size 20M 例程> 配置> 一般信息选项卡> 所有初始化参数

  共享池 Shared_pool_size 96M 例程> 配置> 内存项卡

  数据缓冲区高速缓存 Db_cache_size 800M 例程> 配置> 内存项卡

  Keep Db_keep_cache_size 224M 例程> 配置> 一般信息选项卡> 所有初始化参数

  Pga自动管理 workarea_size_policy AUTO 例程> 配置> 一般信息选项卡> 所有初始化参数

  总计pga目标 pga_aggregate_target 500M 例程> 配置> 内存项卡

  说明:

  1. 此内存设置不包含在数据库服务器上的其它应用程序的物理内存的大小.如果有其它的应用程序,可以参照下面的计算: sga_max_size+ pga_aggregate_target+应用程序物理内存+OS物理内存 <= 系统物理内存*75%.如果服务器上只有Oracle服务器,2.5G以上物理内存的服务器上Oracle内存参数都可以参照上面的设置.如果服务器上有其它的应用,而服务器总的物理内存大于2.5,请自己计算后再选择的方案 

2. sga_max_size+ pga_aggregate_target <=1.7G,32bit操作系统上有这个限制.

  3. Log_buffer的大小为3M.但是在设置的时候必须输入换算后的3145728. 其他的参数支持M的输入.

posted on 2008-04-17 11:25  afant  阅读(3932)  评论(0编辑  收藏  举报

导航