本版版主招募中

 
标题: 如何设置某些比较繁忙的服务的资源?
huacz
LU幼天使
Rank: 2



UID 308
精华 0
积分 33
帖子 66
活跃指数 0
LU金币 2006 个
LU金条 0 个
阅读权限 20
注册 2003-10-6
 
发表于 2003-10-15 19:48  资料  个人空间  短消息  加为好友 
在使用IBM CICS的应用系统中,会出现某些交易的服务比较繁忙(如业务的中间服务),而有些服务比较空闲(如管理子系统的服务),如何合理为这些服务分配资源,使得比较繁忙的服务获得教多的资源,而比较空闲的服务获得相对较少的资源?这些资源具体包括那些呢?不胜感谢!另外使用vmstat看到系统并不是很繁忙,但是CICS象老牛拉破车或者老鼠拉龟一样慢,使什么原因啊?在另外,如果查看数据是不是处于繁忙状态?

顶部
lljj
荣誉斑竹
Rank: 14Rank: 14Rank: 14Rank: 14



UID 250
精华 1
积分 57
帖子 109
活跃指数 0
LU金币 6007 个
LU金条 0 个
阅读权限 200
注册 2003-9-30
 
发表于 2003-10-17 11:28  资料  个人空间  短消息  加为好友 
QUOTE(huacz @ 2003-10-15 19:48:25)
在使用IBM CICS的应用系统中,会出现某些交易的服务比较繁忙(如业务的中间服务),而有些服务比较空闲(如管理子系统的服务),如何合理为这些服务分配资源,使得比较繁忙的服务获得教多的资源,而比较空闲的服务获得相对较少的资源?这些资源具体包括那些呢?不胜感谢!另外使用vmstat看到系统并不是很繁忙,但是CICS象老牛拉破车或者老鼠拉龟一样慢,使什么原因啊?在另外,如果查看数据是不是处于繁忙状态?

既然你说到了这点我就大概讲一下
业务繁忙,首先你要确定你的瓶颈是不是在CICS
我所见到的一般是数据库的问题!
如果是CICS问题,你可以考虑是不是因为client太多了

比如说一个region的LD一般只带200个以下的client
如果超过了,CICS就会瓶颈

而且一般一个region配置3个这样的LD就行了
如果不同的业务渠道,可以考虑分region配置,以分担业务压力;

还有在业务高峰期,你用ps -ef|grep cicsas|grep $REGION|wc -l
看看有多大!
然后用cicsget -r $REGION -c rd|grep Serv
看看MaxServer是不是和你的wc -l的值一样,如果一样就要考虑加大拉!
你可以用cicsterm中的i tclt在线加大!
也可以修改rd然后冷启REGION

暂时想到这么多,以后再补充

顶部
huacz
LU幼天使
Rank: 2



UID 308
精华 0
积分 33
帖子 66
活跃指数 0
LU金币 2006 个
LU金条 0 个
阅读权限 20
注册 2003-10-6
 
发表于 2003-10-17 13:25  资料  个人空间  短消息  加为好友 
你好象对IBM CICS很熟啊!谢谢,以后请多多指教。
在一个约1500左右终端的系统,是分多个REGION来分担业务压力呢还是建一个REGION然后多个LD分担业务压力比较好呢?
我做过实验,如果一个LD连接达到300个左右,CICS就很很慢了,但是没有down下来。目前我在系统中建立一个REGION和8个LD,但是效果还是不理想。
我听说建多个REGION的时候,CICS资源回消耗很大,是不是这样呢?
很多时候出现问题的时候,不同的人就会互相扯皮或踢皮球,解决CICS的人认为是数据库的问题,数据部分则认为是CICS的问题,郁闷啊。
另外我听说可以合理地分配资源不同中间应用服务(就叫cicsas吧),使得业务比较关键的cicsas可以获得较多的资源,应该怎么设置呢?
再另外,关于数据库的性能(系统中使用informix),如何查看它的性能呢?谢谢。

顶部
lljj
荣誉斑竹
Rank: 14Rank: 14Rank: 14Rank: 14



