专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »数据库 » oracleaix:Oracle 9i在AIX上的性能调整--内存篇 »正文

oracleaix:Oracle 9i在AIX上的性能调整--内存篇

来源: 发布时间:星期五, 2009年1月23日 浏览:57次 评论:0
="t18">
  内存访问冲突出现在当进程申请内存超过系统物理内存总量时为了处理这种情况系统将和数据在内存和硬盘间进行交换   控制内存交换操作(Paging)

  大量内存交换操作会极大地影响系统性能尤其是在当数据库文件创建在文件系统上时(JFS and JFS2)在这种情况下经常访问数据即在SGA中存在也同样在文件缓存Cache中存在这种相同数据在内存中缓存Cache两次情况会降低内存使用效率从而使内存频繁进行交换操作造成系统I/O瓶颈降低整个系统性能   调整AIX上文件缓存Cache

  在AIX上可以通过vmtune命令中MINPERM和MAXPERM参数调整系统文件缓存Cache来控制内存交换操作MINPERM和MAXPERM参数调整应遵照以下原则:   当内存中文件缓存Cache页在MINPERM以下时内存页交换算法同时交换文件缓存Cache页和页(computational pages)
  当内存中文件缓存Cache页在MAXPERM以上时内存页交换算法只交换文件缓存Cache页
  当内存中文件缓存Cache页在MINPERM和MAXPERM的间时内存页交换算法通常只交换文件缓存Cache页但假如文件缓存Cache页交换率大于页时页也同样被交换
  MINPERM和MAXPERM参数缺省值
  MINPERM = ((number of memory page) - 1024)*0.2
  MAXPERM = ((number of memory page) - 1024)*0.8
  可以用以下命令将MINPERM设为5%内存页而MAXPERM设为20%内存页   # vmtune -p 5 -P 20   缺省值分别为20%和80%   在Oracle数据库应用环境下可以将MINPERM和MAXPERM分别设为5%和20%甚至更小从而使内存更多地被用于OracleSGA而不是系统文件缓存Cache   配置足够交换区

  假如交换区空间不足会造成系统响应速度变慢甚至挂起交换区大小取决于系统内存大小以及应用对内存需求在AIX上可以动态增加交换区也可以用lsps命令察看交换区使用状况以及用vmstat监视系统内存页交换操作   通常交换区大小需要大于系统实际内存这主要取决于应用对内存需求用户需要监视交换区使用状况根据需要增加交换区空间对于运行Oracle Application或Oracle development tools可能需要较大交换空间   排定内存需求优先级

  假如系统内存不足就需要对进程对内存使用优先级进行排序将内存优先分配给能获得更好系统总体性能进程通常顺序如下:
  1. AIX和Oracle核心进程
  2. 应用进程
  3. OracleRedo log buffer
  4. PGA和共享池(shared pool)
  5. Oracle数据缓存Cache(block buffer cache)
  例如:当你查询Oracle动态性能表时发现共享池(shared pool)和数据缓存Cache区(block buffer cache)都需要配置更多地内存而你系统中空闲内存有限那么将空闲内存分配给共享池比分配给数据缓存Cache区有更好效果   数据块(Database block)大小

  用户可以选择Oracle数据库中数据块大小以获得更好性能在AIX上通过设置DB_BLOCK_SIZE化参数选择从2KB到32KB数据块缺省值是4KB假如数据文件在文件系统上则Oracle数据块大小应为文件系统数据块4KB整倍数假如数据文件在系统裸设备上则Oracle数据块大小应为系统数据块512B整倍数   Oracle公司推荐对于在线交易应用(OLTP)或混合型应用环境采用2KB或4KB数据块对于BI应用或决策支持系统(DSS)采用更大数据块如8KB16KB或32KB   调整日志归档缓存Cache(Log Archive Buffers)

  配置较大缓存Cache可以提高数据库日志归档速度但注重不要对整个系统性能产生影响用户可以将LOG_ARCHIVE_BUFFER_SIZE增加到128KB (其缺省值为4KB)会提高0-20%数据库归档操作性能   调整SGA大小

  对于Oracle SGA来说被系统内存治理换出到交换区上肯定是用户最不愿意见到情况这就需要系统配置有足够内存对于大量用户同时在线应用建议配置较大SGA区对于SGA影响最大参数是DB_BLOCK_BUFFERS和SHARED_POOL_SIZE增大这两个参数取决于用户希望分配给SGA内存大小同时增大这两个参数也会造成CPU利用率提高   小结

  合理内存配置是Oracle数据库性能调整重要方面其根本目标是首先尽量避免系统内存页交换操作然后尽量将应用经常用到数据缓存Cache在系统SGA区中

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: