关于TUXEDO 负载均衡和MSSQ的探讨

两个TUXEDO服务器间通过域相连 立即下载

 在使用TUXEDO的过程中,会遇到一些并发请求量很大的情况,比如某些帐单处理服务或者是在营业下班前的日操作清单服务。这时,一些SERVICE会接收到大量客户端,甚至长时间的请求,对service,甚至整个系统是严峻的考验。遇到这种情况,单个的server往往难以应付,或者性能不好,我们就想到负载均衡或者使用TUXEDO的MSSQ(Multi Server, Single Queue)。下面笔者根据自己在TUXEDO应用开发和管理配置方面的实践,结合实际系统压力测试的结果对相关的问题进行一些探讨。

在没有负载均衡的情况下,是由一个server(可能包含一个或多个service)来处理客户端对其中service的请求,所有的请求首先放入这个server的队列里面,然后server逐个取出处理。在UNIX系统上,TUXEDO较多的使用了队列,并且也用到了共享内存和信号量,相关的UNIX系统参数会影响到系统的性能,但这个不在本文讨论范围之内,这里假设已经调到了合适的范围,具体请查阅TUXEDO关于IPC的文档。

现以一个帐单处理的server为例,负载均衡前server的ubb配置为:

billpay SRVGRP=GROUP1 SRVID=1

在单个server不能满足性能要求的情况下,就考虑采用TUXEDO的负载均衡方法。

方法一是直接将相关server启多份,将上面的配置改为:

billpay SRVGRP=GROUP1 SRVID=1 MIN = 5 MAX = 10

这样tmboot的时候,就会有MIN = 5个billpay启动,类似下面的情况:

billpay 00001.00001 GROUP1 1 0 0 ( IDLE )

billpay 00001.00002 GROUP1 2 0 0 ( IDLE )

(依此类推,共5个)

其中第二列是该server的队列名,"."前面是GRPNO,后面是SRVID,每个server有自己的队列。相关的另一个参数就是在ubb的*RESOURCES段的LDBAL,表示是否启动Load Balancing,默认是"N"(不启动),你可以通过设置成"Y"来启动。这里需要注意的是,为"N"的时候并不表示多个server不能分担负载。主要的差别是为"Y"时,TUXEDO在接收到请求时会按照它的负载均衡的算法来找到合适的server来处理,而设置成"N"时,总是由第一个可用的server来处理。通过这种方法可以让多个server来处理大量并发的请求,就达到了改善性能的目的。

方法二是采用MSSQ(Multi Server, Single Queue),顾名思义,就是有多份server,但是只有一个队列(请求队列)。具体的配置是:

billpay SRVGRP=GROUP1 SRVID=1 MIN = 5 MAX = 10

RQADDR=" billpay" REPLYQ=Y

启动后的情况如下:

billpay billpay GROUP1 1 0 0 ( IDLE )

billpay billpay GROUP1 2 0 0 ( IDLE )

(依此类推,共5个)

我们发现几个billpay server都关联相同的名为billpay的队列,这就是所谓的Single Queue。

与直接多server相比,多了两个参数,RQADDR是这多个server共用的队列名,是一种逻辑名,可以自己命名,不和别的冲突就可以,REPLYQ是标示是否设置返回队列,在使用MSSQ的时候是强烈建议设置,因为这样可以将请求和返回分开,避免多个server共用队列时造成混乱。相关的其它参数这里没有详细列出。

