[转]Oracle的性能测试总结
LR测试ORACLE进行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和
响应时间,结果汇总出报告。
第二篇: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和响应时间,结果汇总出报告。
第三篇:性能测试总结报告的模板
文档编号:编 写:审 核:批 准:[系统名称]
性能测试总结报告(V1.0)
项目名称: 编写日期: 审核日期: 批准日期:
修订状况
目录
1、性能测试过程管理...................................
2、性能测试工具应用............................. 3、性能测试方法应用............................. 4、性能测试体系改进.............................
1、性能测试过程管理方面的总结
〔新创造的、出现的问题及解决方案〕 1.1 性能测试进度管理 1.2 性能测试缺陷管理 1.3 性能测试质量控制 1.4 性能测试问题管理
2、性能测试工具应用方面的总结
〔新创造的、出现的问题及解决方案〕 2.1 性能测试脚本开发 2.2 性能测试场景运行 2.3 性能测试监控操作 2.4 性能测试分析工具操作 2.5 其它
3、性能测试方法应用方面的总结
〔新创造的、出现的问题及解决方案〕 3.1 用户行为模式的分析方法 3.2 业务量的分析方法
3.3 处理能力/吞吐量的分析方法 3.4 响应时间的分析方法 3.5 其它
4、性能测试体系改进方面的建议
〔对性能测试规程、规范、标准等方面的改进建议〕 4.1 性能测试管理办法的改进建议 4.2 性能测试管理规程的改进建议 4.3 性能测试操作规程的改进建议 4.4 性能测试规范的改进建议 4.5 性能测试相关标准的改进建议
〔缺陷管理标准、进度管理标准、质量控制标准、问题管理标准〕