针对WAS和MQ的监控,一般有哪些指标值得我们去关注?请列举说明

针对WAS和MQ的监控,一般有哪些指标值得我们去关注?请列举说明

如:WAS的线程池、内存、JDBC等指标;MQ的队列深度、日志报错等

参与8

1同行回答

ayy216226ayy216226其它IBM
MQ巡检一般情况关注三个方面。1,错误日志。A)qmgr 错误日志:默认目录  /var/mqm/qmgrs//errors/AMQERR01.log,AMQERR02.log,AMQERR03.log最新日志一般记录在AMQERR01.log中,查看该日志判断mq有什么问题。常见报错:AMQ9999通道异常终止错误,AMQ9526消息序列号不一致,AMQ9...显示全部

MQ巡检一般情况关注三个方面。

1,错误日志。

A)qmgr 错误日志:默认目录  /var/mqm/qmgrs//errors/AMQERR01.log,AMQERR02.log,AMQERR03.log

最新日志一般记录在AMQERR01.log中,查看该日志判断mq有什么问题。常见报错:AMQ9999通道异常终止错误,AMQ9526消息序列号不一致,AMQ9513达到通道连接数最大值,AMQ9207 收到主机消息无效,还有错误AMQ9206,AMQ9208,AMQ9209等。

除了上述错误,可以把平时运行中常见报错,记录下来,作为日后巡检的参考。

B)mq错误日志: /var/mqm/errors/AMQERR01.log,AMQERR02.log,AMQERR03.log,*FDC文件

这个目录等错误一般和软件运行有关的错误,如果有错误该重点关注,且详细分析每一条错误的原因。FDC文件则是mq软件运行有问题时的堆栈信息,可以通过这个文件判断是否mq本身的bug。

2,MQ运行状态

A)通道的状态,非running的状态都是有问题的。需要结合日志判断通道终止或者binding的原因。

B)队列深度,如果队列深度持续增长,没有下降的趋势需要重点关注。需要查队列增长的原因。不同的队列增长的原因也是不同的。如果是本地队列增长过快,查应用程序为什么没有取走消息。如果是传输队列,可能是通道或者网络有问题,消息无法传输

3,重点关注以下参数配置

A)tcp参数:

修改WebSphere MQ系统配置文件mqs.ini,增加如下一节:TCP:

KeepAlive=Yes

B)修改操作系统的TCP/IP参数:

tcp_keepidle保持TCP/IP连接的时间,单位为0.5秒,缺省值为14,400,即两个小时,我们可将它设为5分钟;

tcp_keepinittcp连接初始timeout值,单位为0.5秒,缺省值为150,我们可将它设为50;

tcp_keepintvl连接间隔,单位为0.5秒,缺省值为150,我们可将它设为50;

/usr/sbin/no -o tcp_keepidle=240

/usr/sbin/no -o tcp_keepinit=50

/usr/sbin/no -o tcp_keepintvl=50

需要注意的一点是通道两端的KeepAlive参数要保持协调一致,若发送端的KeepAlive值小于接收端的KeepAlive值,则当网络出现故障时,发送端的通道停下来之后,接收端的通道会仍然停不下来。

C)使用AdoptNewMCA

通过修改qm.ini文件的Channels一节进行修改,如:Channels:

AdoptNewMCA=ALL

当MQ接收到启动通道的请求,但是同时它发现与该通道对应的amqcrsta的进程已经存在,这时,该进程必须首先被停止,然后,通道才能启动。AdoptNewMCA的作用就是停止这种进程,并且为新的通道启动请求启动一个新的进程。

该属性可以将状态处于running状态的接收端通道强行终止,从而使发送端的通道启动或请求操作得以成功。

如果为某一通道指定了AdoptNewMCA的属性,但是新的通道由于\"channel is already running\"而启动失败,则它可以:

1) 新的通道通知之前的通道停止

2) 如果旧的通道在AdoptNewMCATimeout的时间间隔内没有接受该停止请求,相应的进程(或线程)被kill掉

3) 如果旧的通道经过步骤2仍未终止,则当第二个AdoptNewMCATimeout时间间隔到达时,MQ终止该通道,同时产生\"channelin use\"的错误。

D) 设置MaxChannels和MaxActiveChannels属性   

MaxChannels和MaxActiveChannels分别代表队列管理器允许配置的通道的最大个数和允许同时运行的通道的个数,MaxChannels的缺省值是100,MaxActiveChannels的缺省值与MaxChannels相同。如果您的并发通道连接个数超过了100,您需要修改这两个参数。这对于大并发的Client/Server间通讯尤为重要。

E)Disconnect interval属性