到底两种方式和没有负载均衡时有什么不同,后面将提供相关的测试结果。先分析一下两种方法。方法一有多个队列可以容纳请求,但是这些大量的请求怎样放入这些队列必定有一定的策略,而且根据LDBAL的设置会不同,但是这个策略本身的运算也是一种消耗,因为每个请求都面临着这个选择。因为这种情况下每个队列是和server对应的,所以队列的选择就意味着选择了相应的那个server,这样大量的请求就被分流。虽然有选择的消耗,但是额外的好处也是显而易见的,那就是有多个queue可用,有效避免了请求并发量很大时队列的溢出,这种情况在实际的压力测试中发生过。使用方法二时,放入队列时不用做选择,然后每个server的任务就是从队列取出请求去处理,考虑到多个server并发取队列,所以用MSSQ时其server的数目不宜太多,官方文档建议2-12。而且在这种情况下,建议不要设置LDBAL=Y,因为MSSQ本身就是一种基于single queue的负载均衡的方法,这时再使用系统的策略已经没有意义。这种方法也有一个问题,如果相对于请求数来说,处理得不够快,就比第一种方法更容易造成队列溢出。

因为我们无法知道TUXEDO一些具体的算法和策略,那就用一些具体的测试来比较吧。笔者在一个和实际生产系统配置相同的UNIX+ORACLE+TUXEDO8.0系统上做了一下试验,被测服务是一个帐单查询服务,每次根据一批ID从数据库查询出具体的帐单,由于都是实际数据和实际使用的服务,有一定的说明力,但是也不排除一些情况造成的误差。以下是测试的一些结果,每个server的实际运行份数都是10。

一:客户端数目为1,循环调用100次。

1. 方法一,LDBAL = Y or N。结果发现所有的请求都由其中的一个server处理,其它全部空闲。在此基础上再进行两次循环调用,结果还是一样。

2. 用方法二,LDBAL = Y or N。其中两次测试的情况是:

<1>19,19,2,2,1,18,18,1,1,19

<2>23,8,23,23,23,(其它空闲)

以上数据说明了两种方式的调度策略是不一样的,在单客户端循环的情况下方法二更合适。

二:客户端数目50,每个循环80次,统计总的执行时间。

1. 用single server。两次测试的处理时间分别是219s和196s。

2. LDBAL = Y 方法一:三次测试时间为:63s,79s,69s

3. LDBAL = N 方法一:三次测试时间为:74s,79s,85s

4. LDBAL = Y 方法二:三次测试时间为:74s,73s,77s

5. LDBAL = N 方法二:三次测试时间为:78s,76s,75s

通过以上数据可以看出不管用那种方法,使用负载均衡相比单个server都可以在大量请求并发时得到更好的性能。但是同时也发现后四种情况的总时间差别不大,考虑一些实际的误差,很难断定哪种更好。

通过前面的分析,并查阅相关的文档,建议采用的是两种方式:多个server,不用MSSQ,设置LDBAL = Y;用MSSQ,设置LDBAL = N。当然,在使用TUXEDO的应用系统中,不能绝对的说哪一种方式更好,只能是根据具体的情况来分析,并通过实际的压力测试来进行选择,而且这个和具体server的特点也是有关的。

用Multisim和AD2复刻经典:手把手教你搭建μA741三角波-方波发生器(附完整避坑指南) 本文详细介绍了如何使用Multisim和AD2搭建基于μA741运算放大器的三角波-方波发生器,包括电路原理、Multisim仿真流程、AD2硬件搭建及调试技巧。通过对比理论计算、仿真和实测数据,深入分析器件非理想特性的影响,并提供16个典型问题的解决方案,帮助读者掌握波形发生器的设计原理和工程调试经验。 阅读详情

相关推荐

地理空间智能体(GI Agent)

地理空间智能体(Geospatial Intelligence Agent, GI Agent)是AI Agent技术与地理信息系统(GIS)深度融合的产物。其核心是以大型语言模型(LLM)为驱动,通过自然语言理解、任务分解和工具调用能力,实现地理空间任务的自动化执行。​关键特性​自主性​:独立规划任务流程(如空间数据检索、分析、可视化);​交互性​:支持自然语言对话交互,替代传统图形界面操作;​扩展性​:灵活集成第三方工具和API,支持跨平台协作。

百态·数智思维 | 聚焦大数据、量化与未来AI 2032

