Personal tools
You are here: Home Domain Sunfire T2000
Document Actions

Sunfire T2000 Blog

by Perry Kundert last modified 2006-07-15 08:30

My 60 days with the Sun Fire T2000 Niagara...

Day 60: Breaking news...t2000-gkrellm-testparallel.png

Go straight to the performance tests.  The 'gkrellm' screenshot at the right was taking during the ANN (Artifical Neural Network) test, and shows the full utilization of all of the Niagara's cores/threads.


Day 1: 21Mar2006 - Getting started, bozo style.

It arrived today in 2 boxes; one containing the CPU, and one containing 2 power cords.  Instead of reading the instructions (which are online), I decided to hook up my serial terminal, and fire the unit up...  So, I plugged NET0 into my switch, and the terminal into the DB9 serial port, and plugged it in.   Surprise!

Hoover index: 0.5!

This baby needs to reside in its own room...  In fact, I don't know if I'll be able to keep it downstairs!  It's pretty loud.  Perhaps the OS will modulate the fans with heat output.  No hard drive lights, though...  There are stickers on top that indicate a power switch on the front activated by a pen.  Lets push that...

Hoover index: 1.0!

Now we get some serious noise!  3 additional fans start to cool the passively cooled Niagara.  Other than that, Nada.  No DHCP requests in my server's logs, nothing on my serial port (which isn't too surprising, as I was unsure that the serial cable I had was a Null-Modem cable).  Hard drive activity, though, so something is booting, but I have no indication of what's going on, on my terminal.  So, off to the web to get some documention.

How to really get started...

Unfortunately, the unit doesn't have DHCP configured on any interface.  Also, the decoy serial port on the back isn't configured as a console port -- in fact, the unit doesn't actually boot when it is plugged in, although it gets pretty noisy.  You need to access the ALOM (Advanced Lights Out Manager), which runs as soon as the unit is plugged in, to do some basic configuration before first boot.

You require a custom RJ45-DB9 or DB25 serial cable (not provided).  Easy enough to make, but...

Day 2: It's ALIVE!

t2000-rj45-scaled.jpgObtained the requisite RJ45-DB9 serial Null-Modem cable (a Cisco unit, actually.  Turns out they are pretty standard.)  As soon as you plug in one of the 2 power supplies, the ALOM will begin to boot (VxWorks!).  Once it completes an impressive array of self tests, I would suggest you fire up 'setupsc', to set up the network SC interface.  In particular, enable DHCP, so you don't have to keep this serial console around!

sc> showsc
Advanced Lights Out Manager CMT v1.0.2

parameter                value
---------                -----
if_network               true
if_modem                 false
if_emailalerts           true
netsc_tpelinktest        true
netsc_dhcp               true
netsc_ipaddr             0.0.0.0
netsc_ipnetmask          255.255.255.0
netsc_ipgateway          192.168.0.1
mgt_mailhost             192.168.0.1
mgt_mailalert(1)         root@kundert.ca 2
sc_customerinfo          Hard Consulting
sc_escapechars           #.
sc_powerondelay          true
sc_powerstatememory      false
sc_clipasswdecho         true
sc_cliprompt             sc
sc_clitimeout            0
sc_clieventlevel         2
sc_backupuserdata        true
diag_trigger             power-on-reset error-reset
diag_verbosity           normal
diag_level               max
diag_mode                normal
sys_autorunonerror       false
ser_baudrate             9600
ser_parity               none
ser_stopbits             1
ser_data                 8
netsc_enetaddr           00:14:4f:02:6b:7d
sys_enetaddr             00:14:4f:02:6b:74
sc>  

The hostname

The Carpathia was the ship that rescued the survivors from the Titanic.

