oracle压力测试
Oracle数据库测试方案
Oracle数据库测试方案目录1.测试背景 (3)2.小机环境安装及配置 (3)2.1.硬件需求 (3)2.2.安装配置 (3)2.3.补丁 (3)3.安装Oracle及RAC (3)3.1.Oracle版本 (3)3.2.数据库参数 (3)4.划分存储 (4)5.迁移数据 (4)6.Oracle数据库压力测试 (4)6.1.查看执行最频繁的sql (4)6.1.1.查看当前数据库执行次数最多的sql (4)6.1.2.查看历史快照中执行次数最多的sql (5)6.2.Jmeter配置 (5)6.3.执行jmeter测试 (6)7.变更字符集后数据库测试 (6)7.1.数据库测试 (6)7.1.1.查看当前数据库的字符集 (6)7.1.2.数据测试 (6)7.2.应用测试 (7)7.2.1.综合统计系统 (7)7.2.2.内主页 (8)7.2.3.CMS (9)1.测试背景信息中心提供AIX环境,安装oracle 11g RAC,作为测试机进行测试,为数据库迁移提供评估信息;同时要将数据库字符集从ZHS16GBK变更为AL32UTF8,为字符集变更进行测试。
2.小机环境安装及配置2.1.硬件需求2.2.安装配置2.3.补丁3.安装Oracle及RAC3.1.Oracle版本3.2.数据库参数4.划分存储存储需求5.迁移数据6.Oracle数据库压力测试基于生产库的数据基础,在测试机上对数据库性能进行压力测试,针对生产库的查询需求,以生产库中执行频繁的SQL为基础进行测试。
Oracle数据库压力测试采用jmeter对数据进行压力测试,测试sql采用生产数据库执行最频繁的TOP156.1.查看执行最频繁的sql6.1.1.查看当前数据库执行次数最多的sql通过查询V$SQLAREA或V$SQL的EXECUTIONS来查看SQL的执行次数,但是这个值的有效性需要结合FIRST_LOAD_TIME来判断。
swingbench OracleRAC11g使用方法图解
Swingbench for oracleRAC使用方法图解1 Swingbench 简述1.1 概述这是Oracle UK的一个员工在一个被抛弃的项目的基础上开发的。
目前稳定版本2.2,最新版本2.3,基于JDK1.5。
该工具是免费的,可以在作者的网站上自由下载,并且拥有详细的使用文档。
除了Swingbench,作者还开发了两个相关工具:测试数据生成工具DataGenerator 和跟踪文件分析工具Trace Analyzer。
Swingbench 可以执行4种不同的标准测试(benchmark),拥有三种前端展示方式Swingbench/Charbench/Minibench,其中Charbench是字符模式的,另外两种是GUI模式的。
另外还可以通过ClusterOverview可以聚合显示所有的结果。
Swingbench 的开发目的主要是用来展示RAC的负载和测试,但也可用于单实例环境。
最新的2.3版本开始支持TimesTen 内存数据库。
下载地址:/downloads.html作者博客:/blog/blog.html目前网络上开源的oracle压力测试工具主要是orabm和swingbe nc h,由于orabm不支持oracle 11g版本,因此本次测试使用了swingben进行了压力测试。
另外,swingbench还能对rac进行测试。
swingbench是UK ba sed oracle Database Solutions group开发的一个oracle压力测试工具,好像是官方废弃的一个项目,官方页面/swingbench.html 上可以下载最新的软件版本。
swingbench可以运行在windows和linux平台,本次以windows 为例。
2. 环境配置测试客户端需要安装JDK,无需安装oracle client端swingbench的版本为2.4 ,直接解压软件压缩包,解压后路劲如下,因是windows下做测试所以使用 winbin目录下的批处理文件主要使用到的是如下四个bat文件主要的bat文件作用如下:1、bmcompare 用来对比测试结果2、ccwizard 是以CC种子为模板创建的运行测试数据3、clusteroverview 用来启动集群的压力测试,并查看测试结果4、coordinator 用来启动协调服务器5、minibench 用来注册节点到协调服务器6、oewizard 是以OE种子为模板创建运行测试数据7、shwizard 是以SH种子为模板创建运行测试数据8、swingbench 执行基准测试3.测试3.1 创建测试数据swingbench不使用客户数据,而是按自己的规则创建测试数据,(生成的测试数据只能使用一次,测试过后需要再次测试的话,需要重新创建测试数据,这点做的不好)到目标目录下运行oewizard.bat批处理文件,也可以在目录下双机oewizard.bat批处理文件运行会看到如下界面下一步下一步,输入你需要测试的数据库的 //ip/sid 以及sys用户的密码下一步,前三项不需要修改,为swingbench自动创建的schema,只需要修改datafile的存放路径即可。
压力测试总结(合集5篇)
压力测试总结第1篇直接上公式不太好理解,我们先看案例案例1:秒杀型算法案例的业务量要求某业务,类似秒杀型,用户估算有2W左右,每个用户平均请求2次接口(查询用户信息接口、查询业务接口),这些用户大概率会在2分钟内会访问我们的系统,业务要保证用户2s能打开页面TPS的分析TPS是系统每秒钟处理的任务数量,给定二业务场景,我们就需要先计算出来每秒需要系统处理多少任务,从而反推在压力测试的时候,需要给多大的TPS了。
首先,整个系统的总请求数=用户(2W)* 每个用户请求数(2次)= 40000次其次,每秒要求处理的请求数=总请求数/时间(切换到秒)即约350(333向上取个整吧)。
最后,TPS并发数量与每个请求所消耗的时间,可实际计算出每秒实际能够处理的请求数。
即每秒实际处理请求数量=tps数量 *1000【1秒,需要切换为毫秒】/单组tps处理时间【这里是按200ms返回】因此,我们只要保证每秒实际处理请求数>每秒要求处理的请求数就可以了。
最终结果就是: TPS数量 > 每秒要求处理的请求数 *tps返回时间【按200ms计算】/1000ms 带入数据计算 tps>(350 *200)/1000,具体tps>70。
因此可让压力测试人员按照tps100来压接口,返回在200ms以内就满足性能要求。
当然如果实际tps50的返回时间为100ms,则按照这个粗略的公式来推算,也是能够支撑的(350 * 100/1000=35,也就是说tps高于35,返回100ms以内也是可以的)案例2:一个日常服务的算法如:一个100w访问的服务,每天访问集中白天8小时,每个用户大约会请求3个接口,每天早上9点是峰值。
首先计算日均请求数(每秒);按8小时 100w访问量、平均3个接口请求计算;每秒日均请求数=100w(访问量)*3(每个访问量平均请求接口数)/8(小时)/3600(切换成秒),结果就是每秒请求10 0次。
swingbench Oracle的免费压力测试工具
tps avg 25 30 33 18
tpm max 1774 2202 2401 1777
logic reads per sec 66,372 69,219 70,843 42,346
physic reads per sec 39 239 565 515
Transactions 43 45 46 28
-----------------------------------------------------------------------
response time max(ms)3307 1267 8717 7212
response time avg(ms)433 1009 1730 5084
io avgqu-sz 0.3 1.7 3 20
-----------------------------------------------------
------------------
us cpu 42 97 97 18
sys cpu 5 3 2 5
wa cpu 8 0 0 77
测试环境Linux Server 5, Oracle 11.2.0.2 64 bit.
测试的数据结果:
30 users 50 users 70 users 100 users
-----------------------------------------------------------------------
tpm avg 1488 1796 1998 1080
-------------------------------------metrics from os
Toad_for_Oracle功能详细介绍
Toad for Oracle功能详细介绍在Oracle应用程序的开发过程中,访问数据库对象和编写SQL程序是一件乏味且耗费时间的工作,对数据库进行日常管理也是需要很多SQL脚本才能完成的。
Quest Software为此提供了高效的Oracle应用开发工具-Toad (Tools of Oracle Application Developers)。
在Toad的新版本中,还加入了DBA(Database Administrator 数据库管理员)模块,可以帮助DBA完成许多日常管理工作。
它最大的特点就是简单易用,访问速度快。
使用Toad,我们可以通过一个图形化的用户界面快速访问数据库,完成复杂的SQL和PL/SQL代码编辑和测试工作。
Toad 由Oracle开发专家专门为开发人员而设计,是一个功能强大、结构紧凑的专业化PL/SQL开发环境。
Toad 主要具有如下特点:1.模式浏览器(schema browser):模式浏览功能可以快速访问数据字典,浏览数据库中的表、索引、存储过程。
Toad 提供对数据库的快速访问,使用极为方便,用户界面简洁,结构安排合理。
当我们点击一个单独的数据库对象,Toad立即显示此对象的详细信息。
例如,当我们点一个数据库的表,所有和此表相关的索引、约束、存储过程、SQL语句以及和其他表的相互引用关系都在同一界面显示出来。
为了简化操作,用户可以在一个模式浏览器窗口中操作所有数据库对象。
(图Schema Browser以“Multi Line Tab”方式显示所有数据库对象)2.SQL 编辑器(Sql Editor):SQL 编辑器的主要功能是编辑、运行和调整SQL语句。
TOAD 的高级编辑窗口包括众多的特性来提高开发人员编写SQL语句的产品化程度。
例如,简单地生成代码模板,在编写SQL前自动发现包的容和列的名字等等。
SQL编辑器包括一个编辑窗口和运行结果窗口,允许开发人员在编辑的过程中测试运行结果。
Swingbench压力测试配置文档
Swingbench 压力测试安装目录第一部分Oracle11g客户端安装 (2)一、基本配置 (2)二、详细安装过程 (2)第二部分配置服务命名 (6)一、详细配置过程 (6)第三部分设置Swingbench (11)一、详细配置过程 (11)第一部分Oracle11g客户端安装一、基本配置•前提:在虚拟机中已安装oracle10g数据库,宿主机已安装jdk。
由于我的宿主机子装的是64位系统,所以只能安装oracle11g的64位的客户端软件。
二、详细安装过程1.解压安装软件,点击setup.exe进行安装,出现如下界面,选择安装类型为“管理员”,进入下一步。
2.选择产品语言,这里选择默认的即可,点击下一步。
3.指定安装位置,一般安装在D盘即可,进入下一步。
4.进入到执行先决条件检查,5.检查完毕后,会显示安装的概要信息,点击完成。
6.安装产品。
7.安装成功。
第二部分配置服务命名一、详细配置过程1. 选择开始菜单中的“Oracle - OraClient11g_home1”里的“配置和移植工具”中的“Net Manager”,出现下面界面。
2.选择服务命名,点击左边的“+”,添加网络服务名,这里服务名为“orcl”,点击下一步。
3.选择网络协议,这里选择“TCP/IP(Internet协议)”,继续下一步。
4.输入要连接的服务器的主机名和端口号,这里输入服务器的ip地址,端口使用标准的“1521”,进入下一步。
5.输入服务名和连接类型,这里服务名为“orcl”,连接类型选择“数据库默认设置”,选择下一步。
6.1设置完成可以选择测试,是否连接到服务器,点击测试,6.2这里一开始,默认的测试用户为“scott”,密码为“tiger”,但是在起初,服务器并没有把scott用户解锁,所以会显示下面信息。
6.3在服务器中使用sysdba连接,然后把scott用户解锁,之后再点击测试,就会显示测试成功。
7.完成之后会有如下界面,之后保存退出即可。
小y黄远邦技术人生(4)——导致Oracle性能抖动的参数提醒
小y 黄远邦技术人生(4)——导致Oracle性能抖动的参数提醒不知不觉,技术人生系列·我和数据中心的故事来到了第四期。
小y又和大家见面了!当您看到业务系统压测呈现以下波浪形的tps曲线时,你会怎么下手?小y(中亦科技)今天要和大家分享的就是这样一个业务系统压测性能问题的分析和解决过程。
这个问题困扰了客户相当长一段时间,幸运的是,小y通过远程在10分钟定位到了问题的原因并帮助客户最终解决了问题。
需要说明的是,在这个CASE中,只调整数据库参数是不够的,还需要做其他分析和调整才可以解决问题。
为了保持原汁原味,同时增加文章的趣味性,小y除了会继续坚持以往分析报告的写法外,会尝试开始引入一些问题处理的心理历程,希望朋友们可以了解到小y的真实工作状态。
我们能学到什么Ø Oracle数据库在11.2.0.3及以上的版本上必须要调整的一个重要的性能相关的参数!Ø 如何在诊断失败后坚持或快速调整问题甄别方向的技巧!Ø 如何在处理跨团队/部门的综合型问题中掌握主动权的一些经验!温馨提示如果您的高并发、事务型的OLTP核心业务系统中中经常会出现一些性能的抖动。
比如交易响应时间突然急剧上升,同时伴随着ap服务器端口数/进程活动数/jdbc连接数升高、数据库每秒DB TIME 升高等现象,并且Oracle版本在11.2.0.3或以上,那么很可能和该文章提到的一个重要参数有关系哦!如果调整参数后还无法解决,可以联系小y诊断哦(mian fei de)。
1、问题来了上午10点,QQ突然闪了起来,来活了!小y,有空吗?帮忙看个awr。
我一会跟你电话说一下情况。
今年他们新上的一个关键业务系统,在做上线前的压力测试时,应用的并发无法达到上线前的并发指标和响应时间指标要求。
压测时TPS的曲线如下所示:发来QQ消息的是国内一个大型航空公司的DBA,一般的问题他都可以自己解决,这次看上去他遇到麻烦了。
Oracle实验报告
Oracle数据库实验报告实验一:Oracle 10g安装卸载及相关工具配置一、实验目标:安装Oracle 10g,了解OEM,通过DBCA安装数据库,通过DBCA删除数据库,sqldeveloper连接数据库,卸载oracle 10g。
二、实验学时数2学时三、实验步骤和内容:1、安装Oracle10g(默认安装数据库)双击,选择基本安装,安装目录D:盘,标准版,默认数据库orcl,口令bhbh。
进入先决条件检查界面时:网络配置需求选项不用打勾,直接下一步,是。
直到安装成功。
2、登陆和了解OEM主要是已网页的形式来对数据库进行管理。
- OraDb10g_home1->配置和移植工具->Database Configuration Assistant->删除数据库->……4、通过DBCA安装数据库xscj程序->Oracle - OraDb10g_home1->配置和移植工具->Database Configuration Assistant->创建数据库->……5、sqldeveloper连接数据库打开sqldeveloper,新建连接连接名:system_ora用户名:system口令:bhbh主机名:本机计算机名SID:xscj测试,显示成功,连接,保存。
6、卸载oracle 10gWindows下1>停止所有Oracle服务,点Universal Installer卸载2>删除注册表中的所有关于Oracle项在HKEY_LOCAL_MACHINE\SOFTWARE下,删除Oracle目录3>删除硬盘上所有Oracle文件。
(1)Oracle安装文件(2)系统目录下,在Program files文件夹中的Oracle文件四、上机作业根据实验步骤完成逐个实验目标中的任务。
五、心得体会通过这次的实验,我了解了oracle数据库的情况。
Toad for Oracle DBA功能及应用
基本管理-使用 基本管理-使用Toad
• 提供各种数据库对象创建、修改的图形窗口,避免手写 大量代码,减少出错概率,提高工作效率
– 可以通过schema browser或者Database-->Create调用
• 图形化界面管理redo、表空间、实例参数等 • 重新封装了exp、expdp、imp、impdp、sql*load等工具, 通过简单的鼠标点击就可以完成数据的导入和导出 • 面对开发人员频繁的用户创建需求,可以通过用户克隆 的方式创建用户,把以前写大量代码解决的问题,简化 为简单的几次鼠标点击 • 图形化界面管理和浏览审计信息 把复杂、 把复杂、易出错的手写代码方式简化成图形化操作界面
时间?问题点? 时间?问题点?
诊断 问题的根本原因? 问题的根本原因?
调整 修改参数、 修改参数、代码 如何做? 如何做
诊断—基本方法 诊断 基本方法
业务系统出现故障 操作系统?网络?应用程序?数据库? 如果是数据库问题,那么是 I/O? 内存? SQL? 花费大量时间查找相关日志和性能视图 定位到问题根源
Spotlight Байду номын сангаасn Oracle抓图 抓图
系统运行状态 报警历史 数据库历史状态 当前的TOP session TOP SQL 实例内部运行情况 I/O状态分析 操作系统运行情况
SGA分布情况
DBA的通常职责 的通常职责
基本管理 数据库、实例、 数据库、实例、模式
监控 实时、 实时、历史的性能问题
DBA的通常职责 的通常职责
基本管理 数据库、实例、 数据库、实例、模式
监控 实时、 实时、历史的性能问题
时间?问题点? 时间?问题点?
诊断 问题的根本原因? 问题的根本原因?
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);这样,脚本就差不多大功告成了。
Oracle相关第三方工具介绍
Quest应用开发解决方案Oracle数据库维护和管理解决方案Quest Central for Oracle全面Oracle数据库管理解决方案一个好人整理目录Quest应用开发解决方案 (3)SQL Navigator (5)SQLab Xpert (6)SQL Impact (7)DataFactory (8)Schema Manager (8)Data Manager (9)Benchmark Factory (9)Quest数据库维护和管理解决方案 (10)Spotlight on Oracle (11)Space Manager (12)LiveReorg® (13)SQLab Vision (13)Storage Xpert (14)I/Watch (15)Toad (16)Quest Central for Oracle (17)......全面Oracle数据库管理解决方案.. (17)Quest应用开发解决方案建立在Oracle数据库基础上的关键业务系统,是当今企业的核心应用;如何提高应用程序的开发速度,保证应用系统的质量,是每个应用的设计人员和开发人员都非常关心的问题。
一般来说,面向Oracle数据库的应用开发由以下几个方面构成。
Quest Software(http: )是国际领先的应用性能管理解决方案供应商,致力于为企业提供应用开发、性能优化和可用性管理方面的解决方案。
Quest Software提供完整的面向Oracle数据库的开发环境,其应用程序开发产品覆盖整个Oracle应用开周期,包括:QDesigner™是一种数据库分析设计和应用开发工具,在同一产品中集成了面向对象、概念和物理数据对象建模等功能,直观用户接口、30多种数据库支持和独特的解决方案可以加速软件的设计和分析过程,帮助设计者和开发人员迅速提交复杂的分布式应用。
Qdesigner的主要功能特性如下:□利用QDesigner 中的建模,自动创建物理数据库□反向工程允许用户理解现有数据库设计□方便更新现有数据库,实现自动化变化更新□可选的MetaWorks™企业级repository 允许用户(开发者、分析人员、设计者)按照同一模式协调工作□可建立面向对象的模式,以标准的UML类定义应用结构和业务逻辑,以及顺序图表QDesigner 使业务分析和应用设计人员能够与开发者和DBA有效地合作,并自动生成模式结构或应用组件图。
sysbench对oracle进行压力测试
sysbench对oracle进⾏压⼒测试Sysbench压测Oracle1.安装1.1.下载sysbench安装包mysql官⽹:github下载:digoal收藏:sysbench 0.5以上版本不再⽀持Oracle,因此如果需要压测Oracle,需要下载sysbench 0.5版本1.2.安装Oracle客户端1.3.解压安装sysbench1.3.1.sysbench 0.4版本安装tar vxf sysbench-0.4.12.16.tar.gzecho "/oracle/11204/lib/" > /etc/ld.so.conf.d/oracle-client-11.2.confldconfigcd sysbench-0.4.12.16/./configure --prefix=/usr/local/sysbench --with-oracle="/oracle/11204" --without-mysqlmakemake installvi ~/.bash_profileexport PATH=$PATH:/usr/local/sysbench/binsource .bash_profile1.3.2.sysbench 0.5版本安装yum -y install automake libtoolunzip sysbench-0.5.zipecho "/oracle/11204/lib/" > /etc/ld.so.conf.d/oracle-client-11.2.confldconfigcd sysbench-0.5/./autogen.sh./configure --prefix=/usr/local/sysbench --with-oracle="/oracle/11204" --without-mysqlmakemake installvi ~/.bash_profileexport PATH=$PATH:/usr/local/sysbench/binsource .bash_profile2.进⾏压⼒测试2.1.查看帮助本次使⽤的是0.5版本sysbench可以看到使⽤oracle驱动被编译进sysbench中了2.2.准备数据需要进去oracle⽤户,并且数据库TNS配置在tnsnames.ora中su - oraclevi .bash_profileexport PATH=$PATH:/oracle/11204/bin:/usr/local/sysbench/binsource ~/.bash_profilesysbench --test=oltp --db-driver=oracle --oltp_tables_count=8 --oltp-table-size=100000 --oracle-db=racdb --oracle-user=monkey --oracle-password=xxxxx prepare执⾏上⾯的语句后,报错解决⽅法:下载.lua⽂件,替换原本的.lua⽂件github:cd /usr/local/sysbench/share/sysbench/mkdir backupmv *.lua backup/unzip sysbench_lua-master.zipcd sysbench_lua-master/lua/mv *.lua /usr/local/sysbench/share/sysbench/su - oraclecd /usr/local/sysbench/share/sysbench/sysbench --test=oltp --db-driver=oracle --oltp_tables_count=8 --oltp-table-size=100000 --oracle-db=racdb --oracle-user=monkey --oracle-password=xxxxx prepare2.3.压⼒测试2.3.1.数据准备su - oraclecd /usr/local/sysbench/share/sysbench/sysbench --test=oltp --db-driver=oracle --oltp_tables_count=8 --oltp-table-size=100000 --oracle-db=racdb --oracle-user=monkey --oracle-password=xxxxx prepare2.3.2.压⼒测试sysbench --test=oltp --db-driver=oracle --oltp-tables-count=8 --oltp-table-size=100000 --oracle-db=racdb --oracle-user=monkey --oracle-password=xxxxx --max-time=900 --max-requests=10000000 --num-threads=40 --report-interval=10 run max_time:压⼒测试时间,单位秒num-threads:打开多少个连接(并发数)report-interval:多久显⽰⼀次压测结果,单位秒test:oltp是混合的压测,包括增删改查。
Oracle测试工具Orion使用说明
Oracle测试工具Orion使用说明orion 运行时必须输入完整的路径名称,否则加变量一样报错orion 依赖libaio库,可以使用apt-get install libaio-dev来安装orion 运行必须包含-run,-num_disks,-testname三个参数強制参数-run 一共有5种模式:simple 先运行random 8K然后运行random 1Mnormal 混合运行random 8K和1Madvanced 根据用户自定义来运行测试自定义参数如下:-size_small 定义最小的IO,默认是8,单位只能是Kb-size_large 定义最大的IO,默认是1024,单位只能是KB-type 定义是随机还是顺序,rand随机,seq顺序,默认随机-num_streamIO 定义顺序测试下,每一段流的最大IO数量,默认是4-simulate orion将所有磁盘虚拟成一种模式来提供测试,concat(磁盘串联,理论上就是无并发的状态,从一个lun到另一个lun),raid0(模拟成raid0,默认条带大小是1M)默认是concat-stripe 调整模拟raid0的条带大小-write 写入操作的百分比(默认为0),在大IO流中(顺序测试),每一段流要么是读,要是写-cache_size 单位是M,默认是先在raid卡的缓存上写两分钟,这样在大IO进来时,缓存可以发挥作用,如果设置为0,则是每一段大IO后面都跟随着一个随机的不可测算的IO,分离数据,让raid卡缓存失效,设置为其他数值就是写入多大的cache-duration 每一段数据点的持续时间,默认是60秒-matrix 创建由不同大小的IO组成的orion测试二维矩阵,矩阵的每一列代表的是小IO,每一行代表的是大IO,矩阵的第一行不包含小IO,第一列不包含大IO,测试可以只是测试一个点,或者一行,一列,乃至整个矩阵由以下参数控制矩阵(默认是basic):basic - 测试第一行和第一列,就是simple模式,分开测试大小IOdetailed - 测试整个矩阵,就是normal模式point - 测试由num_small, num_large参数生成的点,小IO和大IO都是固定的col - 大的连续/随机IOrow - 小的连续/随机IOmax - 和detailed一样,只不过始终保持最大负载-num_small 设置随机小IO的总数,无默认值,只能在-matrix (point,col,max)下使用-num_large 设置随机大IO或者并发流的大小,只能在-matrix (point,row,max)下使用-verbose 打印进度和状态到控制台dss 运行random 1M,逐渐加强压力,直到达到最大throughput,大约耗时22分钟oltp 运行random 8K,逐渐加强压力,直到达到最大IOPS,大约耗时22分钟強制参数 -testname预先定义一个testname.lun,里面写上要测试的文件名称(可以指定某个磁盘文件,orion不能直接对某个目录测试),可以是多个:#vi oriontest.lun#cat oriontest.lun/dev/sdb/dev/sdc/mnt/nastest強制参数 -num_disks ,一次性运行的job数量(每个job一个磁盘),默认是写在testname.lun文件下的磁盘数量简单范例:假设orion_x86_64在/bin目录下。
数据库压力测试指标
数据库压力测试指标
在进行数据库压力测试时,一般需要考虑以下指标:
1. 响应时间:即数据库在接收到请求后,处理完毕并送回响应的时间。
可以按照平均响应时间、最大响应时间、95% 响应时间等不同方式进行度量。
2. 错误率:即数据库处理请求出现错误或超时的比例,包括连接错误,SQL 语句错误,死锁等。
3. 并发数:即同时请求数据库的多少用户数量,可以按照并发用户数量、平均负载以及最大并发数量等进行度量。
4. 数据库负载:即数据库处理请求并返回响应的吞吐量,包括每秒查询数、每秒事务数等。
5. 瓶颈位置:即在处理压力测试过程中,哪些组件会成为瓶颈,影响数据库性能,例如磁盘I/O、CPU 利用率、内存利用率等。
以上指标将在不同压力条件下,对数据库的性能和可用性产生影响,可通过压力测试来评估数据库在面对不同负载及不同场景时的性能表现,并作出决策以改进或提高数据库的性能。
数据库压力测试报告
数据库压力测试报告
目录
1. 测试环境 (2)
2. 测试目的 (2)
3. 测试工具和测试方法 (2)
3.1 测试工具 (2)
3.2 测试方法 (2)
4. 测试结果 (2)
5. 测试结果分析 (3)
6. 故障分析 (3)
7. 总结 (4)
1.测试环境
2.测试目的
测试数据库在高并发压力下CPU、内存和磁盘IO的表现情况3.测试工具和测试方法
3.1测试工具
使用自有数据库压测工具:HxPressureDb
3.2测试方法
⏹并发读
⏹读写混合并发
4.测试结果
5.测试结果分析
⏹并发读非常消耗CPU资源,原因为执行的SQL语句统计数据属于资源消耗型
⏹并发写执行效率非常高,因insert的数据量不大,磁盘IO率较低
⏹整个压测过程中CPU不存在等待事件,混合高并发时内核队列存在排队现象,但不印
象整体执行效率
⏹因查询返回结果集很小,整个压测过程中内存使用率没有明显的上升
6.故障分析
并发250读时,cd430003主机发生过重启现象,分析原因为PRI2(cd430004)与PRI1(cd430003)实例间心跳超时,PRI2与PRI1间发生脑裂,PRI2抢夺到仲裁权并重启了PRI1实例主机,使PRI1实例脱离RAC集群。
建议:
⏹心跳网络与业务网络分离
⏹提升心跳网络带宽
7.总结
⏹压测数据比较单一,不代表真实生产环境逻辑处理场景
在压测场景下,按行业CPU使用率低于80%前提下,大约支持150至180并发读请求
⏹。
使用SwingBench对OracleRACDB性能压力测试
使⽤SwingBench对OracleRACDB性能压⼒测试
实验环境:
RHEL 6.5 + Oracle 11.2.0.4 RAC + SwingBench 2.5.0.971
1. ⽣成swingbench配置⽂件 swingbench解压即可使⽤,第⼀次需要配置,本次只是简单熟悉swingbench的使⽤,配置基本按照默认。
[oracle@jyrac1 bin]$ pwd
/home/oracle/swingbench/bin
[oracle@jyrac1 bin]$ ./oewizard
注意,上⾯的connect string,根据需求填写,⽐如:
--如果压测只连接实例1
jyrac1:1521:jyzhao1
--如果压测只连接实例2
jyrac2:1521:jyzhao2
--如果压测连接RAC集群,LB到各个实例
//jyrac1/jyzhao
2. 运⾏swingbench压⼒测试
可以⼤致看到压⼒测试中,数据库可以达到的TPM,TPS等性能指标,作为今后系统正式上线后的⼀个参考依据
补充:最好使⽤sys⽤户直接连接,确认没有⽆效对象,避免后续再次赋权:下⾯附⼏张单实例压测配置的截图:。
DTCC2014:TimesTen内存数据库— 架构扩展应用实践_IT168文库
子系统1
统应该是相对比较独立的,子系统 之间关联较少,而且相互关联的子
字体数量相对较少。
实际情况
子系统2
实际情况往往是大相径庭的,子系 统之间存在很高的耦合性。子系统
子系统5
内读写错综复杂,基本上不可能实 子系统4
现读写分离。 面对这样的现实,出于成本和风险
子系统1
子系统3
的考虑,很难做到子系统的解耦,
视子进程。
子进程(Sub Daemon): 载入/卸载Data Store;将日志缓存写入日志文件;监视 和解除死锁;执行检查点。
Timesten
TimesTen的Cache Group选择
1. 每隔一定时间,缓存代理将数据复制到TimesTen中; 2. 适合用于储存几乎没有更新的数据;
3. 能保证单一数据库源的写入,能更好控制数据一致性,重点推荐。 1. 异步写入,DML被抛给Oracle,不等待Oracle完成COMMIT;
TimesTen中,表和索引均保存在内存中,容量
(内存)估算很重要,单库尽可能控制在 50~60GB,不超过100GB。 表字段不宜过多,字段不宜过长,TimesTen存 储具有字段对齐的特点,比Oracle需要更多的 存储空间,尽可能不超过128字节。
目录
架构现状
TimesTen
个性定制 应用效果 其他
②
① 应用COMMIT提交; ② 立刻返回应用COMMIT提交成 功; ③ 通过日志缓存写入日志文件; ④ 将更新信息发送给Replication
Rep Agent
④ ⑤
③
LogFile
Agent;
⑤ 将更新信息从Active发生到
LogFile
Nutanix 超融合最佳实践指南之-Oracle数据库
2
Oracle License Model
• Named User Plus
Standard Edition One requires a minimum of 5 Named User or the total number of actual users, whichever is greater
11
1
物理机/虚拟机性能对比
12
物理机环境
Nutanix虚拟化环境
1
Nutanix运行RAC压力测试时的CPU/内存影响
在运行RAC 虚拟化的情况下(单机版Oracle虚拟机均已经关机),主机的性能情况下 图,CPU约为25%,两个运行RAC虚拟机的节点的内存负载为44.7%。
13
1
Nutanix Oracle单机测试
10
1
虚拟机配置
Oracle RAC虚拟机硬件配置(2节点): 每虚拟机配置为20 vCPU,64G内存,每虚拟机创建7块磁盘,用于分别存放OS(1块) /DATA(4块)/REDO(1块)/TMP文件(1块)。
Oracle单机版虚拟机硬件配置(20个): 每虚拟机配置为4 vCPU,16G内存,每虚拟机创建10块磁盘,用于分别存放OS(1块) /DATA(4块)/REDO(3块)/TMP文件(1块)。
Ex: 3360-G4 , E5-2630v3 (16core) Oracle have “Number of User license “ we do not introduce here, one core license about 25 name users
Standard Edition One
17.5 K x2 socket x3 hosts = 105 K
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在不执行其他程序的情况下,无聊有多少并发数 访问数据库,CPU的利用率都在85%左右 ,由上 结果可以看出,本机的tps在660左右。
其中:TPS 是Transactions Per Second 的 缩写, 也就是事务数/秒。 TPS的計算:每一个阶段所有session的tps相加 就是当前测试的总的tps了。
基于工具hammerora的Oracle 压力测试
Hammerora—the Open Source Oracle Load Test Tool 首先介绍一下Hammerora。从创作者对这 个工具的标题描述可以看出,Hammerora 是一款Oracle数据库负载测试工具。该工 具可以在Oracle 8i、10i和10g等版本上使 用。当前可以用在Linux/Unix和Windows上。 初步实现了跨平台。Hammerora 完全用 TCL编写。
使用同样的测试语句 orabm 1,10,50,100,500,800 1000 对 ORACLE执行插入命令: insert into test1 values('1','whb','12','m');
得到结果为: ORACLE_SID=oracle10i sess=1 tps=1033 ORACLE_SID=oracle10i sess=10 tps=1108 ORACLE_SID=oracle10i sess=50 tps=1153 ORACLE_SID=oracle10i sess=100 tps=1182 ORACLE_SID=oracle10i sess=500 tps=1420 ORACLE_SID=oracle10i sess=800 tps=1931
在上述结果我们可以分析得出,当并发用 户为3000时就到了系统瓶颈了,也就是说 本系统可承受的最大TPS值在1400左右, 另外,反复测试时,并发用户超过3000后, 测得的TPS值也很不稳定,也说明在3000 为瓶颈值。
结果如下: ORACLE_SID=oracle10i sess=1000 tps=1198 ORACLE_SID=oracle10i sess= 2000tps=1327 ORACLE_SID=oracle10i sess=3000tps=1373 ORACLE_SID=oracle10i sess=4000 tps=1147 ORACLE_SID=oracle10i sess=4500 tps=783
Hammerora的设计原理是解析Oracle的 Trace文件,并把它们转化为Oratcl程序,然 后在Oracle数据库中用多个用户并发的对 用户的事务进行“回放”。我们知 道,Oracle的Trace文件能够翔实的记录用 户对数据库的操作。这样Hammerora能够 保证对用户环境的真实模拟。
最多可以产生5000个进程模拟访问数据 库。
测试的数据库环境:
下载版oracle可支持最大并发进程数:
设置系统支持的最大访ຫໍສະໝຸດ 进程数:系统环境: 测试数据:
测试语句:orabm 1,10,50,100,500,800 1000 orabm后接2个参数(假如测试远程访问压力 这需要加三个参数)。 第一个参数表示测试多少个并发 第二个参数表示执行多少个事务
可见在正常情况下,ORACLE每秒钟相应 用户操作命令的次数反而会随用户量得增 加而增加,说明在用户访问量在1000内时, oracle的工作很理想。
下面对本系统安装的oracle10g进行压力测试, 执行测试语句, orabm 1000,2000,3000,4000,4500 1000 执行sql查询语句:select * from test1 where NO=1536;
上语句表示分別用1,10,50,100,500,800个并 发执行1000个事务
执行sql查询语句:select * from test1 where NO=1536; 生成脚本写入orabm.<oracle_sid>.log 利用脚本工具orabm_tps.sh 格式化的结果为:
orabm_tps.sh orabm.oracle10i.log ORACLE_SID=oracle10i sess=1 tps=500 ORACLE_SID=oracle10i sess=10 tps=533 ORACLE_SID=oracle10i sess=50 tps=586 ORACLE_SID=oracle10i sess=100 tps=609 ORACLE_SID=oracle10i sess=500 tps=783 ORACLE_SID=oracle10i sess=800 tps=817