Tuxedo负载均衡及多域环境的测试

1. Tuxedo简介BEA Tuxedo是当今C、C++和COBOL解决方案的首选平台,是许多全球领先公司的事务处理支柱,运行着一些规模最大的关键事务处理系统,如有线传输、ATM和电信等。作为一种多语言、可扩展的事务处理平台,BEA Tuxedo为机构提供了任务关键型基础架构,能改善已有应用的可访问性,整合企业事务和消息传输解决方案,能通过XML Web服务支持核心应用,能提高企业的生产率、效率和敏捷性,使IT机构能更好地与业务流程保持一致。BEA Tuxedo是在企业、Interne

Cottage驿站 4884

PyTorch版Unet训练后别只看loss:手把手教你计算并可视化多类别语义分割的mIoU(附完整代码)

本文详细介绍了在PyTorch中使用Unet模型进行多类别语义分割后,如何计算和可视化mIoU(mean Intersection over Union)以全面评估模型性能。通过完整的代码示例和实用技巧,帮助开发者从loss优化转向更精准的区域分割评估,特别适用于医学图像分析等关键场景。

weixin_30906185的博客 435

Tuxedo 初学必知

<br />  Tuxedo学习摘记 收藏 <br />Tuxedo Summary<br />1. 强大的C/S通信功能<br />       不仅支持请求/应答,还支持保持交易状态的会话模式、基于发布/订阅的事件代理模式、基于消息通知的单播/多播模式、基于消息队列的可靠消息存储和转发方式<br />2. 强大的联机交易功能<br />       通信传输的只是较少的客户请求服务名和服务结果,不再是大量繁琐的SQL请求应答,有异步RPC机制实现扇出并行、利用MSSQ实现多处理并行、利用转发机制实现流水

funstar888的专栏 9814

MATLAB实战:5分钟搞定雷达信号分选SDIF算法(附完整源码下载)

本文详细介绍了如何在MATLAB中快速实现雷达信号分选的SDIF算法,通过序列差直方图统计高效识别脉冲重复间隔(PRI)。文章包含完整源码下载,从算法原理到实战调优技巧,帮助工程师在5分钟内掌握核心实现方法,显著提升雷达信号处理效率。

info6的博客 614

四足机械臂避坑指南:从URDF配置到逆运动学控制的完整流程

本文为四足机械臂(Loco-Manipulation)系统开发提供了一份详实的实战避坑指南。文章深入剖析了从URDF模型配置、核心控制循环设计到逆运动学(IK)求解与奖励函数构建的完整流程,重点讲解了如何避免关节命名错误、惯性参数设置不当、IK求解不稳定等常见陷阱,并强调了利用collision_bbox等可视化工具进行高效调试的方法,旨在帮助工程师构建稳定、高效的四足机械臂控制系统。

weixin_42509507的博客 192

windows NLB实现MSSQL读写分离--从数据库集群读负载均衡

主从模式,几乎大部分出名的数据库都支持的一种集群模式。 当Web站点的访问量上去之后,很多站点,选择读写分离,减轻主数据库的的压力。当然,一主多从也可以作用多个功能,比如备份。这里主要演示如何实现从数据库集群的读负载均衡 搭建一主三从的MSSQL集群 192.168.99.250 //主服务器 192.168.99.8 //从服务器(WIN-6S3JNU8C4TB) 192....

weixin_34006965的博客 459

手把手教你用STM32+LAN8720搭建以太网通信模块(含原理图)

本文详细介绍了如何使用STM32微控制器与LAN8720物理层芯片搭建以太网通信模块,涵盖硬件设计、软件配置及常见问题排查。重点讲解了LAN8720的低功耗设计、RMII接口简化布线等特性,以及STM32CubeMX配置和LwIP协议栈移植技巧,助力开发者快速实现稳定可靠的嵌入式网络通信。

CAT789的专栏 411

tuxedo mssq 的配置

