Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: Binding Oracle to two CPU's in a four CPU Sun Solaris 8 system........

Re: Binding Oracle to two CPU's in a four CPU Sun Solaris 8 system........

From: Tim Campbell <SunTimcX_at_mediaone.net>
Date: Fri, 02 Nov 2001 20:39:09 GMT
Message-ID: <3BE30478.1040809@mediaone.net>


Two different methods can solve this problem. First you need to know what CPUs are installed (if you had, say an E6500, then processors are not necessarily numbered sequentially and you MUST know the actual CPU numbers) - type 'psrinfo' and it'll return a list. Since you said you have an E450 and E450's can only have 4 CPU (and you have all 4 installed) then your CPU numbers must be 0, 1, 2, & 3.

Knowing this you can just type "pbind <cpu#> <process_id>".  This will restrict that PID to that CPU. "pbind" is inherited which means that if you pbind a process and that process spawns children then all the children will also be bound to that same CPU. That means that if you have a start script, and in the start script you inoke the pbind command to rebind the script's own PID (pbind 3 $$ would result in the PID being bound to cpu #3 (the fourth CPU)) to a CPU then all the processes that the script starts will stay on that same CPU.

This will restrict everything to just one CPU and you wanted them to run on two. You could pbind some processes to, say, CPU 2 and others to CPU3, or you could let them float and Solaris would schedule them as needed (which would probably yeild the best performance). To do this you psrset.

First create the processor set:

    psrset -c 2 3 (put processors 2 & 3 in a processor set which is created - the command returns the processor set ID).

Then use:

    psrset -b <processor_set_id> <pid>

If you do have a start script to fire up Oracle and program this into the top of the script then every Oracle process started will will be bound to the processor set (of 2 cpus) so that they'll float between them as Solaris deems best.

Have fun!

Regards
Tim

Scott Lawson wrote:

>Hi,
>
>Does anyone have an example of binding an Oracle server (we are using
>8.1.7 standard edition)
>to two CPU's on a four CPU system.
>
>Background. We have an E450 which we have installed Oracle on, this
>system has 4 CPU's. I
>wish to only allow Oracle to use two of these for it's processes, the
>remaining two I wish to be
>left alone. These other two I will use for Ingres.
>
>The system is running Solaris 8 01/01
>
>Any help on this would be much appreciated.
>
>I am guessing you use the Solaris pbind command.... (I have never used
>it though)
>
>Or is there any internal Oracle commands that can be used in the
>start-up scripts?
>
>Thanks,
>
>Scott.
>
>__________________________________________________________________
>
>Scott Lawson
>Systems Manager
>Department Of Information Services
>St. George's Hospital Medical School
>Tooting
>London SW17 0RE
>UK
>
>P: 44 (0)208 725 2896
>F: 44 (0)208 725 3583
>
>mailto:s.lawson_at_sghms.ac.uk
>
>http://www.sghms.ac.uk
>
>__________________________________________________________________
>
>Your mouse has moved.
>Windows must be restarted for the change to take effect.
>Reboot now? [OK]
>__________________________________________________________________
>
>
Received on Fri Nov 02 2001 - 14:39:09 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US