UID 250
精华 1
积分 57
帖子 109
活跃指数 0
LU金币 6007 个
LU金条 0 个
阅读权限 200
注册 2003-9-30
 
发表于 2003-10-17 14:54  资料  个人空间  短消息  加为好友 
QUOTE(huacz @ 2003-10-17 13:25:42)
你好象对IBM CICS很熟啊!谢谢,以后请多多指教。
在一个约1500左右终端的系统,是分多个REGION来分担业务压力呢还是建一个REGION然后多个LD分担业务压力比较好呢?
我做过实验,如果一个LD连接达到300个左右,CICS就很很慢了,但是没有down下来。目前我在系统中建立一个REGION和8个LD,但是效果还是不理想。
我听说建多个REGION的时候,CICS资源回消耗很大,是不是这样呢?
很多时候出现问题的时候,不同的人就会互相扯皮或踢皮球,解决CICS的人认为是数据库的问题,数据部分则认为是CICS的问题,郁闷啊。
另外我听说可以合理地分配资源不同中间应用服务(就叫cicsas吧),使得业务比较关键的cicsas可以获得较多的资源,应该怎么设置呢?
再另外,关于数据库的性能(系统中使用informix),如何查看它的性能呢?谢谢。

首先,再上一贴里我已经说了LD一般有压力的,每个region配3个
你要让一个LD带上800个client太勉强了!

你的1500个client最好分region,这个和你的应用有关,
首相你的cics里的PD要支持。

还有多region的cics资源回收会消耗一些资源,但是和你的数据库消耗的差距还是很大的!

至于你说的数据库的性能当然也会影响很大,其实在很多时候都是数据库的问题!
如果你的PD写得不好,比如说对数据库的index使用不合适,一个操作就会lock住某一个table那么其他的cicsas就会等待,时间长了就导致cicsas达到最大,最后堵塞cics。

所以排查问题是多方面的,但应该首先从数据库入手!在接合region的console看是哪一个导致数据库慢!再去查某个PD。

根据你的应用,如果太堵!你还可以在XAD里面考虑两阶段提交!默认的都是单阶段的

至于对数据库优化那个你可依使用数据库自带的优化工具,也可以参考第三方工具!
ProActive DBA,和监控,维护工具DBArtisan

顶部
huacz
LU幼天使
Rank: 2



UID 308
精华 0
积分 33
帖子 66
活跃指数 0
LU金币 2006 个
LU金条 0 个
阅读权限 20
注册 2003-10-6
 
发表于 2003-10-20 12:58  资料  个人空间  短消息  加为好友 
很对不起,系统临近割接阶段,最近两天实在有点忙。

pd编写确实很重要,要实现一个业务很多人都可以写,
有经验的程序员会考虑合理使用索引的问题。
比较遗憾的是项目组里大多是新手,除了报表统计时和一些常用的查询
必须考虑数据库的索引问题之外,其它的部分就不敢肯定了。很多时候
都是在赶项目,时间紧迫,普通的开发也很难要求人人考虑该问题,这
些工作一般都放到系统的维护或者优化阶段了。

不知道你在系统有没有使用过CD来实现PD服务从一个REGION2影象到另
一个REGION中1去,然后客户端统一连接REGION1。这样实现是因为两个
REGION连接的是不同的数据库,而且数据在不同的SERVER上。我仅仅
影象一个来实现查询,发现REGION2中会有许多挂死的进程,用
ps -ef|grep cicsas|grep regionname查看时有些PD滞留时间比较长。
好象也在消耗资源,使得后面的连接不能继续。我问过IBM的工程师也没
有有效的处理办法。

你说的console数据是目录/var/cics_regions/regionname/下这些文件:
console.000000
console.000001
console.000002
console.000003
console.000004
console.000005
console.000006
console.000007
还是/var/cics_regions/regionname/data目录下的
CSMT.out文件(用cicstail可以看到)
还是dir1目录下那些dump文件呢?
好象这些文件包括cicstail的输出都定位不到一个PD啊,你是怎么看的?

另外,你实现XAD的两阶段提交,是通过修改配置参数实现的还是通过修改
/var/cics_regions/regionname/bin目录下CICS和数据库连接程序
实现?我记得好象听谁说过CICS和INFORMIX的连接好象就是两阶段提交
的,不知道是不是这样。

