SUMMARY: Can I use a 2nd CPU in an SS10 without "Major Changes"?

From: Dave (dburwell@telecom.com)
Date: Thu May 08 1997 - 18:02:42 CDT


ORIGINAL QUESTION:
> I have an SS10 running SunOS 4.1.4 that is acting as a workgroup server.
>With all of the processes that are running, it is getting kind of loaded
>down (smb, atalkd, lpd, mail, NFS, etc.). It currently has 32MB RAM.
> I have a second SS10 with its original CPU card + 32MB RAM that is unused
>at this time.
>1) Can I take that CPU S-Bus card out of #2, and plug it into the #1 SS10,
>and get an increase in performance?
> (The RAM will go too, but I am not worried about that).
> The kernel on the 1st machine is a sun4m, SunOS 4.1.4
>2) If the above are "yes", can I just power down, plug it in, and power up
>- or - is it a major OS reinstallation?
>
  The replies ranged from "Sure, no problem" to "No way, it can't be done".
  Short answer: YES, You can...BUT only if they are newer.
  In my case, it is something in between.
  In general, the newer SS10 have system boards & CPUs that will support
multi-processors. Mine were too old. BUT...I have a Sun service contract,
and they replaced the system board and the processors for FREE (except for
the $5k/ year HW Support contract). My original CPU was a SM30 (I think)
with no cache. I included a script file that told me that it was a Model 30
with a 36MHz CPU. These were replaced with SM40.
  Some of the replies said that adding RAM would improve things
tremendously. I bought some more RAM.
  SunOS 4.1.4 (Solaris 1.1.2) seems to support dual processors just fine. I
include a "top" listing at the end.
  While I was waiting for the service guy to show up, I called "Solar
Systems" in Preston WA. USA ( http://www.solarsys.com/ ), and ordered ten
16MB RAM modules ($75 each) and one Ross "Hyper-Sparc Dual 100" CPU module
($1,000). I ordered on Wed, they delivered on Thus. The Hyper-Sparc has two
Ross Hyper-Sparc chips and some cache on a single plug in card. The rep at
Solar Systems said that the Hyper-Sparc was compatible with Solaris 1.1.2
(SunOS 4.1.4). The Sun tech support guy was not completely convinced, but
we tried anyway. AND IT WORKS. The only "problem" is the CPU module takes
up two side-by-side slots in the chassis. There is room for two of these
CPU cards, for a total of 4 CPUs.
  The upgrade was as easy as:
down the system
undo the screws holding the system board in
R&R the system board
redo the screws
power it up
  We were done in 30min. I didn't have to change anything. There was
immediate improvement. With 128MB of RAM and dual CPUs, everything is MUCH
better. I will now think about changing to Sol2.5 o get better SMP
performance.

  TOP output. Notice the "run/1" or "run/0", and the "spin". I belive these
are telling me it is doing some Multi-Processing.

last pid: 4548; load averages: 0.14, 0.12, 0.00
15:26:19
104 processes: 102 sleeping, 2 running
CPU states: 0.4% user, 0.0% nice, 0.7% system, 98.9% idle, 0.0% spin
Memory: 115M available, 56M in use, 60M free, 3848K locked

  PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND
 4525 root 26 0 1472K 1760K run/1 0:01 0.00% 0.00% top
  408 root 1 0 1320K 1388K sleep 0:02 0.00% 0.00% _upsd
 3647 root -5 0 564K 652K run/0 0:03 0.00% 0.00% smbd
  149 root 15 -12 324K 472K sleep 0:00 0.00% 0.00% xntpd
  419 root 15 0 12K 8K sleep 0:46 0.00% 0.00% update
 1236 root 15 0 204K 0K sleep 0:00 0.00% 0.00% csh
    1 root 5 0 108K 0K sleep 0:00 0.00% 0.00% init
  837 root 3 0 64K 0K sleep 0:00 0.00% 0.00% getty
  131 root 3 0 52K 0K sleep 0:00 0.00% 0.00% rarpd
  128 root 3 0 52K 0K sleep 0:00 0.00% 0.00% rarpd
  127 root 3 0 52K 0K sleep 0:00 0.00% 0.00% rarpd
  357 root 1 0 756K 4348K sleep 0:02 0.00% 0.00% afpsrv
 2499 root 1 0 244K 1584K sleep 0:00 0.00% 0.00% perfmeter
  751 scarpent 1 0 980K 800K sleep 0:17 0.00% 0.00% afpsrv
 1380 root 1 0 596K 760K sleep 0:00 0.00% 0.00% smbd

  This is a script file that will deduse the CPU and model charactistics of
your system.

#!/bin/sh
#
# sunmodel
#
# Parse output from devinfo/prtconf
# and display the kind of Sun and its clock
# frequency.
# 24-mar-94 added Frame Buffer Kind printing
#
# Jan Wortelboer (janw@fwi.uva.nl)
# idea from Chris Metcalf, metcalf@lcs.mit.edu
# version 1.4 16 March 1993
version=`uname -r`
hostje=`uname -n`
name=
bname=
freq=0
cpus=0
cpu=
cpuc=
cpuf=0
name_freq=0
fb=
export name bname freq
case $version in
6.*|5.*)
        # solaris machine
        pr_conf="/usr/sbin/prtconf -vp"
        ;;