I found some documentation somewhere describing a couple of methods for setting the hostname (I didn't set an "override" hostname during initial bootup configuration, like I should have, I guess).

I have not yet been able to get Solaris to request (or simply receive) its hostname from  my DHCP server (it is a Debian "dhcp3" dhcpd server).  So, I opted to set the name for the first interface in /etc/hostname.ipge0 and /etc/hostname6.ipge0.   I may have to use /etc/nodename instead, in the future, when I enable more interfaces (4 Gig-E ports!  Yowza...)

Day 3: Getting the Good Stuff...

I'm missing my handy "apt-get" -- if I'm ever missing some tool or applications, it's usually a matter of "apt-cache search boo", followed by "apt-get -u install boo-tools".  30 seconds, and I'm cooking with gas!

No such luck with Solaris, out of the box.  But, it looks like "pkg-get" is similar, and Blastwave provides a repository of "stable" and "unstable" packages for Solaris!

Logged in as 'root', I followed the excellent Blastwave HOWTO, and got pkg-get installed:

root@arpathia # cd /tmp; /usr/sfw/bin/wget http://www.blastwave.org/pkg_get.pkg
--12:06:23--  http://www.blastwave.org/pkg_get.pkg
           => `pkg_get.pkg'
Resolving www.blastwave.org... 207.61.151.12
Connecting to www.blastwave.org[207.61.151.12]:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 65,024 [text/plain]
...
## Installing part 1 of 1.
/opt/csw/bin/pkg-get
/opt/csw/etc/pkg-get.conf.csw
/opt/csw/share/man/man1m/pkg-get.1m
/var/pkg-get/admin-fullauto
[ verifying class <none> ]
## Executing postinstall script.

Installing /opt/csw/etc/pkg-get.conf.csw to pkg-get.conf

Installation of <CSWpkgget> was successful.

Other configuration stuff performed...

  • Changed /etc/default/login and su to have better SUPATH and PATH, as suggested in HOWTO.
  • Created /root home directory, and changed /etc/passwd entry for root to use it, and /usr/bin/bash as shell.
  • Installed wget using pkg-add, after temporarily adding /usr/sfw/bin/ to PATH to access the stock Solaris wget for installation.

Day 4: Patching...

Solaris patch management is handled by 'updatemanager' or 'smpatch'.  I used 'updatemanager' to begin with, to help with the required registration with Sun.  However, it was a disappointment.  It was fantastically slow, over a decently fast Cable internet connection.  Furthermore, after applying all the patches, I was unable to get the system to reboot correctly (to apply some of the patches that need to be done at reboot).

So, I swithced to the command-line 'smpatch analyze' and 'smpatch update' method, which correctly prepared the system to apply patches; an 'init 6' took care of that.

I also downloaded the Sun Studio 11 development tools, from here, in preparation for benchmarking and general development.  I'll be comparing the Sun and GNU C++ toolchains, later.

Day 5: All racked up and nowhere to go!

t2000-racked.jpgI obtained an old 1/2 height rack (thanks Woody!), and cleaned it up.  The Sun-supplied sliding frame rails and cable "hinge" worked perfectly, and were  of a very elegant and high-quality design, I must say!

The terminal is set to 9600BPS (as per Sun's instructions for the ALOM), and is also used as the local console for my Linux firewall/router/webserver/802.11/fileserver box.

Day 6: NO-OP

Day 7: More software...

Days 19: You Are Here...

If you are reading this, then Plone and Zope is running on the T2000!  It installed quite easily: pkg-get install zope, create a zope instance, and following the Moving a Plone Site instructions!

Presently, I am only using a single Zope instance to host this site; as a result, only one of the 32 hardware threads is being used to respond to all requests to http://perry.kundert.ca.  The plan is to implement ZEO (Zope Enterprise Objects) to provide many parallel (say, 8) zope instances sharing the same Zope database, and then use Pound (an HTTP request load balancer) as described in the Jazkarta's chapter on Administering and Scaling Plone to distribute requests to all 8 Zope instances.

Day 47: Finally! Performance stats.

The first of many performance measurements is done.  Basically, the T2000 looks to have about 4 times the throughput of an Athlon 2600 for compute intenstive primarily integer computations. 

One of the reasons it took me so long to do this, is because I got side-tracked writing a Python implementation of "spark-line" graphs.  These graphs can be generated on-demand, using a self-contained URL that contains the size, color, style and data points.  For example, lets say you want to track a few stocks.  You could use large graphs, or several smaller graphs inline with your text (ideally, generated from data collected by your web application.)  Instead of implementing the graphs directly using a graphing package, and serving up the graphics using your own bandwidth, you could use another web service to generate the graphs.  That was one reason.  The other was that I love my wife, and didn't want to ignore her.  :)  Uhh...  That last bit was my cute little wifey...



Go here for more details on this web service (and to learn how to use it in your own web pages).

Site by Sunflower Graphics
Powered by Plone, the Open Source Content Management System

This site conforms to the following standards: