oracle tps
http://blog.csdn.net/nilxin/article/details/5812480
sample 1:
定义
TPS:Transactions Per Second(每秒传输的事物处理个数),即服务器每秒处理的事务数。TPS包括一条消息入和一条消息出,加上一次用户数据库访问。(业务TPS = CAPS × 每个呼叫平均TPS)
TPMC:Transactions Per Minute(每分钟处理的交易量),tpmC值在国内外被广泛用于衡量计算机系统的事务处理能力。
IOPS (Input/Output Per Second)即每秒的输入输出量(或读写次数),是衡量磁盘性能的主要指标之一。
IOPS是指单位时间内系统能处理的I/O请求数量,一般以每秒处理的I/O请求数量为单位,I/O请求通常为读或写数据操作请求。
Mbps (MB per Second)传输速率是指集线器的数据交换能力,也叫“带宽”,单位是Mbps(兆位/秒)。
每秒50个事务,哪就每秒50个TPS呗。 IOPS计算不出来。IOPS是每秒IO次数,根据这些信息,得不到IOPS。
sample 2:
http://www.jydba.net/oracle-orion-calibration-tool/
Oracle Orion Calibration Tool
Oracle Orion是一种用来在没有安装Oracle或没有创建数据库的情况下来预测Oracle数据库性能的工 具。不像其它的I/O校准工具,Oracle Orion是特定为模拟Oracle数据库I/O工作量而设计的。Orion 可以通过Oracle ASM来模拟条带的性能。Orion可以使用不同的I/O负载来检测性能指标,比如 MBPS,IOPS与I/O延迟。
执行Orion需要注意以下两个问题:
.当存储是空闲或者接近空闲时执行。Orion校准存储性能是基于它所生成的I/O负载,如果在执行 Orion的同时也执行了其它非Orion的I/O工作量,那么Orion将不能正确评估性能指标。
.如果数据库已经在存储中创建,执行dbms_resource_manager.calibrate_io()时存储是一种选择。
执行Orion的步骤
1.使用-testname参数来指定一个测试名。这个参数用来唯一标识运行的Orion
2.基于测试名创建一个Orion输入文件,并且它的文件名与-testname参数所指定的测试名要相同,其 缺省的输入文件为orion.lun,例如,创建一个jytest.lun。在输入文件中列出裸设备或要测试的文 件。在输入文件的每一行添加一个卷名,不要加入任何注释。例如:
[oracle@jyrac1 bin]$ vi jytest.lun
/dev/raw/raw1
/dev/raw/raw2
/dev/raw/raw3
3.验证输入文件中所指定的所有卷,例如jytest.lun。对于在linux系统中执行以下命令进行检查:
[oracle@jyrac1 bin]$ dd if=/dev/raw/raw1 of=/dev/null bs=32k count=1024
1024+0 records in
1024+0 records out
33554432 bytes (34 MB) copied, 1.76808 seconds, 19.0 MB/s
[oracle@jyrac1 bin]$ dd if=/dev/raw/raw2 of=/dev/null bs=32k count=1024
1024+0 records in
1024+0 records out
33554432 bytes (34 MB) copied, 1.91884 seconds, 17.5 MB/s
[oracle@jyrac1 bin]$ dd if=/dev/raw/raw3 of=/dev/null bs=32k count=1024
1024+0 records in
1024+0 records out
33554432 bytes (34 MB) copied, 1.51707 seconds, 22.1 MB/s
4.第一次执行Orion时,使用oltp或dss选项的-run参数。如果数据库主要用于OLTP,那么使用-run oltp。如果数据库主要用于DSS,那么使用-run dss。
例如
[oracle@jyrac1 bin]$ ./orion -run oltp -testname jytest
ORION: ORacle IO Numbers -- Version 11.2.0.4.0
jytest_20161011_2122
Calibration will take approximately 24 minutes.
Using a large value for -cache_size may take longer. Maximum Small IOPS=911 @ Small=60 and Large=0
Small Read Latency: avg=65784 us, min=2256 us, max=721805 us, std dev=58565 us @ Small=60 and Large=0 Minimum Small Latency=10292 usecs @ Small=3 and Large=0
Small Read Latency: avg=10292 us, min=968 us, max=164951 us, std dev=7615 us @ Small=3 and Large=0
Small Read / Write Latency Histogram @ Small=3 and Large=0
Latency: # of IOs (read) # of IOs (write)
0 - 1 us: 0 0
2 - 4 us: 0 0
4 - 8 us: 0 0
8 - 16 us: 0 0
16 - 32 us: 0 0
32 - 64 us: 0 0
64 - 128 us: 0 0
128 - 256 us: 0 0
256 - 512 us: 0 0
512 - 1024 us: 2 0
1024 - 2048 us: 17 0
2048 - 4096 us: 1291 0
4096 - 8192 us: 7044 0
8192 - 16384 us: 6899 0
16384 - 32768 us: 1870 0
32768 - 65536 us: 279 0
65536 - 131072 us: 25 0
131072 - 262144 us: 5 0
262144 - 524288 us: 0 0
524288 - 1048576 us: 0 0
1048576 - 2097152 us: 0 0
2097152 - 4194304 us: 0 0
4194304 - 8388608 us: 0 0
8388608 - 16777216 us: 0 0
16777216 - 33554432 us: 0 0
33554432 - 67108864 us: 0 0
67108864 - 134217728 us: 0 0
134217728 - 268435456 us: 0 0
在orion命令执行完后会生成以下文件:
[oracle@jyrac1 bin]$ ls -lrt jytest*
-rw-r--r-- 1 oracle oinstall 43524 Oct 11 21:42 jytest_20161011_2122_trace.txt
-rw-r--r-- 1 oracle oinstall 1930 Oct 11 21:42 jytest_20161011_2122_summary.txt
-rw-r--r-- 1 oracle oinstall 570 Oct 11 21:42 jytest_20161011_2122_mbps.csv
-rw-r--r-- 1 oracle oinstall 800 Oct 11 21:42 jytest_20161011_2122_lat.csv
-rw-r--r-- 1 oracle oinstall 742 Oct 11 21:42 jytest_20161011_2122_iops.csv
-rw-r--r-- 1 oracle oinstall 19369 Oct 11 21:42 jytest_20161011_2122_hist.txt
orion执行的汇总结果存储在*_summary.txt文件中:
sample1: (http://blog.itpub.net/12457158/viewspace-752987/)
sample 2:
http://blog.itpub.net/12457158/viewspace-752987/
方法3:
select instance_number,
metric_unit,
trunc(begin_time) time,
avg(average)*60*60*24 "Transactions Per Day"
from DBA_HIST_SYSMETRIC_SUMMARY
where metric_unit = 'Transactions Per Second'
and begin_time >=
to_date('2013-01-21 00:00:00', 'yyyy-mm-dd hh24:mi:ss')
and begin_time < to_date('2013-01-22 00:00:00', 'yyyy-mm-dd hh24:mi:ss')
group by instance_number, metric_unit, trunc(begin_time)
order by instance_number;
方法4:
select s.USERNAME,sum(se.VALUE) "session transaction number",sum(sy.VALUE) " database transaction number" from v$session s,v$sesstat se,v$sysstat sy
where s.sid=se.SID and se.STATISTIC#=sy.STATISTIC#
and sy.NAME='user commits'
and s.USERNAME=upper('&username')
group by s.USERNAME;
方法5:
select to_char(sysdate,'DD-MM-YYYY HH:MI:SS'), sum(value) sum from v$sysstat where name like 'user commits' or name like 'user rollbacks';
方法6:
with c as (select snap_id, stat_name, value commits from dba_hist_sysstat where stat_name = 'user commits'),
r as (select snap_id, stat_name, value rollbacks from dba_hist_sysstat where stat_name = 'user rollbacks'),
x as (select c.snap_id, c.commits, r.rollbacks from c, r where c.snap_id = r.snap_id order by c.snap_id)
select x.snap_id,s.begin_interval_time, end_interval_time,
case when commits >= prior commits then commits - prior commits else null end commits,
case when rollbacks >= prior rollbacks then rollbacks - prior rollbacks else null end rollbacks
from x, dba_hist_snapshot s
where x.snap_id = s.snap_id
connect by x.snap_id = prior x.snap_id + 1
start with x.snap_id = (select min(snap_id) from c)
order by 1;
sample 3: (http://dwrose.blog.51cto.com/1067952/1102041)
IBM小机+ORACLE数据库迅猛提升事物数TPS的方法总结:近期一直在搞业务压测,提升系统的事务处理能力。事务处理量从刚开始的三千到如今的接近一万,也积累了一些优化方法,分享给各位。首先当然需要你的系统是处理大并发事务的,如果你的系统每秒TPS才一两百,可能事务优化并不是主要的目的。这里一共包含两个部分的优化手段,第一部分是常规的优化手段,第二部分是稍微“邪门”点的优化手段。
大并发事务常规的优化手段:
1)REDO LOG 盘优化:如果是放在存储,可以多拿出几块盘来做LOG 盘,最基本的常识盘要做成RAID 10,不能放RAID 5。根据你盘的情况,可以用6-12块盘不等。这些 盘专门提供给REDO LOG用,剩余的空间也不能提供给其他盘用,以免影响LOG 盘的IO。由于存储一般都带有CACHE,CACHE的大小根据高低中端的不同,存储型号的不同而不同,存储的CACHE可以说是存储的灵魂,对于写缓冲的效果非常明显,极大的降低写LOG盘的时间。
2)数据盘的IO要根据你系统的情况来,根据操作系统工具topas -D或iostat -DlRa 1 来看数据盘存不存在瓶颈,如果busy比较大,那么需要继续添加硬盘来提升IOPS。事务型的交易系统数据盘的繁忙主要是写脏数据造成的(可能你的情况跟我不一样),一般对IOPS要求不高。这个要根据系统情况来定。IOPS不够,可以考虑用SSD来提升IOPS,但是存储对SSD的支持不太好,最好让SSD的IO可以打散在存储的多个光纤环路中。
3)ORACLE 的GROUP COMMIT是自动、默认的行为,这块其实不用作优化也没法做优化。
4)对关键业务表设置了CACHE属性,保证事务的数据都在内存里。这一块的优化也非常重要,优化效果也非常明显。ORACLE里可以设置CACHE表。
当时压测是基于P740的一个小机+V7000的一个中端存储,做完以上优化,TPS可以达到6000。
非常规手段的优化:
1)由于P740只有物理16core cpu,CPU使用率到了65%,LOAD 接近40。为了LGWR可以任意时刻获取CUP资源,设置了_high_priority_processes 参数,保证LGWR可以随时获得CPU资源,不用排队。
2)操作系统级别设置dscrctl -n -b -s 1 内存预读,效果非常明显,立即可以提升1000+的TPS
3)如果你是万兆网卡,chdev -l hba0 -a cdli_queues=4 -P,加大网卡处理队列,效果也非常明显,可以提升1500+的TPS。事物数超大的系统,网卡往往是瓶颈,优化非常必要。及时你的3个千M网卡处理量还完全没到瓶颈,可是使用万兆网卡做了这个优化,还是非常的能看到立竿见影的下效果。
4)ORACLE的REDO LOG 块大小设置为4K.11GR2的版本可以指定REDO LOG的块大小,一般是磁盘的扇区大小512字节。在我的版本11.2.0.3下修改会报错,说修改值与实际扇区大小不匹配。通过修改隐含参数_disk_sector_size_override为true,可以强制改成功。修改的办法是在alter database add log file xxxx blocksize 4096。如果拿PL/SQL压测,采取commit write immediate wait方式提交,优化前后的差距接近4倍,非常惊人。但是拿我们的业务压测,只是提升了1500+的TPS,也非常的不错了。
经过上面4步的优化,TPS可以接近1W了。在此分享,希望对大家有帮助,很多地方说的不详细,有需要,可以联系我,进一步探讨。
P740,16core 3.55GHZ的内存,32G CPU,3块千M网卡BOND。
V7000 80G 的CACHE。12块LOG 盘。足够多的数据盘。
oracle tps的更多相关文章
- 使用SwingBench 对Oracle RAC DB性能 压力测试
我们可以使用swingbench这个工具对数据库性能进行压力测试,得到一些性能指标作为参考. SwingBench下载: http://www.dominicgiles.com/downloads.h ...
- OAF_开发系列26_实现OAF中Java类型并发程式开发oracle.apps.fnd.cp.request(案例)
20150730 Created By BaoXinjian
- Oracle 数据库日常巡检
1. 检查数据库基本状况 包含:检查Oracle实例状态,检查Oracle服务进程,检查Oracle监听进程,共三个部分. 1.1. 检查Oracle实例状态 select instance_name ...
- 基于LR的Oracle应用性能测试
最近对一个oracle ERP系统的INV模块进行性能测试,因为之前大部分都是测试web类型的应用,在这方面经验较少,期间也遇到了不少问题,因此有必要作些总结,以备后忘.首先先简单了解下测试对象相关的 ...
- Oracle DBA 的常用Unix参考手册(二)
9.AIX下显示CPU数量 # lsdev -C|grep Process|wc -l10.Solaris下显示CPU数量# psrinfo -v|grep "Status of pr ...
- Oracle AWR报告指标全解析-11011552
1-5 Top 5 Timed EventsWaits : 该等待事件发生的次数, 对于DB CPU此项不可用Times : 该等待事件消耗的总计时间,单位为秒, 对于DB CPU 而言是前台进程所消 ...
- oracle 10g操作和维护手册
1. 检查数据库基本状况... 1.1. 检查Oracle实例状态... 1.2. 检查Oracle服务进程... 1.3. 检查Oracle监听状态... 2. ...
- Oracle + EF5 疑难杂症
原文:Oracle + EF5 疑难杂症 PDF 版 http://files.cnblogs.com/xling/Oracle.pdf Oracle 环境准备 ODAC ODAC 全称 Oracle ...
- (原创)性能测试中,Oracle服务器定位CPU使用率高的瓶颈(SQL)
本篇博客记录一次性能测试过程中,定位对CPU使用率高的瓶颈问题,主要定位SQL为准 一.用SQL命令定位1.首先用TOP命令监控系统资源,如果是AIX系统,就用topas,进入TOP命令的滚动刷新数据 ...
随机推荐
- Experimental Educational Round: VolBIT Formulas Blitz K. Indivisibility —— 容斥原理
题目链接:http://codeforces.com/contest/630/problem/K K. Indivisibility time limit per test 0.5 seconds m ...
- 自动化测试框架selenium+java+TestNG——读取csv文件
读取csv文件可以直接读取,也可以使用javacsv.jar,后者比较简单,这个也可以变相认为是对表格的处理,我们可以在表格中做好数据,存储成csv格式的文件,后续对xlsx表格的操作抽个时间再记录下 ...
- HTML标签深入学习系列(1)——注释标签 <!-- -->
一.HTML注释的语法 <!--注释内容--> 二.HTML注释的用处 1.普通注释(增强代码的可读性) 方便别人:方便其它程序员了解你的代码 方便自己:方便以后对自己代码的理解与修改等等 ...
- Relocation POJ-2923
题目链接 题目意思: 有 n 个货物,并且知道了每个货物的重量,每次用载重量分别为c1,c2的火车装载,问最少需要运送多少次可以将货物运完. 分析:本题可以用二进制枚举所有不冲突的方案,再来dp 一下 ...
- python操作oracle数据库
本文主要介绍python对oracle数据库的操作学习 包含:oracle数据库在Windows操作系统下的安装和配置.python需要安装的第三方拓展包以及基本操作的样例学习. 1 ...
- 51Nod - 1055:最长等差数列 (求最长的等差数列)
N个不同的正整数,找出由这些数组成的最长的等差数列. 例如:1 3 5 6 8 9 10 12 13 14 等差子数列包括(仅包括两项的不列举) 1 3 5 1 5 9 13 3 6 9 12 ...
- 1--redis3.0.5集群部署安装详细步骤
Redis集群部署文档(centos6系统) (要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下) ...
- 修改SQL Server 2005的默认端口
修改SQL Server 2005的默认端口 1.打开SQL Server的配置管理程序 Microsoft SQL Server 2005->配置工具->SQL Server Confi ...
- python读文件和写文件
f=open('D:\\wangdongjie\\files\\webservice\\baidu\\3.txt','r+') f.write('中国电视台1][][23qwe12f我是一个小小的石头 ...
- 如何使用最简单的方法将一个已经存在的工程中使用 cocaPodfile
在网上搜索的使用 cocaPods 安装一些优秀的框架,搜索的博客大多步骤都是非常的麻烦,这里的方法非常的简单,本篇仅仅作为以后备用. 第一步:首先找到我们的工程,在终端中输入 cd 拖入已经存在 ...