Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MQ process amqrmppa keep increasing

Tags:

ibm-mq

Good day.

I'm having an issue which MQ process amqrmppa are keep increasing which currently there are 635 processes exist. Previous 2 days it only have 2++ processes but keep increasing slowly until current value.

MQ version = 8.0

Operating System = AIX 7

This processes expected to be increase until our maxuproc limit which is 1024.

When I run command,

echo "dis chs(*)" | runmqsc MYMQ | grep channel | wc -l

The output appeared is 268.

Does this means the actual process that are amqrmppa use is 268?

like image 796
MrAZ Avatar asked Jul 23 '26 05:07

MrAZ


1 Answers

The amqrmppa process is MQ's channel pooling process and by default will scale up using both threads and new process instances. When it increases like this there are two possibilities.

  1. Memory leak. The question doesn't mention the complete version number. When the fix pack level is included it would be a dotted-quad format such as 8.0.0.1 where 8.0 is the major version and 0.1 is the support stream and Fix Pack. When the Fix Pack is known it's possible to look through the APARS to see if it is a known problem.
  2. Application error. When applications terminate client connections improperly, it leaves an orphan channel instance behind. These eventually time out but the pooling process is slow to release threads since it is quicker to reuse one than to rebuild the entire process from scratch. So the number of processes generally reflects a recent high water mark of started channels.

Generally poor programming or external factors (such as firewall timeout) are more likely root causes than MQ code bugs, however the number of APARS in every Fix Pack is testament that these do happen. You might want to tune the MAXCHAN settings so that no one application can spin up more than a reasonable number of concurrent channel instances. You might also want to install BlockIP2 or LogIP (from Mr. MQ) and log connection attempts.

Some more notes:

  • As a rule, the number of processes is less than the number of concurrent channels due to dispatching channels to threads. This is tunable though and the local QMgr may have the channels set to PROCESS instead of THREAD. Also, if channels are started by inetd the result is one channel per process. (Do not do that in a modern QMgr!)
  • Why are you running with maxuproc=1024? According to the Infocenter for MQ v8.0, on AIX this value should be 64000. If the recommended kernel tuning has not been performed an apparent process leak is one of the most benign errors you might see. Run the mqconfig program and follow the advice it gives. (I believe mqconfig runs on AIX and also you need to give it the full path name to the executable.)
like image 183
T.Rob Avatar answered Jul 28 '26 16:07

T.Rob



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!