dbTalk Databases Forums  

Message queue sizing on Linux

comp.databases.ibm-db2 comp.databases.ibm-db2


Discuss Message queue sizing on Linux in the comp.databases.ibm-db2 forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Troels Arvin
 
Posts: n/a

Default Message queue sizing on Linux - 02-24-2010 , 02:39 PM






Hello,

Situation: New x86-64 Red Hat Enterprise Linux 5.4 (64 bit) server with
plenty of RAM (192GB) and DB2 ESE v. 9.7 FP1. The server has one DB2
instance, hosting one 10TB database.

I had tried adjusting some kernel limits according to http://
publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/
com.ibm.db2.luw.qb.server.doc/doc/t0008238.html
I.e., I set kernel.msgmnb=65535

When I started DB2, the database increased kernel.msgmnb by one, setting
it to kernel.msgmnb = 65536.

"Normal" activities worked well, but LOAD operations and backup/restore
failed:
DIA8557C No message was sent using the message queue.
CALLED : OS, -, msgsnd OSERR: EAGAIN (11)
DATA #1 : system V message queue identifier., PD_TYPE_SYSV_QUEUE_ID

I tried setting kernel.msgmnb to 524288 (value chosen out of the blue,
but with the intention of it being a handful times 65536), and then
things work. (When kernel.msgmnb is larger than 65536, DB2 seems to
accept it, and doesn't change it when the instance is started.)

I believe it's an error that DB2 chooses kernel message limitation(s)
which don't result in a fully working database system. But apart from
that, I'm interested in find an answer to: What's a good value for
msgmnb, given a lot of RAM, and the latest DB2?

Part an answer to that would involve: What's the upper bound for
kernel.msgmnb? I couldn't find a clear description of this anywhere, so I
tried asking on the Linux kernel mailinglist (LKML):
http://groups.google.com/group/linux...thread/thread/
a05179e07296a688
I got an answer, but it didn't really answer my question.
So I took at look in the Linux kernel source, and it seems to me that the
upper limit for kernel.msgmnb is sizeof(int)==2147483647.

But sometimes, it's counterproductive to increase various knobs like that
to large values: I suspect that simply increasing kernel.msgmnb to the
upper limit will not necessarily be a performance-enhancing move. So:
Does someone know if there is a point where values for kernel.msgmnb will
make DB2 under-perform? Or is there a point where further increases
simply don't make sense for DB2?

--
Troels

Reply With Quote
  #2  
Old   
whatever
 
Posts: n/a

Default Re: Message queue sizing on Linux - 02-26-2010 , 11:04 AM






On Feb 24, 3:39*pm, Troels Arvin <tro... (AT) arvin (DOT) dk> wrote:
Quote:
Hello,

Situation: New x86-64 Red Hat Enterprise Linux 5.4 (64 bit) server with
plenty of RAM (192GB) and DB2 ESE v. 9.7 FP1. The server has one DB2
instance, hosting one 10TB database.

I had tried adjusting some kernel limits according to http://
publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/
com.ibm.db2.luw.qb.server.doc/doc/t0008238.html
I.e., I set kernel.msgmnb=65535

When I started DB2, the database increased kernel.msgmnb by one, setting
it to kernel.msgmnb = 65536.

"Normal" activities worked well, but LOAD operations and backup/restore
failed:
DIA8557C No message was sent using the message queue.
CALLED *: OS, -, msgsnd * * * * * * * * * * * ** OSERR: EAGAIN (11)
DATA #1 : system V message queue identifier., PD_TYPE_SYSV_QUEUE_ID

I tried setting kernel.msgmnb to 524288 (value chosen out of the blue,
but with the intention of it being a handful times 65536), and then
things work. (When kernel.msgmnb is larger than 65536, DB2 seems to
accept it, and doesn't change it when the instance is started.)

I believe it's an error that DB2 chooses kernel message limitation(s)
which don't result in a fully working database system. But apart from
that, I'm interested in find an answer to: What's a good value for
msgmnb, given a lot of RAM, and the latest DB2?

Part an answer to that would involve: What's the upper bound for
kernel.msgmnb? I couldn't find a clear description of this anywhere, so I
tried asking on the Linux kernel mailinglist (LKML):http://groups.google.com/group/linux...thread/thread/
a05179e07296a688
I got an answer, but it didn't really answer my question.
So I took at look in the Linux kernel source, and it seems to me that the
upper limit for kernel.msgmnb is sizeof(int)==2147483647.

But sometimes, it's counterproductive to increase various knobs like that
to large values: I suspect that simply increasing kernel.msgmnb to the
upper limit will not necessarily be a performance-enhancing move. So:
Does someone know if there is a point where values for kernel.msgmnb will
make DB2 under-perform? Or is there a point where further increases
simply don't make sense for DB2?

--
Troels
My Few Cents

1. You cannot set this to the MAX size as you might exhaust kernel
memory(message buffer needs memory)
2. So it would be easier to monitor your Peak workload and monitor the
highest usage of these MQ and double this value to be comfortable.

Monitor these kernels usage via ipcs a/q/m and come up with a number.
I don't think there is generic value to be provided only thing..is it
has to come from Monitoring it.

cheers...
Shashi Mannepalli

Reply With Quote
  #3  
Old   
Troels Arvin
 
Posts: n/a

Default Re: Message queue sizing on Linux - 03-17-2010 , 11:22 AM



Hello,

On Feb 24, I wrote:
Quote:
DIA8557C No message was sent using the message queue. CALLED : OS, -,
msgsnd OSERR: EAGAIN (11) DATA #1 : system V
message queue identifier., PD_TYPE_SYSV_QUEUE_ID
I'm told that FP2 will contain some robustness work regarding DB2's
kernel parameter adjustments. And that FP3 will address the problem that
a LOAD may fail because of sub-optimal message queue sizing.

--
Troels

Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.