`
itspace
  • 浏览: 959190 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

记一次内存换IO的Oracle优化

 
阅读更多
某客户数据库从P595物理迁移至P780新服务器并更换存储之后,发现应用性能反而下降。P780配置了32颗4核CPU(主频为3920 MHz),710G内存。如下所示:
System Model: IBM,9179-MHC
Machine Serial Number: 06DA0CR
Processor Type: PowerPC_POWER7
Processor Implementation Mode: POWER 7
Processor Version: PV_7_Compat
Number Of Processors: 32
Processor Clock Speed: 3920 MHz
CPU Type: 64-bit
Kernel Type: 64-bit
LPAR Info: 1 SN06DA0CR
Memory Size: 727040 MB
Good Memory Size: 727040 MB
Platform Firmware level: AM740_088
Firmware Version: IBM,AM740_088
Console Login: enable
Auto Restart: true
Full Core: false
P595配置了32颗双线程CPU(主频为2302 MHz),186G内存。如下所示:
System Model: IBM,9119-595
Machine Serial Number: 83E37E3
Processor Type: PowerPC_POWER5
Processor Implementation Mode: POWER 5
Processor Version: PV_5_3
Number Of Processors: 32
Processor Clock Speed: 2302 MHz
CPU Type: 64-bit
Kernel Type: 64-bit
LPAR Info: 1 83-E37E3
Memory Size: 190976 MB
Good Memory Size: 190976 MB
Platform Firmware level: SF240_358
Firmware Version: IBM,SF240_358
Console Login: enable
Auto Restart: true
Full Core: false
可以看到服务器在硬件配置层面提高了很多,在排除了执行计划变坏的可能性之后,数据库性能下降是极不正常的。
在排除了服务器配置因素之后,进一步检查存储的I/O性能。通过查看AWR报告发现数据库性能下降期间,存储I/O的响应时间下降厉害,单块顺序读(db file sequential read)需要24ms,多块离散读(db file scattered read)需要33ms,日志文件同步(log file sync)竟然高达68ms,如下所示:

几乎可以确认,存储I/O下降是引起数据库性能下降的主要原因。经过和客户沟通之后,由于种种原因,该库和另外一套数据库需要共用一套存储,而且短期内还不能更改这种架构模式。
前面提到p780服务器的内存为710G,比原来的p595服务器足足多出524G内存。在目前的硬件条件下,要快速提高数据库性能,只能采取内存换I/O的优化手段。数据库SGA参数修改之前,BUFFER CACHE为40G,SHARED POOL为14G,如下所示:

经过和客户商量,决定扩大数据库的BUFFER CACHE至256G,并设置db_keep_cache_size至200G,并将最“热”的表和索引KEEP进KEEP POOL中,KEEP语法如下所示:
alter table xxx storage(buffer_pool keep);
alter index xxx storage(buffer_pool keep);
可以通过DBA_SEGMENTS.BUFFER_POOL字段查看对象是否已经KEEP进KEEP池中。如下所示:
SQL> select distinct BUFFER_POOL from dba_segments;

BUFFER_
-------
DEFAULT
KEEP
修改之后的BUFFER CACHE和KEEP POOL大小如下所示:



设置相关参数并重启数据库,过一段时间,数据库性能得到了极大的提升。尽管单块读的时间依然很高(响应时间为19ms),如下所示:

但是,查看AWR报告发现数据库每秒的物理读次数下降明显,每秒读数据块个数为1,925个,如下所示:

而修改参数之前,每秒的物理读高达6624个,如下所示:

可见,增大数据库的BUFFER CACHE效果还是很明显的,增大BUFFER CACHE使得更多的数据块可以被缓冲到内存中,从而有效地减少了物理读。但需要注意的是,增大BUFFER CACHE会在一定程度上增加CPU的使用率,所幸的是,增大BUFFER CACHE之后CPU空闲率维持在80%左右,系统内存使用率在78%左右,如下所示:



总结:
在CPU资源充足的前提下,适当增加BUFFER CACHE内存可以缓减存储I/O资源紧张。
0
0
分享到:
评论

相关推荐

    Oracle数据库性能优化PDF

    资源名称:Oracle数据库性能优化 PDF内容简介:本书面向实际应用,从多个角度出发,对Oracle优化中的很多关键问题进行了深入全面的探讨,涵盖了Oracle优化的各个技术层面,从内存优化、IO规划及优化,到SQL优化调整...

    oracle IO 使用情况

    在项目的实际应用中, 使用此 sql 代码可以查找运行过程中, 哪些 sql 语句占用 io 内存比较大, 以便于进行优化, 使项目运行更加便利。

    使用资源管理器优化Oracle性能

     操作系统使用了虚拟内存的概念,虚拟内存使每个应用感觉自己是使用内存的唯一的应用,每个应用都看到地址从0开始的单独的一块内存,虚拟内存被分成4K 或8K的page,操作系统通过MMU(memory management unit)将...

    oracle 官方培训

    Oracle数据库培训大纲(2天) 基本内容 时间安排(天) 课程内容要点 基础和管理 1天 Oracle结构组件 ...Oracle的内存优化 数据库配置与IO优化 诊断工具和等待事件 SQL优化原则和案例 Oracle 10g自动SQL调整

    ORACLE9i_优化设计与系统调整

    §14.1 Oracle优化器 170 §14.2 SQL处理体系结构 171 §14.2.1 解析程序 171 §14.2.2 优化程序 172 §14.2.3 行源程序产生器 172 §14.2.4 SQL执行 172 §14.3 EXPLAIN PLAN 172 §14.4 选择优化器路径及目标 172 ...

    关于Oracle数据库优化的几点总结

    个人理解,数据库性能关键的因素在于IO,因为操作内存是快速的,但是读写磁盘是速度很慢的,优化数据库关键的问题在于减少磁盘的IO,个人理解应该分为物理的和逻辑的优化, 物理的是指oracle产品本身的一些优化,...

    在_AIX_中运行_Oracle_性能方面的技巧和诀窍

    我们将讨论虚拟内存管理器 (VMM,Virtual Memory Manager)、CPU、内存和 I/O(磁盘以及网络)等方面。我们将研究一些可用于分析瓶颈问题的工具,...最后,我们还将回顾一些可用于帮助您进行性能优化的 Oracle 工具。

    Oracle性能调优

    Oracle性能调优 一、概述, 二、警告,跟踪文件,事件 三、监控工具和动态性能视图 四、优化SQL语句 五、优化共享内存 六、优化数据缓存 七、优化重做日志缓存 八、优化数据库结构和IO 九、有效使用数据块

    Oracle培训讲稿

    oracle公司内部培训资料 大纲: Oracle结构组件 Oracle服务器入门 管理Oracle实例 建立数据库 ...Oracle的内存优化 数据库配置与IO优化 诊断工具和等待事件 SQL优化原则和案例 Oracle 10g自动SQL调整

    SQL性能优化

     以上四个SQL在ORACLE分析整理之后产生的结果及执行的时间是一样的,但是从ORACLE共享内存SGA的原理,可以得出ORACLE对每个SQL 都会对其进行一次分析,并且占用共享内存,如果将SQL的字符串及格式写得完全相同则...

    Oracle9i的init.ora参数中文说明

    Oracle9i初始化参数中文说明 Blank_trimming: 说明: 如果值为TRUE, 即使源长度比目标长度 (SQL92 兼容) 更长, 也允许分配数据。 值范围: TRUE | FALSE 默认值: FALSE serializable: 说明: 确定查询是否获取表级...

    Aix Performance Configuration and Tuning for Oracle

    详细的阐述了AIX环境下oracle的优化及配置,包括cpu,memory,network,Io等,其中内存部分非常详细,感兴趣的请收藏!来自官方

    揭秘SQL优化技巧 改善数据库性能

    优化目标 1、减少 IO 次数 IO永远是数据库最容易瓶颈的地方,这是由数据库的职责所决定的,大部分数据库操作中超过90%的时间都是 IO 操作所占用的,减少 IO 次数是 SQL 优化中需要第一优先考虑,当然,也是收效最...

    2013年中国数据库大会PPT第一部分

    16.运用之妙 存乎一心—— Oracle优化器案例与算法解析.pdf 17.DM7 MPP架构——同时满足OLAP与OLTP需求.pdf 18.SAP 让大数据飞翔.pdf 19.阿里数据库关键技术.pdf 20.基于Oracle的SQL优化典型案例分.pdf 21.赢在起点...

    2013中国数据库大会ppt(1)

    运用之妙 存乎一心—— Oracle优化器案例与算法解析.pdf DM7 MPP架构——同时满足OLAP与OLTP需求.pdf SAP 让大数据飞翔.pdf 阿里数据库关键技术.pdf 基于Oracle的SQL优化典型案例分.pdf 赢在起点–谈数据库设计规范....

    2013中国数据大会ppt(2)

    运用之妙 存乎一心—— Oracle优化器案例与算法解析.pdf DM7 MPP架构——同时满足OLAP与OLTP需求.pdf SAP 让大数据飞翔.pdf 阿里数据库关键技术.pdf 基于Oracle的SQL优化典型案例分.pdf 赢在起点–谈数据库设计规范....

    2013中国数据库大会ppt(3)

    运用之妙 存乎一心—— Oracle优化器案例与算法解析.pdf DM7 MPP架构——同时满足OLAP与OLTP需求.pdf SAP 让大数据飞翔.pdf 阿里数据库关键技术.pdf 基于Oracle的SQL优化典型案例分.pdf 赢在起点–谈数据库设计规范....

    HIVE查询优化

    所有的调优都离不开对CPU、内存、IO这三样资源的权衡及调整 Hive QL的执行本质上是MR任务的运行,因此优化主要考虑到两个方面:Mapreduce任务优化、SQL语句优化 一、Mapreduce任务优化 1、设置合理的task数量(map ...

    JAVA中级书籍

    1、对于Java基础技术体系(包括JVM、类装载机制、多线程并发、IO、网络)有一定的掌握和应用经验。 掌握JVM内存分配、JVM垃圾回收;类装载机制; 性能优化; 反射机制;多线程;IO/NIO; 网络编程;常用数据结构和...

    【白雪红叶】JAVA学习技术栈梳理思维导图.xmind

    oracle db2 缓存 redis 数据结构 持久 复制 cas 单线程 memcache eacache Tair 消息队列 jms Queue Topic kafka 持久 复制 Stream Partition rocketMQ RabbitMQ ActiveMQ 常用开源框架 ...

Global site tag (gtag.js) - Google Analytics