顶部
hx99
LU新生
Rank: 1



UID 823
精华 0
积分 6
帖子 11
活跃指数 0
LU金币 2001 个
LU金条 0 个
阅读权限 10
注册 2003-10-20
 
发表于 2003-10-21 00:00  资料  个人空间  短消息  加为好友 
首先确保所有的sql写的很很好,这是最关键的,一个很差的sql能让cics down掉;),从管理上来说region还是不要太多,否则太麻烦啦。在网络条件比较好的情况下尽量用一阶段提交,嗯,性能比两阶段XA好多啦。
“合理地分配资源不同中间应用服务(就叫cicsas吧),使得业务比较关键的cicsas可以获得较多的资源”cics是可以的,可以通过交易分类,并设置不同优先级,不过个人觉得把sql多优化优化就行了,cics上可以提高的不多,关键还是数据库,呵呵不知道说的对不对,请高手指正。

顶部
[广告] 记录自己的思想火花,留住每日的技术积累,尽在拥有属于自己独立域名的博客。
lljj
荣誉斑竹
Rank: 14Rank: 14Rank: 14Rank: 14



UID 250
精华 1
积分 57
帖子 109
活跃指数 0
LU金币 6007 个
LU金条 0 个
阅读权限 200
注册 2003-9-30
 
发表于 2003-10-21 08:39  资料  个人空间  短消息  加为好友 
hx99说得很好,sql是最关键的!一阶段提交当然比两阶段提交性能好,但是延迟容忍性要高!这个你自己取舍,存在就有它的道理!

to huacz

还有你通过ps -ef|grep cicsas|grep $region看见很多时间长的进程是很正常的,因为每个region是必须有MinServer个数的cicsas存在的,耗不了多少资源!
你如果想要确定哪个cicsas里面的内容已经僵死了!可以通过
cicsterm -r $REGION然后输入CEMT i tas然后不停得enter看见驻留太长时间的交易就可以通过tab键移到它后面,键入of(还是fo记不得了)把它杀掉!

如果/var/cics_regions/$REGION/dumps/dir1下产生dump可以用cicsdfmt把它格式化出来分析,一般可以定位到某个PD里面的函数,然后交给开发人员修改!

还有console里的信息,不一定有cicstail里面的全,取决于你的PD是否写console,这些日志信息,可以分析cics杜塞时在做什么交易,就可以定位是哪个tab被lock了

还是kx99说得好,先从数据库入手!

顶部
[广告] 记录自己的思想火花,留住每日的技术积累,尽在拥有属于自己独立域名的博客。
huacz
LU幼天使
Rank: 2



UID 308
精华 0
积分 33
帖子 66
活跃指数 0
LU金币 2006 个
LU金条 0 个
阅读权限 20
注册 2003-10-6
 
发表于 2003-10-21 13:25  资料  个人空间  短消息  加为好友 
谢谢指点。看来要建设性能良好的系统,少了扎实的数据库基础也是不可能的。

我们的话题还可以继续。
to hx99:
怎么设置cicsas的优先级呢?我想做个实验来试验一下这种处理方式有没有效果,
请多多指导!

to lljj:
关于dump的分析,IBM的培训也有相关内容,当程序中出现内部错误(如地址越界等错误)
时也许比较有用的,一般用cicstail -r $REGION观察到这种错误再分析dump可能目的性
会更强一点。
我觉得哪个cicsterm 好象很难用,选择一个REGION后什么提示也没有,跟smit的可操
作性相差太远了。

另外,ibm提供了一个showProcInfo,应该是个工具吧,我每次想使用来分析cicsas的时候
总是提示:
$ showProcInfo 41020

showProcInfo, version $Id: showProcInfo,v 1.47 1999/11/18 19:37:41 kchen Exp $
Information for process 41020 Tue Oct 21 13:26:29 BEIJING 2003

showProcInfo: Could not attach to process 41020

是不是进行什么设置才能用呢?

顶部
[广告] 记录自己的思想火花,留住每日的技术积累,尽在拥有属于自己独立域名的博客。
lljj
荣誉斑竹
Rank: 14Rank: 14Rank: 14Rank: 14



