浏览模式: 标准 | 列表分类:系统工程师

TPCC学习笔记

-----------------TPC---------------

TPC为非赢利性国际组织,事物处理性能委员会(TPC,Transaction Processing Corp)。

-----------------TPC-C--------------

TPC-C是一种旨在衡量联机事务处理(OLTP)系统性能与可伸缩性的行业标准基准测试项目。这种基准测试项目将对包括查询、更新及队列式小批量事务在内的广泛数据库功能进行测试。许多IT专业人员将TPC-C视为衡量“真实”OLTP系统性能的有效指示器。

TPC-C基准测试针对一种模拟订单录入与销售环境测量每分钟商业事务(tpmC)吞吐量。特别值得一提的是,它将专门测量系统在同时执行其它四种事务类型(如支付、订单状态更新、交付及证券级变更)时每分钟所生成的新增订单事务数量。

-----------------TPM-C--------------

TPC-C的吞吐量,按有效TPC-C配置期间每分钟处理的平均交易次数测量,至少要运行12分钟。

-----------------TPC-C规范概要----------------

TPC-C测试规范中模拟了一个比较复杂并具有代表意义的OLTP应用环境:假设有一个大型商品批发商,它拥有若干个分布在不同区域的商品库;每个仓库负责为10个销售点供货;每个销售点为3000个客户提供服务;每个客户平均一个订单有10项产品;所有订单中约1%的产品在其直接所属的仓库中没有存货,需要由其他区域的仓库来供货。
该系统需要处理的交易为以下几种:
  New-Order:客户输入一笔新的订货交易;
  Payment:更新客户账户余额以反映其支付状况;
  Delivery:发货(模拟批处理交易);
  Order-Status:查询客户最近交易的状态;
  Stock-Level:查询仓库库存状况,以便能够及时补货。
对于前四种类型的交易,要求响应时间在5秒以内;对于库存状况查询交易,要求响应时间在20秒以内。

-----------------之间的关系------------------

TPC-C使用三种性能 和价格度量,其中性能由TPC-C吞吐率衡量,单位是tpmC。tpm是transactions per minute的简称;C指TPC中的C基准程序。它的定义是每分钟内系统处理的新订单个数。要注意的是,在处理新订单的同时,系统还要按表1的要求处理其它4类事务 请求。从表1可以看出,新订单请求不可能超出全部事务请求的45%,因此,当一个 系统的性能为1000tpmC时,它每分钟实际处理的请求数是2000多个。价格是指系 统的总价格,单位是美元,而价格性能比则定义为总价格÷性能,单位是$/tpmC。

Tags: tpc, tpc-c, tpmc

基于HP-UX的一次测试调整(五)

第五章 trouble shooting

数据库维护

dbca 数据库界面维护

netca 网络监听界面维护

emctl控制台维护

常用命令如下:

emctl start dbconsole 启动em

emctl stop dbconsole

rmi远程访问 hp -ux的应用,会转到到另外一个IP.

查看/etc/hosts文件,去掉无关的ip和描述。

操作数据库,大量事务,shutdown immediate,数据库挂起

SQL> alter system checkpoint;   

SQL> shutdown abort   

SQL> startup restrict   

SQL> shutdown immediate

SQL> startup

数据库cpu过高的跟踪过程

1.       确保EM关闭。

2.       确认对应的用户在对应的表空间。

SQL> select username,default_tablespace from user_users;

1.  查看sql参数是否生效

SQL> show parameter processes

SQL> show parameter sessions

SQL> show parameter sga

SQL> show parameter pga

2.  查看操作系统的参数是否生效。

#sam

在出来的字符集界面,查看Kernel Configuration

查看Tunables

查看设置的系统参数是否生效。

5.      查看IO.

Loadrunner无法监控hp-ux的系统资源

打开/etc/inetd.conf

找到

#rpc  dgram  udp  wait    root  /usr/lib/netsvc/rstat/rpc.rstatd

去掉注释,下次系统重新启动,即可监控。

或者在/usr/lib/netsvc/rstat/目录中

#./rpc.rstatd

数据库初始化

当库表的字段够多,而脚本初始化很快的时候,直接删除行会是一个比较漫长的过程。而且删除后需要分析该表格。

建议用 truncate table TRANJOURNAL 来清空表,重新初始化数据即可。

应用服务器连接数不够,sessions不够

请查看数据库对外的processes数量。

SQL>show parameter processes;

SQL>show parameter sessions;

如果低于连接数,参考修改processes,sessions修改。

查看sessions对应的sql为:

SQL>select * from v$resource_limit where resource_name = 'sessions';

基于HP-UX的一次测试调整(四)

第四章 loadrunner 压力端调整

指定MDRV.EXE使用进程数

在本次测试中,loadruner客户端,发起的JAVA协议连接,由于并发的数量比较大,我们只能采用线程的模式。在loadrunner中,默认的是每50vuser会使用一个mdrv.exe进程,但是有些时候vuser中的使用的线程太多就会使测试程序的效率特别低,这时候就希望能够可以多起几个mdrv.exe的进程,每个进程中的vuser数量少一点,通过更改

HP\LoadRunner\dat\protocols\ Java_protocols.lrp文件。

[Vugen]下面新加一条MaxThreadPerProcess=要设置的vuser数量 这样每个mdrv.exe进程中的vuser数量就是你上面设置的数量了。

JAVA协议测试,JVM参数配置

需要配置环境路径 

需要配置JVM参数

 

不能添加-server参数。

更改(windows 2003)操作系统的对外最大tcp连接数。

应用程序从系统请求可用用户端口时,TCP/IP 可指定的最高端口号。

使用 regedit 命令访问

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\TCPIP\Parameters 注册表子键并创建名为 MaxUserPort 的新 REG_DWORD 值。缺省值:无建议值:至少十进制 32768,最大值十进制 65535。重新启动系统后生效。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] “MaxUserPort”=dword:000415630

 

PS:此次测试用的可是正版的loadrunner。

Tags: java协议, loadrunner9.1, tcp连接数

基于HP-UX的一次测试调整(三)

第三章 应用服务器的安装调整

比较奇怪的是weblogic11g,小版本号是weblogic10.3.2.

weblogic10.3安装

可选图形化界面安装或者字符集安装。

#./opt/java6/bin/java -jar server103_generic.jar

安装过程略,下一步下一步即可。

SEE 6.1GA 安装

安装EOS6.1GA,需安装xmanger,通过图形化界面安装。注意安装文件对应目录的剩余空间。因启动一般使用nohup的方式启动,防止由于控制台输出过大导致应用错误。

#dbf

该命令可以查询对应的文件夹下剩余的空间

SEE 6.1GA JVM参数调整

1.  最好是使用对应的应用服务器对应的JVM。该配置在startServer.sh中更改。

2.  根据应用的类型,需调整JVM的垃圾回收机制。

本次应用配置如下:

MEM_ARGS="-Xms2560m -Xmx2560m -Xoptgc -XX:+AggressiveOpts -XX:+DisableExplicitGC -XX:MaxPermSize=256m -Xloggc:gclog.log -XX:+PrintGC

Details -XX:+PrintGCTimeStamps"

MEM_ARGS="$MEM_ARGS -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=360000"

 

Tags: weblogic10.3.2, jdk1.6, eos

基于HP-UX的一次测试调整(二)

第二章 数据库安装调整

数据库安装

    建立oracle用户属于dba group

         # groupadd dba

# useradd -g dba oracle

# passwd oracle

# mkdir –p /oracle/product/10.2/db_1

# chown -R oracle:dba /opt/oracle

此命令和linux有所不同,请注意。

由于我们需要图形化安装,此处还需要设置环境变量。

#vi /home/oracle/.dtprofile

#export ORACLE_BASE=/opt/oracle

#export ORACLE_HOME=/oracle/product/10.2/db_1

#export ORACLE_SID=new

#export ORACLE_TERM=xterm

#export NLS_LANG=AMERICAN

#LD_LIBRARY_PATH=$ORACLE_HOME/jdk/fre/lib/i386:

$ORACLE_HOME/jdk/jre/lib/i386/server:$ORACLE_HOME/rdbms/lib:

$ORACLE_HOME/lib:$LD_LIBRARY_PATH

#export LD_LIBRARY_PATH

#export PATH=$ORACLE_HOME/bin:$PATH

安装Xmanager 在本机。启动Xmanager – Passive

#export DISPLAY=10.10.3.151:0

# runinstaller -ignoresysprereqs     

Oracle 安装文件会验证HP-UX的版本号,所以需要加上ignoresysprereqs参数

图形化安装,安装时可以同时创建数据库。

选择通用安装即可。

安装到一定的程度的时候,会要求以root的身份执行2个脚本:

 $ su root

# /oracle/oraInventory/orainstRoot.sh

# /oracle/product/10.2/db_1/root.sh

安装过程不出现错误,默认情况下,em 会启动起来。

数据库参数调整

如果命令行不熟悉,可以使用EMEM在默认安装下会直接启动起来。访问方式

http://10.10.3.151:1158/em或者https//10.10.3.151:1158/em

修改sgapga的参数。

查看机器信息

#machinfo

……

Memory: 12219 MB (11.93 GB)

……

得出数据库应用服务器的内存为12G

独立应用服务器一般建议SGA的大小为应用服务器内存总量的40%。由于本次的应用测试的数据库操作相对简单,而且本次的数据库服务器上需要运行我们的BTF的模拟主机,不属于独立应用服务器,该模拟主机需占用1024M内存,所以在这里,我们给出了SGA的大小为3648MPGA的大小与并发的数据库连接有关,数据操作频繁但数据量不大的情况下,每个用户占用内存3-5M左右,基于此点,我们给定的PGA的大小为1211M

此参数在EM中可以很方便的调整。

内存参数,既可以调整SGAPGA的大小。

如果EM没有启动,只能用命令行修改。

#su – oracle

$SQLplus /nolog

SQL>conn /as sysdba

SQL> alter system set sga_target = ’3648M’  scope = spfile

SQL> alter system set pga_aggregate_target = ’3648M’  scope = spfile

修改processessessions的大小。

Processes 对应的是oracle对外的进程数量,比如应用服务器的连接池需要发起350个连接,对应的processes即为350.

Sessions对应的oracle对外的回话数,没有全部启用事务的应用,一次数据库操作即会占用一个sessions。所以sessions需要做适量的调整。

em中调整如下:

 

所有初始化参数,即可看到processessessions的大小。

如果EM没有启动,只能用命令行修改。

#su – oracle

$SQLplus /nolog

SQL>conn /as sysdba

SQL> alter system set processes = 800  scope = spfile

SQL> alter system set sessions = 880  scope = spfile

修改redo.log

Oracle的数据库日志称为redo log,所有数据改变都记录redo log,可以用于修复受损的数据库。所有的数据改变均需要记录redo.log,所以redo.log的大小,磁盘IO均有一定的讲究。强烈建议把redo.log放置在IO最好的存储中。

em中,修改如下

 

重做日志组。即可看到目前的所有redo.log

可以直接添加。一般情况需要3512Mredo.log。如果大小不对,可以添加3512Mredo.log,删除大小不符合要求的redo.log即可。删除之前需让要删除的redo.log处于inactive的状态。

如果EM没有启动,只能用命令行修改。

#su – oracle

$SQLplus /nolog

SQL>conn /as sysdba

SQL> select member from v$logfile;

查看所有的redo.log file

SQL> alter database add logfile group 4 (' /oracle/oradata/new/redo04.log') size 512m;
添加一个redo.log

SQL> alter system switch logfile;

切换到下一个redo.log

SQL>alter database drop logfile group 1;

即可删除上一个使用的redo.log

数据库监控

   在EM中,有一组每隔一个小时自动抓取一次的快照,可以使用快照分析。如下:

   快照,即可看到最新的快照。

   选中需要查看的报告,点击分析,可以看到一份报告。

   查看SQL ordered by CPU Time 即可看到那些SQL最占用内存。

   一般情况下,可以不用分析快照。

   当CPU的使用达到了一个峰值,在该分析报告中,可以跟踪到对应的SQL

   如果EM没有启动,只能用命令行去生成报告。

      $cd  ${oracle_home}/rdbms/admin

    $SQLplus /nolog

    SQL>conn /as sysdba

    SQL>@spcreate.SQL

   此命令行会需要输入perfstat的密码,默认密码为perfstat

       SQL> exec statspack.snap;

   隔几分钟后,具体看压力和数据库的CPU反应。再次执行。

      SQL> exec statspack.snap;

     SQL> @spreport

  需要选择起至的快照。选择ok,需要输入文件名,即可查看文字版本的报告。

  同理,查看SQL ordered by CPU Time 即可看到那些SQL最占用内存。

Tags: oracle10g, hp-ux, 安装, 快照