4.*)
        # sunos 4 machine
        pr_conf="/usr/etc/devinfo -vp"
        ;;
*)
        echo cant determine sunmodel
        exit 1
;;
esac

$pr_conf | \
  ( egrep 'clock-frequency:|name:|cgthree|cgsix|cgtwelve' ; echo end ) | \
  while read pr_line
do
        case $pr_line in
        clock-frequency:*)
                if [ "$freq" = 0 ]
                then
                        set $pr_line
                        hex_freq=`echo $2 | tr '[a-z]' '[A-Z]'`
                        freq=` ( echo "ibase=16" ; echo $hex_freq ) | bc`
                        freq=`expr $freq \/ 100000 | sed
's/\(.*\)\(.\)/\1.\2/'`
                else
                        set $pr_line
                        name_hex_freq=`echo $2 | tr '[a-z]' '[A-Z]'`

                name_freq=` ( echo "ibase=16" ; echo $name_hex_freq ) | bc`

name_freq=`expr $name_freq \/ 100000 | sed 's/\(.*\)\(.\)/\1.\2/'`
                fi
        ;;
        banner-name:*)
                bname=`echo $pr_line | sed 's/.*banner-name:[ ]*//'`
                #pcount=`echo $pr_line | sed 's/.*(\(.*\) X.*//'`
        ;;
        *cgthree*)
                fb=CG3
        ;;
        *cgsix*)
                fb=GX
        ;;
        *cgtwelve*)
                fb=GT
        ;;
        name:*)
                if [ "$name" = "" ]
                then
                        name=`echo $pr_line | sed 's/.*name:[ ]*//'`
                        if [ "$bname" = "" ]
                        then
                                bname=$name
                        fi
                fi
                case $name in
                        *4/20*)
                                bname="'SPARCstation SLC'"
                        ;;
                        *4/25*)
                                bname="'SPARCstation ELC'"
                        ;;
                        *4/40*)
                                bname="'SPARCstation IPC'"
                        ;;
                        *4/50*)
                                bname="'SPARCstation IPX'"
                        ;;
                        *4/60*)
                                bname="'SPARCstation 1'"
                        ;;
                        *4/65*)
                                bname="'SPARCstation 1+'"
                        ;;
                        *4/75*)
                                bname="'SPARCstation 2'"
                        ;;
                esac
                fname=`echo $pr_line | sed 's/.*name:[ ]*//'`
                case $fname in
                        *Cypress,CY605*)
                                cpu='Cypress,CY605'
                                cpus=`expr $cpus + 1`
                                cpuf=$name_freq
                                cpuc=
                        ;;
                        *TI,TMS390Z55*)
                                cpu="Texas Instruments TMS390Z55 1MB S.Cache"
                                cpus=`expr $cpus + 1`
                                cpuf=$name_freq
                                cpuc=1
                        ;;
                        *TI,TMS390Z50*)
                                cpu="Texas Instruments TMS390Z50"
                                cpus=`expr $cpus + 1`
                                cpuf=$name_freq
                                cpuc=
                        ;;
                        *TI,TMS390S10*)
                                cpu="Texas Instruments TMS390S10 (MicroSparc)"
                                cpus=`expr $cpus + 1`
                                cpuf=$name_freq
                                cpuc=
                        ;;
                esac
                name_freq=0
        ;;
        end)
                if [ $cpuf = 0 ]
                then
                        cpuf=$freq
                fi
if [ `expr "$bname" : "'.*39.Z.*'"` != 0 -a `expr "$bname" : ".*[21]000.*"`
= 0 ]
                then
                case $cpuf in
                        33.0|30.0)
                                if [ "$cpus" != 1 ]
                                then
                                        bname="$bname '(Model 2$cpus)'"
                                else
                                        bname="$bname '(Model 20)'"
                                fi
                                freq=$cpuf
                                ;;
                        36.0)
                                if [ "$cpus" != 1 ]
                                then
                                        bname="$bname '(Model 3$cpus)'"
                                else
                                        bname="$bname '(Model 30)'"
                                fi
                                freq=$cpuf
                                ;;
                        40.3)
                                if [ "$cpus" != 1 ]
                                then
                                        bname="$bname '(Model
4${cpus}${cpuc})'"
                                else
                                        bname="$bname '(Model 41)'"
                                fi
                                freq=$cpuf
                                ;;
                        45.0|50.0)
                                if [ "$cpus" != 1 ]
                                then
                                        bname="$bname '(Model
5${cpus}${cpuc})'"
                                else
                                        bname="$bname '(Model 51)'"
                                fi
                                freq=$cpuf
                                ;;
                esac
                else
                        if [ $cpus -gt 1 ]
                        then
                                bname="$bname ($cpus X $cpu cpus)"
                        fi
                fi
                echo Machine $hostje: $bname @ $cpuf MHz
        ;;
        *)
                echo -n
        ;;
        esac
done



This archive was generated by hypermail 2.1.2 : Fri Sep 28 2001 - 23:11:54 CDT