1、1第五章 性能调整 .1第一节 CICS 参数的优化 .11.1 CICS 性能测试举例 .11.2 CICS 性能优化及注意事项 .6第二节 CICS 自带的负载平衡 .6第五章 性能调整我常常遇到这样的情况,CICS 的用户说他们编的程序运行起来很慢,需要调整 CICS 的性能。我的第一反应一般是:问题不在 CICS。那么,首先应该检查什么?所谓性能问题一般出在数据库访问的程序处理上,最常见的问题是:锁定或索引类型不正确,于是一步 SQL 操作运行了数十秒乃至几分钟。看来,熟练地使用 C 和 E-SQL 对 CICS 来说可谓至关重要。性能调整的关键是找出系统性能的瓶颈,这样才能有的放矢。
2、对应用服务器来说,CPU、内存、网络和硬盘都是可能的瓶颈。而实际情况往往是这四种资源都没有被 CICS 充分利用,那么一般就要查一下数据库编程的问题了。第一节 CICS 参数的优化1.1 CICS 性能测试举例一 测试说明:1、目的:测试 CICS 的性能,对 DB2 数据库的访问能力。2、时间:2000 年 1 月 20 日 - 2000 年 1 月 21 日3、地点:(北京)IBM 公司盈科中心 20 层 SEC 实验室4、人员:刘睿、侯云峰、顾春庆、聂华二 测试环境:1、硬件平台:2表 5-1-1测试机 用途 CPU 内存 硬盘 操作系统RS6000 43P260 数据库(DB2)2*2
3、00M(Power3)2G 2*8GAIX v4.3.2IBM Netfinity 5500CICS 服务器2*450M(PII) 2G 4*8GNT server v4.0IBM PC300 CICS 客户机400M(PII) 196M6G NT server v4.0IBM PC300 CICS 客户机400M(PII) 196M6G NT workstation v4.0IBM PC300 CICS 客户机400M(PII) 196M6G WIN 98IBM PC300 CICS 客户机400M(PII) 196M6G WIN 95IBM ThinkPad770zCICS 客户机350M
4、(PII) 256M14G NT workstation v4.0网络环境:16M BPS TokenRing,采用 TCP/IP 协议2、软件平台:CICS v4.2DB2 v5.2 EXEC SQL BEGIN DECLARE SECTION;char g_Phone9;char g_User61; double g_fee; EXEC SQL END DECLARE SECTION;5extern char *pCwa;/*/*Functions*/*/*/void main()char s30;if( InitEasyCics() )ExitEasyCics();return;/*Re
5、ad:*/GetValue( “NO“, g_Phone );/*Write:*/BeginWrite();RsCreate(3);EXEC SQL SELECT u.f_phone_no, f_Usr_name, f_fee INTO :g_Phone, :g_User, :g_fee FROM test.t_user u, test.t_bill bWHERE (b.f_phone_no = u.f_phone_no) and (f_month = 1) and (u.f_phone_no = :g_Phone);SetValue( “PHONE“, g_Phone );SetValue(
6、 “USER“, g_User );sprintf( s, “%8.2f“, g_fee );SetValue( “FEE“, s );EXEC SQL INSERT INTO test.t_log(f_time, f_log) values(current timestamp, :g_Phone);ExitEasyCics();清单 5-1-161.2 CICS 性能优化及注意事项CICS 无须特殊调整,就能得到较好的利用,从另一个角度来说,设置方面的调整只能微调性能,编程方面倒有些值得注意的地方。现在纯粹从 CICS 角度,将可能影响性能的情况和解决办法总结如下: 对 TDQ、TSQ 等的
7、资源,选择类型恰当的类型,例如 read-only 和 nonrecoverable 等存取速度较快。尽量减少记录数目,可以增加记录长度。 选择适当的 Maximum application servers 参数,一般取 5-20,最少要大于运行 CICS 的 CPU 总数的 3 倍。增加此参数一般不能增加平均吞吐量,但可以增加平滑度,不过会消耗更多的内存。 使用 PD 的 Cache program 属性,不过这样使动态更新很不方便。 如果可行,用 one phase 的数据库连接取代标准的 xa。 在数据库处理时,使用恰当的索引类型。减少锁定的可能性,有时,可以适当更改隔离级别。 使用负载平衡机制。第二节 CICS 自带的负载平衡所谓 CICS 的负载平衡的含义是使用多个 CICS 服务器以均衡负载。CICS自带的动态负载平衡机制可以动态地选择 CICS 服务器,能实现一定的负载均衡。但这种机制也有一些弊端。要实现 CICS 自带的动态负载平衡,首先要在 CICS 的客户设置多个 CICS服务器的连接。然后激活负载管理器即可。读者可以参照下面的界面示意:7图 5-2-1缺省的方式是 Round robin,即轮流访问,无须更多的设置。如果想实现有权重的访问,应选择 Biasing 方式,并在下面具体设置权重。