<br /> <br />*RESOURCES<br />IPCKEY    80952<br />DOMAINID  simpapp<br />MASTER    SITE1<br />MAXACCESSERS    10<br />MAXSERVERS      20<br />MAXSERVICES     30<br />MODEL        SHM<br />LDBAL           N<br />*MACHINES<br />DEFAULT:<br />   APPDIR="/home

pdw2009的专栏 1011

围绕国产化操作系统以及人大金仓地理空间库的GIS的解决方案,含超详细部署步骤以及与QGIS,GeoServer,PostGlS Shapefile lmport/Export Manager的连接步骤

人大金仓软件 2.1软件的下载以及授权的相关文件插件 2.2上传至虚拟机 2.3KingbaseES V8R6数据库部署过程 2.3.1创建安装用户 2.3.2赋权 2.3.3.创建安装目录且赋权 2.3.4 准备挂载 2.4kingbase安装方法 2.7postgis安装 3 人大金仓数据库与QGIS的连接 4 人大金仓数据库与PostGlS Shapefile lmport/Export Manager的连接 5 人大金仓数据库与geoserver的连接

挣钱花388的博客 2590

LE AUDIO---Volume Control Service

LE AUDIO---Volume Control Service

weixin_42162924的博客 163

Tuxedo性能调优经验谈

TUXEDO应用系统对IPC资源的要求 一个TUXEDO应用系统在运行时会大量用到IPC资源,包括信号灯,消息队列及共享内存,下面对他们的使用情况及与他们有关的操作系统核心参数分别进行介绍: UBBCONFIG中与IPC资源有关的配置参数 主要有: MAXACCESSERS ,REPLYQ,RQADDR,MAXSERVERS,MAXSERVICE,MAXGTT TUXEDO应用系统对IPC

Cottage驿站 1428

