2003-10-15 19:48
huacz
在使用IBM CICS的应用系统中,会出现某些交易的服务比较繁忙(如业务的中间服务),而有些服务比较空闲(如管理子系统的服务),如何合理为这些服务分配资源,使得比较繁忙的服务获得教多的资源,而比较空闲的服务获得相对较少的资源?这些资源具体包括那些呢?不胜感谢!另外使用vmstat看到系统并不是很繁忙,但是CICS象老牛拉破车或者老鼠拉龟一样慢,使什么原因啊?在另外,如果查看数据是不是处于繁忙状态?
2003-10-17 11:28
lljj
<!--QuoteBegin-huacz+2003-10-15 19:48:25--><div class='quotetop'>QUOTE(huacz @ 2003-10-15 19:48:25)</div><div class='quotemain'><!--QuoteEBegin--> 在使用IBM CICS的应用系统中,会出现某些交易的服务比较繁忙(如业务的中间服务),而有些服务比较空闲(如管理子系统的服务),如何合理为这些服务分配资源,使得比较繁忙的服务获得教多的资源,而比较空闲的服务获得相对较少的资源?这些资源具体包括那些呢?不胜感谢!另外使用vmstat看到系统并不是很繁忙,但是CICS象老牛拉破车或者老鼠拉龟一样慢,使什么原因啊?在另外,如果查看数据是不是处于繁忙状态? <!--QuoteEnd--></div><!--QuoteEEnd--><br />既然你说到了这点我就大概讲一下<br />业务繁忙,首先你要确定你的瓶颈是不是在CICS<br />我所见到的一般是数据库的问题!<br />如果是CICS问题,你可以考虑是不是因为client太多了<br /><br />比如说一个region的LD一般只带200个以下的client<br />如果超过了,CICS就会瓶颈<br /><br />而且一般一个region配置3个这样的LD就行了<br />如果不同的业务渠道,可以考虑分region配置,以分担业务压力;<br /><br />还有在业务高峰期,你用ps -ef|grep cicsas|grep $REGION|wc -l<br />看看有多大!<br />然后用cicsget -r $REGION -c rd|grep Serv<br />看看MaxServer是不是和你的wc -l的值一样,如果一样就要考虑加大拉!<br />你可以用cicsterm中的i tclt在线加大!<br />也可以修改rd然后冷启REGION<br /><br />暂时想到这么多,以后再补充
2003-10-17 13:25
huacz
你好象对IBM CICS很熟啊!谢谢,以后请多多指教。<br />在一个约1500左右终端的系统,是分多个REGION来分担业务压力呢还是建一个REGION然后多个LD分担业务压力比较好呢?<br />我做过实验,如果一个LD连接达到300个左右,CICS就很很慢了,但是没有down下来。目前我在系统中建立一个REGION和8个LD,但是效果还是不理想。<br />我听说建多个REGION的时候,CICS资源回消耗很大,是不是这样呢?<br />很多时候出现问题的时候,不同的人就会互相扯皮或踢皮球,解决CICS的人认为是数据库的问题,数据部分则认为是CICS的问题,郁闷啊。<br />另外我听说可以合理地分配资源不同中间应用服务(就叫cicsas吧),使得业务比较关键的cicsas可以获得较多的资源,应该怎么设置呢?<br />再另外,关于数据库的性能(系统中使用informix),如何查看它的性能呢?谢谢。
2003-10-17 14:54
lljj
<!--QuoteBegin-huacz+2003-10-17 13:25:42--><div class='quotetop'>QUOTE(huacz @ 2003-10-17 13:25:42)</div><div class='quotemain'><!--QuoteEBegin--> 你好象对IBM CICS很熟啊!谢谢,以后请多多指教。<br />在一个约1500左右终端的系统,是分多个REGION来分担业务压力呢还是建一个REGION然后多个LD分担业务压力比较好呢?<br />我做过实验,如果一个LD连接达到300个左右,CICS就很很慢了,但是没有down下来。目前我在系统中建立一个REGION和8个LD,但是效果还是不理想。<br />我听说建多个REGION的时候,CICS资源回消耗很大,是不是这样呢?<br />很多时候出现问题的时候,不同的人就会互相扯皮或踢皮球,解决CICS的人认为是数据库的问题,数据部分则认为是CICS的问题,郁闷啊。<br />另外我听说可以合理地分配资源不同中间应用服务(就叫cicsas吧),使得业务比较关键的cicsas可以获得较多的资源,应该怎么设置呢?<br />再另外,关于数据库的性能(系统中使用informix),如何查看它的性能呢?谢谢。 <!--QuoteEnd--></div><!--QuoteEEnd--><br />首先,再上一贴里我已经说了LD一般有压力的,每个region配3个<br />你要让一个LD带上800个client太勉强了!<br /><br />你的1500个client最好分region,这个和你的应用有关,<br />首相你的cics里的PD要支持。<br /><br />还有多region的cics资源回收会消耗一些资源,但是和你的数据库消耗的差距还是很大的!<br /><br />至于你说的数据库的性能当然也会影响很大,其实在很多时候都是数据库的问题!<br />如果你的PD写得不好,比如说对数据库的index使用不合适,一个操作就会lock住某一个table那么其他的cicsas就会等待,时间长了就导致cicsas达到最大,最后堵塞cics。<br /><br />所以排查问题是多方面的,但应该首先从数据库入手!在接合region的console看是哪一个导致数据库慢!再去查某个PD。<br /><br />根据你的应用,如果太堵!你还可以在XAD里面考虑两阶段提交!默认的都是单阶段的<br /><br />至于对数据库优化那个你可依使用数据库自带的优化工具,也可以参考第三方工具!<br />ProActive DBA,和监控,维护工具DBArtisan
2003-10-20 12:58
huacz
很对不起,系统临近割接阶段,最近两天实在有点忙。<br /><br />pd编写确实很重要,要实现一个业务很多人都可以写,<br />有经验的程序员会考虑合理使用索引的问题。<br />比较遗憾的是项目组里大多是新手,除了报表统计时和一些常用的查询<br />必须考虑数据库的索引问题之外,其它的部分就不敢肯定了。很多时候<br />都是在赶项目,时间紧迫,普通的开发也很难要求人人考虑该问题,这<br />些工作一般都放到系统的维护或者优化阶段了。<br /><br />不知道你在系统有没有使用过CD来实现PD服务从一个REGION2影象到另<br />一个REGION中1去,然后客户端统一连接REGION1。这样实现是因为两个<br />REGION连接的是不同的数据库,而且数据在不同的SERVER上。我仅仅<br />影象一个来实现查询,发现REGION2中会有许多挂死的进程,用<br />ps -ef|grep cicsas|grep regionname查看时有些PD滞留时间比较长。<br />好象也在消耗资源,使得后面的连接不能继续。我问过IBM的工程师也没<br />有有效的处理办法。<br /><br />你说的console数据是目录/var/cics_regions/regionname/下这些文件:<br />console.000000<br />console.000001<br />console.000002<br />console.000003<br />console.000004<br />console.000005<br />console.000006<br />console.000007<br />还是/var/cics_regions/regionname/data目录下的<br />CSMT.out文件(用cicstail可以看到)<br />还是dir1目录下那些dump文件呢?<br />好象这些文件包括cicstail的输出都定位不到一个PD啊,你是怎么看的?<br /><br />另外,你实现XAD的两阶段提交,是通过修改配置参数实现的还是通过修改<br />/var/cics_regions/regionname/bin目录下CICS和数据库连接程序<br />实现?我记得好象听谁说过CICS和INFORMIX的连接好象就是两阶段提交<br />的,不知道是不是这样。
2003-10-21 00:00
hx99
首先确保所有的sql写的很很好,这是最关键的,一个很差的sql能让cics down掉;),从管理上来说region还是不要太多,否则太麻烦啦。在网络条件比较好的情况下尽量用一阶段提交,嗯,性能比两阶段XA好多啦。<br />“合理地分配资源不同中间应用服务(就叫cicsas吧),使得业务比较关键的cicsas可以获得较多的资源”cics是可以的,可以通过交易分类,并设置不同优先级,不过个人觉得把sql多优化优化就行了,cics上可以提高的不多,关键还是数据库,呵呵不知道说的对不对,请高手指正。
2003-10-21 08:39
lljj
hx99说得很好,sql是最关键的!一阶段提交当然比两阶段提交性能好,但是延迟容忍性要高!这个你自己取舍,存在就有它的道理!<br /><br />to huacz<br /><br />还有你通过ps -ef|grep cicsas|grep $region看见很多时间长的进程是很正常的,因为每个region是必须有MinServer个数的cicsas存在的,耗不了多少资源!<br />你如果想要确定哪个cicsas里面的内容已经僵死了!可以通过<br />cicsterm -r $REGION然后输入CEMT i tas然后不停得enter看见驻留太长时间的交易就可以通过tab键移到它后面,键入of(还是fo记不得了)把它杀掉!<br /><br />如果/var/cics_regions/$REGION/dumps/dir1下产生dump可以用cicsdfmt把它格式化出来分析,一般可以定位到某个PD里面的函数,然后交给开发人员修改!<br /><br />还有console里的信息,不一定有cicstail里面的全,取决于你的PD是否写console,这些日志信息,可以分析cics杜塞时在做什么交易,就可以定位是哪个tab被lock了<br /><br />还是kx99说得好,先从数据库入手!
2003-10-21 13:25
huacz
谢谢指点。看来要建设性能良好的系统,少了扎实的数据库基础也是不可能的。<br /><br />我们的话题还可以继续。<br />to hx99:<br />怎么设置cicsas的优先级呢?我想做个实验来试验一下这种处理方式有没有效果,<br />请多多指导!<br /><br />to lljj:<br />关于dump的分析,IBM的培训也有相关内容,当程序中出现内部错误(如地址越界等错误)<br />时也许比较有用的,一般用cicstail -r $REGION观察到这种错误再分析dump可能目的性<br />会更强一点。<br />我觉得哪个cicsterm 好象很难用,选择一个REGION后什么提示也没有,跟smit的可操<br />作性相差太远了。<br /><br />另外,ibm提供了一个showProcInfo,应该是个工具吧,我每次想使用来分析cicsas的时候<br />总是提示: <br />$ showProcInfo 41020<br /><br />showProcInfo, version $Id: showProcInfo,v 1.47 1999/11/18 19:37:41 kchen Exp $<br />Information for process 41020 Tue Oct 21 13:26:29 BEIJING 2003<br /><br />showProcInfo: Could not attach to process 41020<br /><br />是不是进行什么设置才能用呢?
2003-10-21 14:35
lljj
首先faint!<br />cicsterm如果有东西出来才不对呢!我较你的CEMT i tas<br />试过没有?cicsterm是最好用的cics工具!自己先找本书看看!<br /><br />至于showProcInfo!<br />你看看我以前写的脚本,对你理解showProcInfo有帮助!:)<br /><br />Time=`date +"%Y%m%d.%H%M"`<br />ps -ef>trace.$Time<br />ps -ef|grep cicsas|grep $1|awk '{print $2}'|while read pid<br />do<br /> echo "----------------------------------------------------------------------------">>trace.$Time<br /> /usr/lpp/encina/etc/showProcInfo -v $pid|tee -a trace.$Time<br />done
2003-10-21 17:58
hx99
to huacz:<br />呵呵,我记了,是交易可以分类,然后限定每类交易的最大个数rd的ClassMaxTasks属性。<br />cicsterm还是很有用的,尤其那几个系统交易要仔仔细细都玩一圈。<br />cics里东西很多,不过和数据库比起来,不用那么精通就能运行良好,还算比较省事啦。
2003-10-22 12:56
huacz
谢谢!特别是lljj的脚本。<br />再cicsterm 里输入CEMT i tas之后确实可以看到一些进程,不断按下回车键的<br />时候好象在不断刷新,还是有些时滞留在那里的。<br />想问下,再cicsterm底下显示<br />Enter=Refresh PF3=Main Menu PF8=Forward Clear=Exit<br />这个PF3和PF8还有Clear是什么键呢?<br /><br />cicsterm这个东东好象不错,有没有更详细的说明?我找了一下那个文档<br />《CICS Administration Guide 》和《CICS Administration Reference 》<br />好象说明都比较简单,没有摸着什么门道,可能E文不够好的缘故吧。<br />倒是看到了好象有个工具cicstermp,这个是做什么的啊?<br /># cicstermp<br />ERZ011053E/3708: cicstermp requires both -n netName and -r regionName parameters.<br />这个需要输入参数中的netName是指什么呢?是不是机器的hostname来的?<br />还有一个就是<br /># cicsteld<br />Abort(coredump)<br />这个又是乜东东啊?<br /><br />记得以前常常参加IBM的培训,倒是没有好好学,现在发现很多基本的东东都不知道,<br />实在是后悔了,请各位多多指教。
2003-10-22 15:13
lljj
忘记给你说了!我的脚本是用来在cics堵塞的时候执行!<br />可以把cicsas的信息抓出来!<br />然后你再重启cics,脚本后根一个参数!参数为region名!<br /><br />我记得IBM的将cicsterm的好像都是每一种书里提一点!<br />用得多了,就记住了!我也没有专门的文档!
2003-10-23 12:15
huacz
谢谢拉!就合着慢慢看IBM的文档也可以的,就是不知道底下提示<br />“Enter=Refresh PF3=Main Menu PF8=Forward Clear=Exit”<br />的按键是怎么按的?<br /><br />另外,关于数据的问题能不能指点一下?
2003-10-23 15:32
lljj
enter刷新!<br />tab选择!<br />esc +3 退上一次!
2003-10-23 16:23
老凡人
to lljj:<br />有CSTD的详细资料吗?特别是:2 - Pool Storage Statistics的,里面的意义似懂非懂!<br />macroleo@21cn.com
2003-10-23 18:54
huacz
to lljj:<br />有CSTD的详细资料的话也要给我一份啊!<br /><br /><br />今天系统再次出现问题,再下午快5点时,有个交易服务提交老是提交不成功!<br />捕捉到:文件console.000018和CSMT.out文件均有提示:<br />XA_END: Turned exception exc_e_illaddr into XAER_RMERR<br />ERZ080011W/0805 10/23/03 16:41:58 QTJS : XA Resource Manager rollback due to Resource Man<br />ager communications failure in 'XA_END' by 'INFORMIX-ONLINE' for XID ' 00010037011744475a57303331<br />30323331353139340000000000000067 0144475a5730333130323331353139340000000000000067' (Transaction<br />='CPMI', TermId='', UserId='CICSUSER'). 'The Resource Manager has marked the transaction rollbac<br />k-only'. ' SQLCODE 0, Unknown error message 0.<br />'.<br />ERZ016007E/0220 10/23/03 16:41:58 QTJS : Abnormal termination A16Y: Problem during SYNCPO<br />INT<br />ERZ014016E/0036 10/23/03 16:41:58 QTJS : Transaction 'CPMI', Abend 'A16Y', at '????'.<br />ERZ010040I/0055 10/23/03 16:41:58 QTJS : CICS control process 'cicsas' terminated<br />ERZ010048I/0088 10/23/03 16:41:58 QTJS : Application Server 103 terminated<br /><br />然后查找《CICS Messages and Codes》看到,<br />ERZ080011W XA Resource Manager rollback<br />due to Resource Manager<br />communications failure in ’XAcall’<br />by ’dbName’ for XID ’xId’<br />(Transaction=’transId’,<br />TermId=’termId’, UserId=’userId’).<br />’XAmessage’. ’%8$s’.<br />Explanation: An XA call returned an<br />XA_RBCOMMFAIL. The reason for failure may<br />be provided by the code and message returned<br />from the RM or may be made available by an<br />RM trace file.<br />Destination: console.msg<br />System Action: Processing continues.<br />User Response: Investigate the appropriate<br />return codes.<br /><br />这个是什么原因啊?我重新编译服务后问题解决,但是我不知道问题出在哪里,真够晕菜了。
2003-10-24 09:01
lljj
看了你的错误提示!感觉很明显是CICS做XA的时候出问题了!<br />多半是此时数据库异常!<br />当时关注过数据库没有?<br />看看lock,有没有表被锁主?<br />console里记录的此时其他的cicsas在做什么交易?
2003-10-24 12:50
老凡人
lljj说的对,我也遇到过,看看lock,kill相关线索,问题就解决了。<br />但有时也很怪,所有应用都kill,没有block lock, cics就是联不上,或联上了但速度慢的出奇,数据重启,一切OK!<br />怪!!!!!!<br /><br />所以数据库要定期重启
2003-10-24 18:16
huacz
当时没有注意到数据库,用cicstail看到以上提示,我以为是程序的问题。把程序重新编译几次,居然恢复正常了!!!!我实在要吐血。<br />不过我认为可能是目录/var/cics_regions/$REGION/bin目录下的XA连接文件出了问题。
2003-10-27 08:55
lljj
to huacz<br /><br />我觉得很多时候等你发现有问题,或别人通知你有问题,那时候你去看已经晚了!<br /><br />你的系统最近经常有这种问题,建议写一个crontab脚本<br />FILENAME="/savelock.`date +"%Y%m%d%H%M%S"`"<br />ps -ef >$FILENAME<br />isql -UXXXX -SSERVER >> $FILENAME <<!<br />$password<br />sp_who<br />go<br />sp_lock<br />go<br />!<br /><br />crontab里这样写* 7-19 * * * /savelock.sh<br />这样在每天7-19点每一分钟抓一次数据库信息!<br />这样再出现异常,就可以留下现场,慢馒分析了!<br /><br />以上是以sybase为例,你自己的informix可以根据情况自己修改!
2003-10-27 08:56
lljj
以上脚本经过严格测试,对于数据库资源,系统资源消耗基本可以忽略!<br /><br />记住再写个crontab定时删除哦!
2003-10-27 12:52
huacz
好的,谢谢!lljj真是个好人。
2003-10-28 10:56
hx99
"但有时也很怪,所有应用都kill,没有block lock, cics就是联不上,或联上了但速度慢的出奇" 这个肯定是数据库上有问题,所以在第一次连接时,数据库自动做一致性检查时就比较慢,如果用db2,可以用db2 list indoubt transactions查看有没有indoubt trancactions然后roll back并且forget它,再连接就好了,我遇到过一次,结果回滚了40分钟的Log,好在是在晚上,白天要死定了 <!--emo&:(--><img src='style_emoticons/default/sad.gif' border='0' style='vertical-align:middle' alt='sad.gif' /><!--endemo-->
2003-10-28 14:12
lljj
en!谢谢hx99给我们的经验!<br />所以说大家在管理数据库的时候!<br />一定要认识到,重启数据库是解决不了问题的!<br />强制性的重启或者杀掉,只会带来数据库的回滚,<br />时间可能长达几个星期(决不夸张)
页:
[1]
2
Powered by Discuz! Archiver 5.5.0
© 2001-2006 Comsenz Inc.