TUXEDO的配置优化之路二
(2014-08-24 09:55:38)
标签:
tuxedo中间件优化 |
分类: TUXEDO |
前面讲到了ubb中必需部分在配置的时候需要注意的,现在讲讲可选部分中最重要的SERVERS的配置优化。
从管理维护的角度看:server与service的关系。一个service对应一个server是最简单的方式,但这会增加server的数量,也就是进程数,使tuxedo系统对系统的IPC资源要求增大,导致系统性能下降;或超过系统限制(UNIX:maxfiles,maxfiles_lim),
1.有相互调用的service不要放到一个server中,以免引起死锁现象。
2.执行时间相近的service可以放到一个server中。
3.同一个server中的service最好有相同的服务优先级。如果不同,优先级最低的请求可能要很长时间才得到处理。
4.一个server中不要有太多的service。
5.把资源要求相近的service放到同一个server中。
6.可根据业务规则把service放到同一个server中。
7.把一些使用率较高的service应单独放在一个server中,并采用MSSQ方式。
在缺省情况下,TUXEDEO的每一个SERVER对应一个请求队列,该SERVER从该请求队列中取客户端发来的请求,并把处理的结果通过该请求队列返回给客户端,这种模式的好处那就是有多个queue可用,有效避免了请求并发量很大时队列的溢出。
TUXEDO的SERVER也可以配置成多个SERVER对应一个请求队列,即MSSQ方式,以提高响应的速度。用MSSQ时其server的数目不宜太多,官方文档建议2-12,为避免不必要的资源和调度开销,通常建议单组服务在8个左右,避免大于10
MSSQ(Multi
不要认为MIN,MAX的值越大越好,主要取决于数据库的速度。在硬件资源充足的情况下,建议所有SERVER都设定MIN数量与MAX数量相等,以避免动态启停服务带来的各种问题。那么MIN和MAX到低配置成多少才是比较合理的,既不会因为配置数不够导致阻塞,也不会因为配置过多导致资源空闲。
优化的一个重要的参考依据就是TUXEDO性能跟踪文件(默认文件名为stderr)中记录的每个service的调用次数及调用时间。在配置文件的CLOPT中设置“-r”参数后,每次调用该service都会在恨不能跟踪文件中记录一行记录。性能跟踪文件可以使用TUXEDO提供的TXRPT命令进行分析,可以统计出每个service在每段时间内的总调用次数和平均时间。现在我们来看一下性能跟踪文件里的数据应该怎么分析。
根据性能跟踪文件stderr,按一定的时间段分析性能数据,时间段(time)可根据需要设置,每分钟一条记录,每小时一条记录都可以。那么我们就可以得到一条以下记录,包括:service
Efficiency=Duration/NUM/MIN/time
每个server下所有service的Efficiency值求和超过1秒表示在1秒内server所有调用未在1秒内执行完,可能会造成请求排队或性能问题。
每个server下所有service的Efficiency值求和接近1秒表示server的idle较低,没有足够的空闲处理能力,可能会造成在与业务增长时请求排队或性能问题。
每个server下所有service的Efficiency值求和低于1秒表示server有足够的idle,有一定的冗余处理能力,那这个值就是我们优化的目标。
如果单个service的Efficiency值过大,表示单次调用的响应过长,影响用户体验,需要对service的调用时长进行优化。
当一个SERVER进程因某中原因死掉时,可设置RESTART让它可以自动重起,默认为N(不可以)。但光设置了RESTART=Y还不够,还要设置GRACE,MAXGEN才能在该SERVER死掉时,自动重起,GRACE,MAXGEN:在GRACE秒内,该进程最多可以重启MAXGEN次。注意,该SERVER能够被自动重起的一个前提条件时它还没有被从BULLITION
如果SERVER采用会话(CONVERSATION)通讯方式,注意采用会话通讯方式的SERVICE要单独在一个SERVER中,不能与采用其他通讯方式的SERVICE在同一个SERVER中,并且该SERVER要设置CONV=Y。
在WSL配置中-x参数定义的是同一个WSH上最多能有多少个客户端请求排队,该值过大会引发大量的客户端超时,建议将调整到20左右或更小。
不同版本的tuxedo互连问题:如果是WSL模式:低联高版本在WSL中加入-t参数,如CLOPT=”-A

加载中…