UID 250
精华 1
积分 57
帖子 109
活跃指数 0
LU金币 6007 个
LU金条 0 个
阅读权限 200
注册 2003-9-30
 
发表于 2003-10-21 14:35  资料  个人空间  短消息  加为好友 
首先faint!
cicsterm如果有东西出来才不对呢!我较你的CEMT i tas
试过没有?cicsterm是最好用的cics工具!自己先找本书看看!

至于showProcInfo!
你看看我以前写的脚本,对你理解showProcInfo有帮助!:)

Time=`date +"%Y%m%d.%H%M"`
ps -ef>trace.$Time
ps -ef|grep cicsas|grep $1|awk '{print $2}'|while read pid
do
echo "----------------------------------------------------------------------------">>trace.$Time
/usr/lpp/encina/etc/showProcInfo -v $pid|tee -a trace.$Time
done

顶部
[广告] 记录自己的思想火花,留住每日的技术积累,尽在拥有属于自己独立域名的博客。
hx99
LU新生
Rank: 1



UID 823
精华 0
积分 6
帖子 11
活跃指数 0
LU金币 2001 个
LU金条 0 个
阅读权限 10
注册 2003-10-20
 
发表于 2003-10-21 17:58  资料  个人空间  短消息  加为好友 
to huacz:
呵呵,我记了,是交易可以分类,然后限定每类交易的最大个数rd的ClassMaxTasks属性。
cicsterm还是很有用的,尤其那几个系统交易要仔仔细细都玩一圈。
cics里东西很多,不过和数据库比起来,不用那么精通就能运行良好,还算比较省事啦。

顶部
huacz
LU幼天使
Rank: 2



UID 308
精华 0
积分 33
帖子 66
活跃指数 0
LU金币 2006 个
LU金条 0 个
阅读权限 20
注册 2003-10-6
 
发表于 2003-10-22 12:56  资料  个人空间  短消息  加为好友 
谢谢!特别是lljj的脚本。
再cicsterm 里输入CEMT i tas之后确实可以看到一些进程,不断按下回车键的
时候好象在不断刷新,还是有些时滞留在那里的。
想问下,再cicsterm底下显示
Enter=Refresh PF3=Main Menu PF8=Forward Clear=Exit
这个PF3和PF8还有Clear是什么键呢?

cicsterm这个东东好象不错,有没有更详细的说明?我找了一下那个文档
《CICS Administration Guide 》和《CICS Administration Reference 》
好象说明都比较简单,没有摸着什么门道,可能E文不够好的缘故吧。
倒是看到了好象有个工具cicstermp,这个是做什么的啊?
# cicstermp
ERZ011053E/3708: cicstermp requires both -n netName and -r regionName parameters.
这个需要输入参数中的netName是指什么呢?是不是机器的hostname来的?
还有一个就是
# cicsteld
Abort(coredump)
这个又是乜东东啊?

记得以前常常参加IBM的培训,倒是没有好好学,现在发现很多基本的东东都不知道,
实在是后悔了,请各位多多指教。

顶部
lljj
荣誉斑竹
Rank: 14Rank: 14Rank: 14Rank: 14



UID 250
精华 1
积分 57
帖子 109
活跃指数 0
LU金币 6007 个
LU金条 0 个
阅读权限 200
注册 2003-9-30
 
发表于 2003-10-22 15:13  资料  个人空间  短消息  加为好友 
忘记给你说了!我的脚本是用来在cics堵塞的时候执行!
可以把cicsas的信息抓出来!
然后你再重启cics,脚本后根一个参数!参数为region名!

我记得IBM的将cicsterm的好像都是每一种书里提一点!
用得多了,就记住了!我也没有专门的文档!

顶部
 



当前时区 GMT+8, 现在时间是 2008-8-30 03:51
乐悠LoveUnix论坛-京ICP备05005823号

Thanks to Discuz!  © 2001-2007    Power by LoveUnix.net
Processed in 5.059696 second(s), 6 queries , Gzip enabled

清除 Cookies - 联系我们 - 乐悠LoveUnix - Archiver