华为OD机考双机位C卷 - 风险投资计划(Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 风险投资计划(OD上机考试双机位C卷)。提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。

算法大师! 547

关于TUXEDO 负载均衡和MSSQ的探讨 - [Tuxedo]

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://kimva.blogbus.com/logs/10795676.html    在使用TUXEDO的过程中,会遇到一些并发请求量很大的情况,比如某些帐单处理服务或者是在营业下班前的日操作清单服务。这时,一些SERVICE会接收到大量客户端,甚至长时间的请求,对service,甚至整个系统是严峻的考验。遇到这

389

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Tuxedo学习摘记

 Tuxedo Summary1. 强大的C/S通信功能       不仅支持请求/应答,还支持保持交易状态的会话模式、基于发布/订阅的事件代理模式、基于消息通知的单播/多播模式、基于消息队列的可靠消息存储和转发方式2. 强大的联机交易功能       通信传输的只是较少的客户请求服务名和服务结果,不再是大量繁琐的SQL请求应答,有异步RPC机制实现扇出并行、利用MSSQ实现多

Ant Ren的专栏 4860

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Tuxedo负载均衡是如何工作的?

Tuxedo负载均衡是如何工作的?In order to describe the TUXEDO load balancing, two configuration modes need to be distinguished, the single machine (or SHM) mode and the multiple machines  (or MP) mode. Moreover wi

folin的专栏 2108

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

BEA TUXEDO的学习

 BEA dev2dev BBS Tuxedo 精华总结BEA dev2dev 中国网站 http://dev2dev.bea.com.cn 版权所有TUXEDO 精华贴总结总结人:彭建新 (DEV2DEV ID:SYLPJX)序言原以为很容易就可以把这些帖子总结一下,没有想到,主题虽然不多,精华区的回帖却是不少,要仔细的看完这些帖子,区分开来原来竟然也不是一件容易的事,还好断断续续的坚持了下来,

Swerye.blog 6668

[转贴]TUXEDO精华贴总结

序言原以为很容易就可以把这些帖子总结一下,没有想到,主题虽然不多,精华区的回帖却是不少,要仔细的看完这些帖子,区分开来原来竟然也不是一件容易的事,还好断断续续的坚持了下来,精华贴中的大部分信息变成了下面的形式。 由于里面的信息是我认为比较有用的,又没有和别人商量,难免有失偏颇,大家在看这个总结的时候,只选择其中有用的去看就可以。为了保证回复的帖子的原貌,我基本没有改动大家回帖时的言语,这样做,我是

manud的专栏 2367

Tuxedo

这篇文章,借鉴了这个博客的信息,原文链接放头部:http://blog.chinaunix.net/uid-354915-id-3512380.html 第1章 TUXEDO系统概述 分布式系统的联机事务处理(OLTP)领域。 1、事务监视器 2、交易中间件 3、应用服务器 特性:强大的C/S通信功能、强大的联机交易性能、强大的分布式事务协调能力、完善的负载均衡机制、等等。 易初时,使用Tuxedo7,2007年10月Tuxedo10.0发布。 第2章 TUXEDO系统的体系结构 三层C/S模型 CORBA

四块的博客 881

tuxedo11g MP 模式配置

     随着一些项目对实时交易处理量和响应时间的要求较高,最近两月接触了交易中间件的安装配置。上一会写了CICS的相关内容,这次整理一下 oracle tuxedo的内容。tuxedo 11g在系统架构和基础配置文件上和之前的版本没什么区别。下文内容为整理而得,较中文网络其它的文章,多了多域间网关对的配置,这一点在MP模式下还是 较为有用的。   Tuxedo架构图 ...

liu3098651的博客 893

linux查看tuxedo监听端口,Tuxedo性能监控.doc

Tuxedo性能监控Tuxedo性能监控文档控制修订记录版本日期作者变更说明1.02007-7-19郭瑞升1.Tuxedo命令51.1.启动和停止一个应用51.1.1.启动和停止应用的流程51.1.2.设置环境变量51.1.3.创建TUXCONFIG文件51.1.4.在所有站点(site)启动tlisten61.1.5.手动复制应用程序的目录和文件61.1.6.创建TLOG设备(Device)61...

weixin_29876341的博客 685

java调用tuxedo中间件,BEA-TUXEDO中间件介绍.ppt

BEA-TUXEDO中间件介绍2003年1月16日 BEA TUXEDO 介绍 应用软件软件部 顾强 qiang_gu@163.net 培训目的 了解使用中间件的三层应用架构模式 了解BEA TUXEDO基本特性 能使用TUXEDO进行具体应用的开发 了解TUXEDO各项配置参数的含义 了解TUXEDO管理工具的使用 培训内容 TUXEDO 基本特性介绍 使...

weixin_42510567的博客 249

Tuxedo应用设计的经验(1)

Tuxedo为用户开发应用程序提供了一个高性能、高稳定性的框架。用户可以在这个框架内做任意想做的工作。但是为了提高整个系统的性能和稳定性,也需要遵循一些基本原则。在本章中,我们把在帮助客户构建系统时积累的经验进行总结,系统整理出来,供客户设计应用系统时候参考。负载均衡包括负载均衡的概念,如何设置负载均衡,LOAD/NETLOAD,队列的优先级,MSSQ的使用,SPINCOUN...

weixin_33860722的博客 106

Tuxedo 学习心得 四

 一、tuxedo的负载     1、负载均衡(Load Balancing):后台会有很多个服务进程,有的忙有的闲,当一个新的请求包到来的时候,tuxedo将其分给比较闲的进程处理。这个思想在很多的软件里都能看到。后台的每个server都是一个进程,在缺省的状态下,每个进程都有自己的接收队列和返回队列,也就是说每个进程都有自己的队列,这个队列存储来自客户端的请求,tuxedo的一些管理进

3078
上一篇: 中间件在电信行业中的应用
下一篇: TUXEDO超时控制全功略
cation
博客等级 码龄24年 33粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值