Re: Oracle RAC - Any formula to calculate/preempt the right number of LMS processes?

From: Riyaj Shamsudeen <riyaj.shamsudeen_at_gmail.com>
Date: Tue, 21 Jun 2011 11:14:57 -0500
Message-ID: <BANLkTikgooLwbdWpDVdqg2_MWo7x=fANrA_at_mail.gmail.com>



Hello Malik

  I am no RAC expert, seems like a ocean more to learn.

  I would agree with KG's comments with one enhancement. I would go with an odd number, 3 or 5, prior to 11g version. There is an internal bug (10.2) where the distribution of workload is non-uniform if # of LMS processes is an even number. ( I know, it is weird, but I don't have any more details, can't reproduce it, a RAC developer told me this few years ago, and seems like it is worth a risk to take making it a prime number. This comment does not apply to 11g and above. )

 As you have figured out, 11.2 by default, sets this parameter to more meaningful value. If you are looking for an algorithm, why not use 11.2 default algorithm, then? In this case, for 80 CPUs, formula will be 2+(80/32)= 4.5, round that up to 5.So, set gcs_server_processes to 5.

http://download.oracle.com/docs/cd/E14072_01/server.112/e10820/initparams088.htm

  Remember that just because LMS is running in RT priority (Solaris lingo) doesn't mean that it consumes CPU. RT simply bumps the LMS process to the front of the CPU run queue for immediate scheduling, if LMS needs to use CPU. You should also review to understand why LMS consuming CPU? CR fabrication or Current mode buffer creation (most common reasons) or is it due to some other reason?

Cheers

Riyaj Shamsudeen
Principal DBA,
Ora!nternals - http://www.orainternals.com - Specialists in Performance, RAC and EBS11i
Blog: http://orainternals.wordpress.com
OakTable member http://www.oaktable.com

Co-author of the books: Expert Oracle
Practices<http://tinyurl.com/book-expert-oracle-practices/>, Pro Oracle SQL, Expert PL/SQL
Practices<http://tinyurl.com/book-expert-plsql-practices>

On Tue, Jun 21, 2011 at 10:02 AM, K Gopalakrishnan <kaygopal_at_gmail.com>wrote:

> Malik,
>
> Are you running them in real time priority? If yes, you can reduce it to 4
> or (# of instances-1) and monitor the latencies of the RAC wait events/CPU
> usage of the LMS processes. AFAIK there is no magic formula for
> calculating the # of LMSs.
>
> One of the most common practices is to schedule the number of RT processes
> < # of CPUs to avoid spin/hang on CPUs. If your current settings works fine
> for your workload, I would stick to it.
>
> -Gopal
>
>
> On Tue, Jun 21, 2011 at 6:02 AM, PD Malik <pdthedba_at_gmail.com> wrote:
>
>> Hello,
>>
>> We are on 10gR2 5 node RAC (a huge and very busy DB) and also very high
>> number of CPUs (80ish) hence the default number of LMS processes that Oracle
>> generates for us (num_cpu dependant) is way too high and is causing CPU
>> consumption issue (due to their high priority) for some time now so we need
>> to look to reduce (and fix) them to a sensible number and going by RAC
>> expert Riyaz's advice we shud reduce them down to 4 (one for each 'other'
>> RAC node) which makes sense to us particularly becs if we were going 11g and
>> left this parameter to Oracle's default calculation it'll come down to 3.
>> (Current number of LMS processes : (Due to the varied number of CPUs ) - On
>> 2 nodes, 10, on 1 12 and on the other 2 : 8).
>>
>> Moreover, we've done the analysis and there are no major RAC wait events
>> (as in we are not much suffering from RAC) and we "think" we should be fine
>> by reducing these and obviously we'll take them thru to Performance Test to
>> gain some confidence.
>>
>> However the question is, is there any other mathematical way of getting to
>> just the right number of LMS processes for a RAC instance pls? Is there any
>> formula to predict them or even to predict if there will be any latency
>> impact by reducing these?
>>
>> Thanks in advance.
>>
>
>

--
http://www.freelists.org/webpage/oracle-l
Received on Tue Jun 21 2011 - 11:14:57 CDT

Original text of this message