白鳝的洞穴 ( 白鳝与Oracle的亲密接触 ) 给他(她)留言   |  相册  |  回到专栏  |  管理  |   登录  博客首页
白鳝在工作中的点滴积累,不仅仅包括技术的
白鳝
  •    我的栏目
  •   我的文章
      Oracle杂谈
      内部分析
      优化
      案例
      小技巧
      BUG与故障
      SQL与PL/SQL开发
      DBA日记
      IT长篇小说第一部:IT的I
  •    最新文章
  •   DBA日记第三部 像Oracle一样
      DBA日记第三部 像Oracle一样
      DBA日记第三部 像Oracle一样
      DBA日记第三部 像Oracle一样
      DBA日记第三部 像Oracle一样
      CPU_COUNT对共享池的影响
      DBA日记 第三部 像Oracle一样
      DBA日记 第三部 像Oracle一样
      3月24日 简单任务 (1)令人
      3月23日 理解表的存储结构 (
  •    最新评论
  •   [sir.liang]   回复:Statspack报告中的重要指标的含义(1)
      [sellcopywatch]   Re:Statspack报告中的重要指标的含义(1)
      [sellcopywatch]   Re:WINDOWS上使用文件系统模拟ASM
      [sellcopywatch]   Re:Oracle审计功能
      [sellcopywatch]   Re:LARGE POOL
      [HadaVopsesoto]   Would you like to play solitaire against real persons?
      [飞帆]   回复:DBA日记第三部 像Oracle一样思考 3月28日 理解索引(1)
      [xhh]   回复:健康性检查
      [jimlist]   回复:Oracle常用EVENT参考(3)
      [edwards6309]   回复:DBA日记第三部 像Oracle一样思考 4月2日 索引危机(3)效果不错
  •    博客统计
  •   文章 - 166
      评论 -777
      访问 - 58193
  •    友情链接
  • 主题:DBA日记第三部 像Oracle一样思考 3月27日 简单任务 (4)更大的意外 发表时间:2010-4-19 21:18:22 
    作者:白鳝  在线 回复:8   浏览:1236

    327日 简单任务 (4更大的意外

    昨天晚上调整了表结构,我建议把REDO LOG也相应做些调整。目前南坪系统的LOG BUFFER1MREDO LOG文件大小是61M,人和系统的LOG BUFFER120KREDO LOG文件大小是100M,不过人和系统每个日志组有2个成员。对于这种REDO量十分高的系统,使用2个成员虽然增加了可靠性,但是对性能的负面影响也是很大的。因此我建议将人和系统的REDO LOG成员改为1个。

    昨天晚上调整建表脚本的同时,我针对数据库进行了一些调整,其中SGAREDO的调整如下:

    参数

    当前值

    建议值

    设置原则

    DB CACHE SIZE

    NP:3072M

    RH:2048M

    NP:4096M

    RH:2048M

    对于本系统,在内存充足的情况下,设置DB CACHE,尽量使DB BUFFER的命中率提高。如果人和系统扩容后内存充足,增加DB CACHE的大小,可以提高查询和单条INSERT的性能(如不使用FORALL操作)

    DB KEEP SIZE

    未设置

    NP:300M

    RH:300M

    HISTABLE以外的常用对象放入KEEP

    LOG BUFFER

    NP: 1024000

    RH: 124416

    NP:20M

    RH:20M

    设置LOG BUFFER的原则是使系统在忙时不出现log buffer space等待

    SHARED POOL SIZE

    NP: 314572800

    RH: 318767104

    NP:400M

    RH:400M

    设置比较合理的时候,不会出现较多的LIBRARY CACHESHARED POOL闩锁等待

    REDO LOG文件

    NP:61M

    RH:100M

    2000M

    业务高峰期,减少日志切换

    南坪系统的REDO LOG文件以前存放在HDISK2上,而UNDO,TEMP以及一部分索引所在的表空间也使用了HDISK2,为了减少IO方面的争用,把这些索引存放在其他表空间上,同时把UNDO表空间移到HDISK3上。

    对于SM_HISTABLE参数调整如下:

    南坪和人和平面的SM_HISTABLE表的存储参数设置建议如下:

    参数

    当前值

    建议值

    说明

    FREELISTS

    1

    8

    不小于最大并发插入进程的数量

    INITIAL

    64K

    8M

    NEXT

    64K

    8M

    INITRANS

    未设置

    8

    对于南坪和人和平面的SM_HISTABLE表的索引的存储参数设置建议如下:

    参数

    当前值

    建议值

    说明

    FREELISTS

    1

    8

    不小于最大并发插入进程的数量

    INITIAL

    64K

    4M

    最小设置为2M

    NEXT

    64K

    4M

    最小设置为2M

    INITRANS

    未设置

    8

    昨天晚上停了1个小时数据库,还好华为的短信平台设计的很灵活,数据库停止后,所有的话单被暂存在内存中,内存缓冲区满和后会转储到文件中。因此停数据库对短信业务并无影响。数据库重启后,1小时的短信话单被集中写入,事后经过业务部门的确认,最高峰的时候,南坪和人和系统短信话单的插入数量达到了惊人的5800/秒,而从系统监控上看,CPU负载不到50%IO负载也在40%左右,看样子系统还是有很大潜力的,以这样的性能情况来看,这个项目应该可以圆满的结束了。

    按照以往的惯例,做完实施后的第二天早上我早早就到了客户现场,系统运行的很平稳,CPU使用率在20以下,IO也很小。这是我意料之中的事情,于是我打电话和余经理通报了一下今天的情况。然后进行了两项测试,第一项测试是创建一张和原来一样的表,测试一下调整了REDO后,性能有多大的提升。测试结果让我感到十分惊讶:

    基线1RUNID 10

    优化前南坪的REDO LOG设置

    指标或参数

    数值

    备注

    LOG BUFFER

    1000K

    日志组数量

    8

    日志文件大小

    60000K

    表分区方式

    范围

    执行次数

    50000

    执行时间

    37968

    平均每个INSERT的时间

    0.75936

    日志切换时间

    11

    主要等待事件

    LOG BUFFER SPACE 

    BUFFER BUSY WAIT

    LOG SYNC

    基线2 (RUNID 11)

    优化后的测试基线

    指标或参数

    数值

    备注

    LOG BUFFER

    20M

    日志组数量

    3

    日志文件大小

    1500M

    表分区方式

    范围

    执行次数

    50000

    执行时间

    24189

    平均每个INSERT的时间

    0.48378

    提高57

    日志切换时间

    5分钟

    主要等待事件

    BUFFER BUSY WAIT

    本次测试是模拟实际生产环境中写入进程的工作,先启动7个插入进程进行插入操作,在第8个进程中使用PROFILER进行跟踪,每个批次插入800条记录,循环50000次。优化前和优化后的性能对比十分惊人,居然性能提升了57%。这是我预想不到的。后来我又在人和的系统上做了一个同样的测试,虽然性能提升没有南坪那么明显,不过性能也提升了38%

    我马上给北京的老方打了个电话,告诉他这里的优化效果。老方感到十分惊讶,这个项目真可谓是柳暗花明,原本以为很难搞定的项目居然通过简单的调整了一些参数就取得了这么大的效果。

    下午的总结会上,大家心情都不错,小余望着窗外久违的阳光说:“按理说,这么好的天就不应该上班,应该找个茶馆喝茶去”。大家听了都乐了,我说:“干脆我们找个茶馆去开会算了”。任务完成的不错,大家的心情当然就好。

    这个优化项目很成功,第二年除夕的时候,我收到了小余的一条短信:“今天系统一切正常,谢谢你,祝你新年愉快”。春节的时候收到远在千里之外的美女的祝福,确实是件很爽的事情。

    本文链接:http://www.oraclefans.cn/blog/showblog.jsp?rootid=18456
     
           网友评论
    ─ 评论人 sky_heaven    10-04-19 21:35
     

    这个案例结束了。 又有收获,感谢老白。
    ─ 评论人 lyd_972    10-04-20 01:15
      很好!!!!!!!!!
    ─ 评论人 lyd_972    10-04-20 01:15
      很好!!!!!!!!!
    ─ 评论人 lyd_972    10-04-20 01:17
      简单的任务背后 不简单
    ─ 评论人 chjlu    10-04-20 09:47
      NP和RH指的是什么?
    ─ 评论人 angus_shi    10-04-21 15:08
      呵呵,楼上没有仔细看,南坪和人和 啊
    这个case说明了基础工作的重要性。
    ─ 评论人 tomzzy    10-07-30 09:20
      经典,学习了。老白继续
    ─ 评论人 killkill    10-08-03 22:09
      经典啊,学习了。
     
    1
     
    >> 请登录以后评论!您还没有注册?   

    Powered by CWBBS 2.1  © 2005-2006 Cloud Web Soft
      Email:webmaster@justdb.cn