Tuxedo性能监控详解.docx
《Tuxedo性能监控详解.docx》由会员分享,可在线阅读,更多相关《Tuxedo性能监控详解.docx(33页珍藏版)》请在冰豆网上搜索。
Tuxedo性能监控详解
Tuxedo性能监控
文档控制
修订记录
版本
日期
作者
变更说明
1.0
2007-7-19
郭瑞升
1.
1.Tuxedo命令
1.1.启动和停止一个应用
1.1.1.启动和停止应用的流程
1.1.2.设置环境变量
1.1.3.创建TUXCONFIG文件
将文本配置文件转换成二进制文件
tmloadcf[-n][-y][-c][-bblocks]{UBBCONFIG_file|-}
-n:
只进行系统检查,报告错误。
-y:
强制覆盖已存在的TUXCONFIG文件。
-c:
计算配置文件需要的最少IPC资源。
-b:
限制TUXCONFIG文件的大小,主要用于TUXCONFIG文件存储在裸设备的情况。
tmloadcf–yubb.guoruisheng
1.1.4.在所有站点(site)启动tlisten
1.1.5.手动复制应用程序的目录和文件
1.1.6.创建TLOG设备(Device)
1)在配置文件的MACHINES部分设置TLOGDEVICE,TLOGOFFSET,TLOGNAME和TLOGSIZE参数
2)在MASTER机器上执行如下命令.
$tmadmin-c
-c:
为配置模式
3)创建TLOG设备
>crdl-zconfig-bblocks
-z:
为文件的存放路径,应该和配置文件中的TLOGDEVICE参数一致。
-b:
指定块的数量。
4)在其它需要全局事务的机器上重复步骤1到3。
注:
如果TLOG存储在镜像的磁盘上,则不需要作步骤4。
1.1.7.启动应用程序
$tmboot[-ggrpname][-osequence][-S][-sservername][-A][-y]
-g:
启动指定的组名中的服务器(server)。
-o:
按指定的顺序启动服务器(server)。
-S:
启动所有在配置文件SERVERS部分的服务器(server)。
-s:
启动指定的服务器(server)。
-A:
启动所有在MACHINES部分列出的所有管理服务器(server)。
-y:
启动所有的管理和应用服务器(server)
1.1.8.停止应用程序
1)运行tmshutdown。
$tmshutdown
2)当应用没有正常关闭时,使用IPC工具清除系统分配的资源。
$tmipcrm[-y][-n][TUXCONFIG_file]
命令会列出所有的Tuxedo使用的IPC资源,然后提示你是否清除。
3)删除/Q的IPC资源,需要使用ipcrm命令。
1.2.创建和配置TMS
1)编辑/udataobj/RM加入如下行:
Oracle_XA:
xaosw:
-L${ORACLE_HOME}/lib–lclntsh
其格式为:
rm_name:
rm_structure_name:
library_names
Oracle使用32位,RM中这么写:
#ORACLE9
Oracle_XA:
xaosw:
-L${ORACLE_HOME}/lib32-lclntsh
事实上,RM不需要写的很复杂,在32位模式下,写入下面的语句就足够了
Oracle_XA:
xaosw:
-L${ORACLE_HOME}/lib32/${ORACLE_HOME}/precomp/lib32/cobsqlintf.o-lclntsh
当然,把那些库写到RM中也能带来一定的方便,至少buildserver时可以少写一些参数。
我的习惯是在makefile中把这些东东写在CFLAGS变量中然后传递给buildserver,也是很灵活方便的
此外,我在oracle9i下好像没找到libsql.a这个库还有,如果你加了`cat$ORACLE_HOME/lib32/sysliblist`就不需要再写-lld-lm-lc_r-lpthread了
2)编译生成TMSserver
buildtms-v-oname-rrm_name_in_RM
例如:
buildtms-o$TUXDIR/bin/TMS_ORA9i-rOracle_XA
2.性能监控前准备
2.1.监控应用程序的方法
2.2.选择合适的监控工具
2.3.用管理控制台监控应用程序
2.4.用命令行工具监控应用程序
2.5.用EventBroker监控应用程序
2.6.用日志文件监控应用程序
2.7.用MIB监控应用程序
2.8.用运行时和用户级跟踪工具
Ø设置客户端的TMTRACE环境变量
TMTRACE=on
日志输出到ulog日志中
Ø使用表达式
1)运行时表达式
TMTRACE=atmi:
/tpservice/ulog
2)用户级表达式
TMTRACE=atmi:
utrace
Ø可以用tmadmin的changetrace命令激活和删除跟踪设置。
2.9.用DBBL和BBL处理错误
2.10.用ATMI处理系统级和应用级错误
BLOCKTIME6
2.11.监控多线程多上下文应用程序
2.12.如何查看tuxedo的详细版本
1)查看大版本
tmadmin-v
2)查看补丁
${TUXDIR}/udataobj/patchlev
2.13.了解应用的配置
1)登录应用系统
2)切换到tuxedo用户(假设用户名为tuxedo)
#su-tuxedo
3)确定tuxedo软件的安装目录
$echo$TUXDIR
/tuxedo97
4)确定应用系统的安装目录
$echo$APPDIR
/tux97_app/spgroup/bin
5)确定应用配置的存放目录
$echo$TUXCONFIG
/tux97_app/spgroup/bin/tuxconfig
6)将当前正在运行的配置文件信息存储到tuxconfig.backup
tmunloadcf>tuxconfig.backup
dmunloadcf>domconfig.backup
>bbs
CurrentBulletinBoardStatus:
Currentnumberofservers:
546
Currentnumberofservices:
12059
Currentnumberofrequestqueues:
249
Currentnumberofservergroups:
4
Currentnumberofinterfaces:
0
7)确定DOM配置文件的存放目录
$echo$BDMCONFIG
/tux97_app/spgroup/bin/dmconfig
8)查看dom信息
$dmadmin
>default–ddomname
>printdomain
>printstats
>helppd
printdomain(pd)Printinformationaboutthenamedlocaldomain
---------------------------------------------------------------
printdomain(pd)-dlocal_domain_name
>printdomain-dbill13
Localdomain:
bill13
Connecteddomains:
Domainid:
sp3_1_lf
Domainid:
666666_hd
Domainid:
kf_hd
Domainid:
kf_lf
Domainid:
sp3_dm_t
Domainid:
sp3_1_cz
Domainid:
wtc1
Domainid:
sp3_dm_c
Domainid:
wtc2
Domainid:
wtc6
Domainid:
kf_cz1
Domainid:
ap2_2
Domainid:
kf_bd
Domainid:
kf_cz2
Domainid:
simpapp_bd
Domainid:
wtc5
>printstats-dbill13
Timestatisticswerereset:
ThuJul2623:
37:
172007
Total#ofservicerequestsreceivedfrom"local"requesters:
0
Total#ofservicerequestsreceivedfromremotedomains:
0
Total#ofservicerepliessentto"local"requesters:
0
Total#ofservicerepliessenttoremotedomains:
0
Total#ofactiveservicerequests:
0
Total#ofservicerequestscompleted:
0
Total#ofservicerequeststhatfailed:
0
Total#ofconversationalservicerequestsreceivedfrom"local"requesters:
0
Total#ofconversationalsendssentto"local"requesters:
0
Total#ofconversationalservicerequestsreceivedfromremotedomains:
0
Total#ofconversationalsendssenttoremotedomains:
0
Total#ofactiveconversationalservicerequests:
0
Total#oftransactionsbegun:
0
Total#oftransactionscommitted:
0
Total#oftransactionsrolledback:
0
Total#ofheuristictransactionscommitted:
0
Total#ofheuristictransactionsrolledback:
0
Total#ofactiveevents:
0
Total#ofsuspended/Tevents:
0
Total#ofsuspendedNWevents:
0
Total#ofsharedmemorycontentions:
0
Total#oflogcontentions:
0
Disconnecteddomainsbeingretried:
Domainid:
ap1_2
Domainid:
ap1_1
Domainid:
ap2_1
Domainid:
simpapp2_bd
>pt-dbill13
Nooutstandingtransactions
2.14.设置report选项
在命令行CLOPT参数中,加入-r选项,可以用-e选项指定日志文件的名称。
GlobalServSRVGRP="GROUP1"SRVID=1MIN=15MAX=25
RQADDR="GlobalServ1"
REPLYQ=Y
CLOPT="-A-r-p1,100:
2,10"
使用-r选项时,确保ULOGDEBUG环境变量已设为y
在SERVICES部分,设置如下参数:
*SERVICES
servopts-r
3.性能监控
3.1.查看ULOG日志
ULOG日志每天生成一个
日志格式:
hhmmss.hostname!
.processname.processid.threadid.contextid:
messagecatlogname:
messagenumber:
messagetext
系统信息日志例子:
151550.gumby!
BBL.28041.1.0:
LIBTUX_CAT:
262:
stdmainstarting
151550.gumby!
BBL.28041.1.0:
LIBTUX_CAT:
358:
reachedUNIXlimitonsemaphoreids
151550.gumby!
BBL.28041.1.0:
LIBTUX_CAT:
248:
fatal:
systeminitfunction...
151550.gumby!
BBL.28040.1.0:
CMDTUX_CAT:
825:
ProcessBBLatSITE1failed...
151550.gumby!
BBL.28040.1.0:
WARNING:
NoBBLavailableonsiteSITE1.
Willnotattempttobootserverprocessesonthatsite.
tlisten信息日志例子:
121449.gumby!
simpserv.27190.1.0:
LIBTUX_CAT:
262:
stdmainstarting
3.2.查看TLOG日志
1)将二进制形式的TLOG转换成文本文件形式。
$tmadmin
>dumptlog[-zconfig][-ooffset][-nfilename][-ggroupname]
-z:
TLOG的路径
-o:
默认为0
-n:
默认为TLOG
-g:
只转换指定组名的TLOG
2)将文本文件形式TLOG转换成二进制形式的TLOG
$tmadmin
>loadtlog-mmachinefilename
3.3.性能监控脚本
uname-a
whiletrue
do
date
netstat-an|grepTIME_WAIT|wc-l
echopclt|tmadmin-r|grep-vtmadmin|grep-vWSH|wc–l
echopsr|tmadmin-r|grep-vIDLE|sort+0
echopq|tmadmin-r|sort+4|grep-v"0"
#vmstat150
ipcs-qob|grep-v"0"|sort+7
sleep5
done
3.4.各监控命令输出的含义
3.4.1.psr输出服务器信息
以下是tmadmin命令的printserver(简写为psr)的简单输出。
列项
含义
ProgName
服务的可执行文件名
QueueName
服务连接的队列名
GrpName
组名
ID
服务的数字id
RqDone
服务已经处理的请求数
LoadDone
服务处理的全部请求的参数和,为已处理的请求数乘以负载因子,即RqDone*LOAD
CurrentService
服务正在处理的交易,若为IDLE则服务当前是空闲
>ProgNameQueueNameGrpNameIDRqDoneLoadDoneCurrentService
QRRept00100.00030QRGRP301648200QRGETRDATA
WMEngineSvrWMEngineSv+WFMSGRP222138469200WMCreProcInst
WMWorkItemSvrWMWorkItem+WFMSGRP25168434200WMRetWkItem
WMWorkItemSvrWMWorkItem+WFMSGRP25366333150WMGetSoWkItem
WMWorkItemSvrWMWorkItem+WFMSGRP25463831900WMGetSoWkItem
3.4.2.psc输出服务信息
以下是tmadmin命令的printservice(简写为psc)的简单输出。
列项
含义
ServiceName
交易名
RoutineName
交易函数名
ProgName
服务可执行文件名
GrpName
服务所在组名
ID
服务的数字id
Machine
提供交易的机器的LMID
#Done
交易已经执行的次数
Status
交易当前状态
>ServiceNameRoutineNameProgNameGrpNameIDMachine#DoneStatus
ACS_GEN_UACS_GEN_Uacs_serv2ORAGRP1500telcom0AVAIL
ACS_G_1STACS_G_1STacs_g_infoORAGRP2800telcom2541283AVAIL
ACS_G_CNTACS_G_CNTacs_g_infoORAGRP2800telcom0AVAIL
ACS_IVQ_UACS_IVQ_Uacs_serv2ORAGRP1500telcom0AVAIL
ACS_LOG_ACS+ACS_LOG_ACS+uc_temp_w+ORAGRP2000telcom0AVAIL
ACS_Q_FILD_UACS_Q_FILD_Uacs_serv2ORAGRP1500telcom0AVAIL
3.4.3.pq输出队列信息
以下是tmadmin命令的printqueue(简写为pq)[qaddress]的简单输出。
如果不指定address,所有队列信息将被输出。
列项
含义
ProgName
队列连接的服务的可执行文件名
QueueName
字符队列名,是RQADDR参数或一个随机值
#Serve
连接的服务数
WkQueued
当前队列的所有请求的参数和,为排队数乘以负载因子,即#Queued*LOAD
#Queued
实际请求数,为当前队列的排队数
Ave.Len
平均队列长度
Machine
队列所在机器的LMID
>ProgNameQueueName#ServeWkQueued#QueuedAve.LenMachine
net_svr00001.01800151501030.4telcom
GWTDOMAIN00009.010031726501453461.2telcom
3.4.4.pclt输出客户端信息
以下是tmadmin命令的printclient(简写为pclt)的输出:
列项
含义
LMID
已经登录的客户端机器的LMID
UserName
用户名,由tpinit()提供的
ClientName
客户端名,由tpinit()提供的
Time
客户端连接后经过的时间
Status
客户端状态
IDLE――表示客户端目前没有任何交易在工作
IDLET――表示客户端启动了一个交易
BUSY――表示客户端在工作中
BUSYT――表示客户端正在交易控制下工作
Bgn/Cmmt/Abrt
启动/提交/中断的交易数
LMIDUserNameClientNameTimeStatusBgn/Cmmt/Abrt
simpleccsmisWSH17:
42:
47IDLE0/0/0
simpleccsmistmadmin0:
44:
28IDLE0/0/0
4.性能分析
txrpt[-t][-nnames][-dmm/dd][-stime][-etime]
-t:
按使用的总时间排序,不使用这个选项,则按调用次数排序。
-n:
只对指定的服务进行分析,多个服务名之间用逗号分隔。
-d:
指定月/日,默认为当天。
-s:
开始时间
-e:
结束时间
txrpt-d04/24-s11:
00-e15:
005.性能优化及建议
5.1.何时使用MSSQ队列
5.2.配置domain网关时注意的步骤及问题
以上是配置域访问的一个场景,首先券商(JS)域中的服务会调用CTS域的服务;然后银行端也会通过CTS域调用JS域的服务。
1)券商端ubb配置ubbjs
*GROUPS
GROUP_APPLMID=TUXAPPGRPNO=3OPENINFO=NONE
GROUP_APP2LMID=TUXAPPGRPNO=5OPENINFO=NONE
"GWTGP1"LMID=TUXAPPGRPNO=31
TMSCOUNT=3
"GWTGP2"LMID=TUXAPPGRPNO=32
TMSCOUNT=3
GROUP_WSLLMID=TUXAPPGRPNO=4OPENINFO=NONE
LDMGRPLMID=TUXAPPGRPNO=20
LGWGRPLMID=TUXAPPGRPNO=21
*SERVERS
#firststartpart
DMADMSRVGRP=LDMGRPSRVID=1
GWADMSRVGRP=LGWGRPSRVID=1
GWTDOMAINSRVGRP=LGWGRPSRVID=2CLOPT="-A-t--"
GWADMSRVGRP=GWTGP1SRVID=20001
GWTDOMAINSRVGRP=GWTGP1SRVID=20002CLOPT="-A-t--"
GWADMSRVGRP=GWTGP2SRVID=20003
GWTDOMAINSRVGRP=GWTGP2SRVID=20004CLOPT="-A-t--"
*SERVICES
2)券商端domain配置dmjs
*DM_RESOURCES
*DM_LOCAL
"ctsccb1"GWGRP=GWTGP1#和券商ubb配置文件中GWTDOMAIN的GROUP名相同
ACCESSPOINTID="ctsccb1"
BLOCKTIME=10
DMTLOGNAME="DMTLOG"
MAXTRAN=100
BLOB_SHM_SIZE=1000000
CONNECTION_POLICY=INCOMING_ONLY
"ctsccb2"GWGRP=GWTGP2#和券商ubb配置文件中GWTDOMAIN的GROUP名相同
ACCESSPOINTID="ctsccb2"
BLOCKTIME=10
DMTLOGNAME="DMTLOG"
MAXTRAN=100
BLOB_SHM_SIZE=1000000
CONNECTION_POLICY=INCOMING_ONLY
dm_0011GWGRP=LGWGRP#equalGWTDOMAIN'sGROUPname
#DOM