DisconnectInterval(DISCINT)是发送和服务类型的通道所具有的一个参数,它的作用是:在它设置的时间间隔内,如果传输队列为空即通道上没有消息通过时,通道就会被停止。设置完Disconnect Interval参数之后,当发送方重起通道时,通道就会被正常启动。

Disconnect Interval的值会地影响通道的性能。如果把Disconnect Interval的值设置得非常小,会导致通道的频繁启动;反之,如果把Disconnect Interval的值设置得很大,则意味着即使通道上很长时间没有消息,系统资源也会被长期占用,从而影响系统的性能。因此,利用改变 Disconnect Interval的值,我们可以有效地改善通道的性能。

当传输队列中没有消息要传送时,发送方通道(SDR)、服务器通道(SVR)将在等待了该参数指定的时间间隔后断开连接,停止通道。该参数以秒为单位,定义新的通道时,如果没有特别指定,该参数会继承系统对象的属性,设为6000秒,约两个小时。亦通道连续两个小时没有消息发送后就会停止。DISCINT参数设定为0,通道永远不会停止。(注:有防火墙的不能设为0)

F) Heart Beat Interval属性

与Disconnect Interval(HBINT)相对应的是Heart BeatInterval这一参数(仅针对WebSphere MQ for AIX、HP-UX、OS/2、Sun Solaris、Windows NT/2000 V5.1以上)。它的作用是:在Heart Beat Interval指定的时间间隔内,如果传输队列上没有一直没有消息到达,发送方MCA会向接收方MCA发送一个心跳信号,据此给接收方通道以停止的机会,在这种情况下,它不必等待Disconnect Interval超时,也会将通道停止下来。同时,它会释放用来存贮大消息的内存空间并关闭接收方的队列。

为了使HeartBeat Interval和Disconnect Interval这两个参数更有效地发挥作用,一般情况下需要让Heart Beat Interval设置值小于Disconnect Interval设置值。

另外,如果我们使用的传输协议是TCP/IP,我们也可以利用设置TCP/IP的socket的SO_KEEPALIVE参数来实现这一功能。设置完 SO_KEEPALIVE参数,并设置时间间隔之后,TCP/IP本身就会定期去检测另一端连接的状态,如果对方连接已断开,通道也会被停止。在这里,TCP/IP的时间间隔也应小于WebSphere MQ通道的Disconnect Interval的值。

G) ShortRetry和LongRetry属性

在发送类型等类型的通道属性中,还有四个参数是与通讯恢复和通道连接有关的,它们是:shortrty,shorttmr,longrty,longtmr,它们的缺省值分别是:10,60,999999999,1200,分别代表短 重试时间间隔和次数以及长重试时间间隔和次数,它们的作用和含义在于当通道从running变为retrying状态时,按照这四个参数规定的时间间隔和次数进行通道重新连接的尝试,并且先进行短重试,短重试结束后,再进入长重试。

在设计这四个参数时,要注意以下两点:

1) 要确保短重试+长重试的时间〉故障恢复时间

例如:假设您估计您的系统故障恢复时间为1个小时,则要设置shorttmr*(time of shortrty)+longtmr*(time of shortrty)>2 hours这样,才能保证在故障恢复之后,通道仍然能够自动进行重新连接的尝试。

2) 重试间隔将影响自动恢复的效率

例如:如果您把短重试总时间设定为10分钟,而长重试时间间隔设为1小时,而网络在15分钟后,便已经恢复,可是此时,由于通道已经进入长重试阶段,它将在 1个小时之后,才能通过长重试恢复通道的正常运行。相反,也不必把重试间隔设置得太短,应根据需要和用户的实际情况进行适中的设置。

H) Batch size属性

    通道的Batchsize(BATCHSZ)值是影响通道性能的一个关键参数。在MQ进行消息传输时,通道对消息的处理也是在同步点的控制之下并具有交易特性的,在以下条件满足时,它将统一提交一批消息:

当发送的消息个数达到BATCHSZ时;或传输队列为空,并且在BATCHINT指定的时间间隔内一直没有消息到达时。

    缺省情况下,通道的Batchsz是50,这是一个较为合理和优化的设置。一个小的Batch size值会使每条消息占用大的资源。比如,假设我们在局域网的情况下,Batch size值越大,通道的性能越好。然而,在广域网环境下,要根据网络状况的好坏来设置该参数,若网络状况很差,Batch size值越大,可能会导致通道的性能越差。

收起
IT咨询服务 · 2017-04-26
浏览7033

提问者

eianbo
IT顾问PBCCRC
擅长领域: 服务器中间件监控

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2017-04-26
  • 关注会员:2 人
  • 问题浏览:11153
  • 最近回答:2017-04-26
  • X社区推广