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

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

Post by Scott Lawso » Sun, 04 Nov 2001 01:47:15



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


http://www.sghms.ac.uk

__________________________________________________________________

Your mouse has moved.
Windows must be restarted for the change to take effect.
Reboot now?  [OK]
__________________________________________________________________

 
 
 

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

Post by Tim Campbel » Sun, 04 Nov 2001 05:39:09


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


>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


>http://www.sghms.ac.uk

>__________________________________________________________________

>Your mouse has moved.
>Windows must be restarted for the change to take effect.
>Reboot now?  [OK]
>__________________________________________________________________


 
 
 

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

Post by Scott Lawso » Tue, 06 Nov 2001 18:19:45


Thanks, this is the answer I was looking for.


> 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


> >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


> >http://www.sghms.ac.uk

> >__________________________________________________________________

> >Your mouse has moved.
> >Windows must be restarted for the change to take effect.
> >Reboot now?  [OK]
> >__________________________________________________________________

--

__________________________________________________________________

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


http://www.sghms.ac.uk

__________________________________________________________________

Your mouse has moved.
Windows must be restarted for the change to take effect.
Reboot now?  [OK]
__________________________________________________________________

 
 
 

1. Sun license manager...1%cpu...1%cpu...50%cpu50%cpu50%cpu....

Hello,
    Is there a patch to fix this problem: Once and a while, the license manager
lmgrd.ste will peg a CPU (2 in this box) with activity.  It still manages the licenses
and can still receive lm messages (reread, shutdown).  This seems to happen, I have
noticed, if I ^C a compiler which is starting up.  When it goes down and I invoke it
again, it gives those annoying "socket in use" messages.  It eventually comes
completely up, but is not services licenses for those 5 minutes it complains
about sockets.  Any workarounds?

Scott

-----------------------------------------------------------------------------
    Real Time Enterprises                               | Scott MacKay

    Pittsford,NY 14534                                  | Real Time Enterprises
- Electronic Document Imaging - System Integration -    | (716) 383-1290
        - Software Development-                         | Postmaster
-----------------------------------------------------------------------------

2. Format a linux partition into an hfs partition

3. how to find CPU usages on 6-CPU Sun 3000 with Solaris 5.2?

4. How to tell if file is open by another process? (linux)

5. How do you deactivate some CPUs on a multi-CPU SUN box in Solaris?

6. Mounting ext2fs extended partitions in Solaris

7. High system CPU% in dual CPU System

8. Linux 2.5.20 kernel BUG at dcache.c:352

9. CPU system/user/cpu all zero?

10. testing individual cpu in multi-cpu system

11. CPU time used on 4 CPU's?

12. cpu load, multi cpu's

13. cpu-count > # of cpu's