Sunfire T2000 Blog
My 60 days with the Sun Fire T2000 Niagara...
Day 60: Breaking news...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!
Obtained 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!
Advanced Lights Out Manager CMT v1.0.2
mgt_mailalert(1) firstname.lastname@example.org 2
sc_customerinfo Hard Consulting
diag_trigger power-on-reset error-reset
The hostnameThe 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
Resolving www.blastwave.org... 18.104.22.168
Connecting to www.blastwave.org[22.214.171.124]:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 65,024 [text/plain]
## Installing part 1 of 1.
[ 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!I 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).