ERP俱乐部
ERP爱好者、ERP从业者互相交流、互相学习的乐园;我们的愿景是成为全球一流的中文ERP(Enterprise Resource Planning)交流平台
网站首页 论坛首页 搜索 用户列表 FAQ 注册 登录  
ERP俱乐部 -> 数据库专栏 -> Oracle数据库 -> ORACLE的性能测试经验总结
  ORACLE的性能测试经验总结
帖子发起人: 半神   发起时间: 2011-11-24 10:19 上午   回复数: 0
? 上一主题 下一主题 ?
楼主
  2011-11-24, 10:19 上午
半神 离线,最后访问时间: 2013/6/5 18:59:05 半神

发帖数前25位

超级管理员
职务: 超级管理员
80级
等级: 80级
注册: 2008年1月6日
区域: 华南
经验: 1,267
积分: 1,131
精华: 2
发贴: 590
排名: 26
Site AdministratorsGlobal Moderators培训学员(MM学员服务区-北京200708班) Site Registered UsersSite Moderators培训学员(FI学员服务区-深圳200805班) 每日发帖之星
ORACLE的性能测试经验总结
 
前段时间,在阿里妈妈新机房压力测试过程中用到了LR测试ORACLE,跟DBA(杨军哥)一起在杭州网通新机房进行1000用户的压力模拟测试.整个压力测试耗时两天.以下是一些经验:

  1)压力测试过程中发现一些SQL脚本执行非常慢,进行了优化.

  2)最好并发测试,否则服务基本上没有什么压力.

  3)先从100用户开始,再慢慢向上加,直到CPU的承载达到90%以上.查看系统的性能情况,包括TPS,响应时间,和内存等.

  还包括oracle服务器的I/O流量和交易数。

  这个方案是参考了淘宝的机房性能测试方案,下面是性能测试的具体步骤:

  oracle的性能测试主要是模拟大量的sql语句操作,来对数据库服务器进行加压。在测试前,需要准备以下要模拟的sql语句,测试脚本,并将测试控制机、测试加压机、被测数据库服务器准备妥当。

  脚本协议选择oracle(2-Tier),将所有要模拟的sql语句放在一个sql文件内,使用sql-plus来操作数据库载入,使用 loadrunner来录制。录制好之后就是修改脚本了,首先在vdf.h文件中定义变量(static void FAR * OraBind1;),定义参数(

  static LRD_VAR_DESC UID =

  {LRD_VAR_DESC_EYECAT, 1, 10, LRD_DBTYPE_ORACLE, {1, 1, 0},

  DT_SF_STRIPPED_SPACES};)。

  为什么要在这里定义而不直接只用参数化呢?因为那样会对加压机造成很大的压力,不利于测试。这里需要根据你的脚本来变化,你在脚本中使用了多少 变量,多少参数,那么你就在要这里定义多少。接下来修改脚本的,将一次性的登陆登出放在init和end中,使用lrd_assign和 lrd_ora8_bind_placeholder命令替代参数,如

  lrd_ora8_stmt(OraStm6, "SELECT COUNT(*) as counter FROM ***** WHERE ***_id="

  ":U and ( status = 0 or "

  "status is null)", 1, 0, 0);

  lrd_assign(&UID , "{UID}", "", 0, 0);

  lrd_ora8_bind_placeholder(OraStm6, &OraBind1, "U", &UID , 0, 0, 0);

  这样,脚本就差不多大功告成了。编译一下,没有问题就通过了^o^

  将脚本放在控制机上,就可以开始加压了,注意的是,被测数据库服务器的各个参数配置要记录下来,以便修改参数调优时能分析清晰。记录下数据库的iops,time,tps和响应时间,结果汇总出报告。


开源时代的到来,对与技术人员是一个巨大的考验



QQ:876162454


分享按钮 IP 地址: 已登录   来自: 已登录    返回顶部
 第 1 页 总共 1 页 [共有 1 条记录]
ERP俱乐部 -> 数据库专栏 -> Oracle数据库 -> ORACLE的性能测试经验总结
(C)Copyright 2005-2020 www.erpclub.org All Rights Reserved.
Tel:+86-755-26444630
Email:webmaster@yok.com.cn