Hardware
Summarizing virtualization technologies from Sun
Inspired by a recent discussion on Xen Discuss about what different virtualization solutions were available from Sun I thought I’d take the information provided by Volker A. Brandt and Bernd Schemmer and put it into a convenient table.
| Name | Sparc | x86 | Method | OS Kernel | Guest OS |
|---|---|---|---|---|---|
| xVM | - | X | software(1) | many | various |
| VirtualBox | - | X | software | many | various |
| Containers/Zones | X | X | software | one | Solaris/branded |
| LDOMs | X | - | hardware | many | Solaris(2) |
| Domains (Mx000 series) | X | - | hardware | many | Solaris |
| Domains (E10K, SF##K series, v1280, v4800) | X | - | hardware | many | Solaris, Linux |
Footnotes
(1) with CPU assistance for “full” virtualisation
(2) experimental Linux/BSD (?) support
Actually, Sun have a pretty good summary, but some of the technologies are hidden behind the hardware on which they run, for example LDOM is a firmware-level solution built into many of the SPARC hardware solutions.
Resources for Running Solaris OS on a Laptop
As Solaris gets more and more popular I’m seeing more and more people running Solaris on a laptop as their primary operating system. I’ve even got friends who have migrated over completely to Solaris from Linux. I’ve been using it for years and managed to tolerate some of the problems we had in the early days, but today it works brilliantly on many machines.
I came across this article on BigAdmin, it’s old, but a lot of the information is still perfectly valid.
General Purpose vs Specialized systems
Yesterday at Computerworld I talked about the X4150 and how it fits into a general purpose piece of hardware that can easily be redeployed and reused.
Interestingly I’ve just found this item in my blog post queue from way back in 2006, Jonathan Schwartz: The Rise of the General Purpose System, where Jonathan pretty much spells out that general purpose was the way to go. Obviously the X4150 is an embodiment of that belief.
Comparing 32-bit/64-bit MySQL on OpenSolaris
I’ve been working with the folks working on OpenSolaris for a few months now providing advice and input on getting MySQL and the connectors (C/ODBC and C/J) installed as a standard component. Having got the basics in, the team are now looking at adding both 32-bit and 64-bit packages.
The question raised at the end of last week was whether OpenSolaris should enable 64-bit builds by default in 64-bit installations, and whether there was a noticeable performance difference that would make this worthwhile.
I did some initial tests on Friday which showed that there was a small increase (10-15%) of the packaged 64-bit installations over 32-bit under x86 using snv_81. Tests were executed using the included sql-bench tool, and this was a single execution run of each package for 5.0.56. Transactions are missing because I hadn’t enabled transactions in the tests.
| Test (x86, binary packages) | 32-bit | 64-bit | +/- |
|---|---|---|---|
| ATIS | 20 | 17 | 17.65% |
| alter-table | 18 | 15 | 20.00% |
| big-tables | 14 | 11 | 27.27% |
| connect | 134 | 121 | 10.74% |
| create | 348 | 348 | 0.00% |
| insert | 1038 | 885 | 17.29% |
| select | 399 | 257 | 55.25% |
| transactions | |||
| wisconsin | 10 | 8 | 25.00% |
There are some significant differences there (like the 55% increase on SELECT speeds, for example), but a single execution is never a good test. Also, it’s unclear whether the differences are between the compilations, the platform or just pure coincidence. This requires further investigation.
As a coincidence, Krish Shankar posted these notes on using SunStudio 11 and SunStudio 12 and the right compiler flags to get the best optimization.
I decided to do 10-pass iterations of sql-bench and compare both 32-bit and 64-bit standard builds, the 32-bit standard builds against Krish’s optimizations, and finally 32-bit and 64-bit optimized builds.
Some notes on all the tests:
- All builds are 5.0.56
- All tests are run on SunOS 5.11, snv_81
- Tests are executed on the same OS and machine running in 64-bit. The SPARC tests are on an UltraSPARC IIIi@1.28GHz Workstation with 1GB RAM; x86 are on a Dell T105, Opteron 1212 with 4GB RAM. Of course we’re not comparing machine speed, just 32-bit binaries over 64-bit.
- All results are in seconds; lower values mean faster performance.
- In all tests I’m using the built-in defaults (i.e. no my.cnf anywhere) so as to simulate a standardized installation.
Let’s first look at x86 and the 32-bit standard and 32-bit optimized builds:
| Test (x86, 32-bit) | 32-bit (standard) | 32-bit (optimized) | +/- |
|---|---|---|---|
| ATIS | 15.4 | 21 | -26.67% |
| alter-table | 15 | 16.3 | -7.98% |
| big-tables | 13.7 | 12.5 | 9.60% |
| connect | 77.6 | 133 | -41.65% |
| create | 343.7 | 350.6 | -1.97% |
| insert | 760.3 | 1043.8 | -27.16% |
| select | 394.8 | 384.2 | 2.76% |
| transactions | 10.8 | 18.6 | -41.94% |
| wisconsin | 6.6 | 10.1 | -34.65% |
The standard build uses gcc instead of SunStudio, but I don’t get the same performance increases that Krish saw – in fact, I see reductions in performance, not improvements at all. I’m going to rebuild and retest, because I’m convinced there’s a problem here with the builds that I’m not otherwise seeing. I certainly don’t expect to get results that show a 27% reduction in insert speed. That said, a 10% big-table increase is interesting. I’ll redo these builds and find out if the slow down is as marked as it here.
Here’s the comparison for standard builds between 32-bit and 64-bit standard builds on x86:
| Test (x86, standard) | 32-bit | 64-bit | +/- |
|---|---|---|---|
| ATIS | 15.4 | 13.5 | 14.07% |
| alter-table | 15 | 10.6 | 41.51% |
| big-tables | 13.7 | 10.6 | 29.25% |
| connect | 77.6 | 76.4 | 1.57% |
| create | 343.7 | 346 | -0.66% |
| insert | 760.3 | 681.6 | 11.55% |
| select | 394.8 | 254.8 | 54.95% |
| transactions | 10.8 | 10.7 | 0.00% |
| wisconsin | 6.6 | 5.8 | 13.79% |
There are some incredible differences here – more than 50% increase in SELECT, and 30% for the big-tables test show that there is some advantage to having the 64-bit builds on x86 enabled.
Unfortunately I’ve had problems with the 64-bit optimized builds on my machine, so I haven’t completed optimized test comparisons.
On SPARC, Sun Studio is used as the default compiler, and the standard 32-bit and 64-bit show little difference:
| Test (SPARC, standard) | 32-bit | 64-bit | +/- |
|---|---|---|---|
| ATIS | 28.6 | 27.5 | 4.00% |
| alter-table | 27 | 26.7 | 1.12% |
| big-tables | 26.9 | 29.4 | -8.50% |
| connect | 166.3 | 173.6 | -4.21% |
| create | 155 | 143.1 | 8.32% |
| insert | 1577.3 | 1572.3 | 0.32% |
| select | 807.4 | 761.6 | 6.01% |
| transactions | 19.5 | 18.75 | 4.00% |
| wisconsin | 11.1 | 11.4 | -2.63% |
Overall, a pretty insignificant difference here.
Now let’s compare the standard and optimized builds using Krish’s flags on SPARC:
| Test (SPARC) | 32-bit (standard) | 32-bit (optimized) | +/- |
|---|---|---|---|
| ATIS | 28.6 | 27.75 | 3.06% |
| alter-table | 27 | 26.25 | 2.86% |
| big-tables | 26.9 | 25 | 7.60% |
| connect | 166.3 | 162.5 | 2.34% |
| create | 155 | 145.25 | 6.71% |
| insert | 1577.3 | 1551.5 | 1.66% |
| select | 807.4 | 769.625 | 4.91% |
| transactions | 19.5 | 16.875 | 15.561% |
| wisconsin | 11.1 | 10.875 | 2.07% |
The tests here show little significant difference between the standard and the optimized builds, although 6-7% would probably be enough to prefer an optimized build if you wanted to build your own.
Now let’s compare the optimized, Sun Studio 12 builds running in 32-bit and 64-bit:
| Test (SPARC, optimized) | 32-bit | 64-bit | +/- |
|---|---|---|---|
| ATIS | 27.75 | 27.3 | 1.65% |
| alter-table | 26.25 | 26.6 | -1.32% |
| big-tables | 25 | 25 | 0.00% |
| connect | 162.5 | 162 | 0.31% |
| create | 145.25 | 154.3 | -5.87% |
| insert | 1551.5 | 1535.1 | 1.07% |
| select | 769.625 | 771.2 | -0.20% |
| transactions | 16.875 | 19.1 | -11.65% |
| wisconsin | 10.875 | 10.7 | 1.64% |
The differences are virtually non-existent, and taking the reductions and increases in performance overall, there’s probably little difference.
The overall impression is that on x86 the improvement of 64-bit over 32-bit is significant enough that it’s probably a good idea to make 64-bit the default. On SPARC, the difference in the optimized builds is so slight that for compatibility reasons alone, 32-bit would probably make a better default.
I’ll probably be re-running these tests over the next week or so (particularly the x86 so I can get a true comparison of the 64-bit optimized improvements), and I’ll try the T1000 which I upgraded to snv_81 over the weekend, but I think indications are good enough to make a reasonable recommendation of 64-bit over 32-bit.
Setting up the new T105
So yesterday I mentioned the new Dell T105 I got on special offer. Setting up Solaris 10 on this new machine is a little more complex than I would have wanted, but it’s now up and running fine.
Here’s what I did to get Solaris b81 working:
1. SXDE b81 has a bug in that SATA CD-ROM/DVD-ROMs aren’t identified properly, so you need to use an older version (pre-b79 it seems) and then upgrade. So:
2. Install SXDE/SXCE b78 or earlier (I actually used Solaris Express 9/07, which is based on b70)
3. Install LiveUpdate
4. Install a second instance of the OS and enable it
5. Boot into the second instance
6. Perform a live update of the original installation
7. Re-enable the original install
8. Install the Broadcom Ethernet drivers from here if you want the built-in network driver to work (it wont be good enough for xVM because only legacy support is available).
That’s it – for full xVM I disabled the internal Ethernet card and then added a Realtek-based PCI Ethernet card and it works fine. I’m now in the process of setting up some additional domains (Gentoo, Windows).
ZFS resource update
I’m getting really deep into ZFS at the moment as I try and work out how best to use it in different environments and how it affects and alters performance on different loads.
I’ve across some great ZFS resources, new and old, and blog posts surrounding using ZFS:
- Second Installment of Our Series on ZFS
- New BigAdmin XPert Session on ZFS
- Ben Rockwood: Streamlining Zone Creation Thanks to ZFS Integration
- Ben Rockwood: ZFS within a Zone: Using Datasets
- Eric Schrock: New ZFS Features
For performance tuning there’s a great guide on the Solaris Internals Wiki which reads a lot like a ‘Don’t do this…’ guide, but has some useful tips too: ZFS Evil Tuning Guide.
And if you want to know about the comparison between hardware RAID and ZFS in terms of performance, Robert Milkowski has two posts on benchmarks: Part 1 and Part 2.
Twin 64-bit Opteron’s
I got a really good deal on some Dell servers. The T105’s were on special offer starting at just 99GBP, and even with 3-year support contracts and 4GB RAM I managed to get both for less than 500 GBP (+VAT). That’s a pretty good price for four cores of 64-bit computing.
The plan is to put Solaris b81 and xVM on at least one of these, and either Solaris or Linux on the other.
The main reason behind that is to get on top of some Solaris and Linux development work, but also to try and do some heavier testing on these platforms and try out some scalability solutions like DRBD and memcached. I’m hoping that as a testing environment, this solution will work out better from a performance and practicality point of view than using Parallels or VMware to run the test hosts.
Determining Solaris Support using Sun Device Detection Tool
Want to know whether your machine is capable of running Solaris?
I came across the Sun Device Detection Tool, a Java application that you can run straight from the browser (it’s a JNLP app) that will check the devices on your machine and then compare that against the devices known to work and then tell you if your hardware is going to be OK.
Sun say you don’t have to use the tool if your system is listed on the HCL, but I’ve found it to be a pretty useful for checking all sorts of machines even they are listed.
For a more detailed overview, Dennis Clarke has a detailed look at the 1.2 version here. The 2.0 release is the current one.
Sun Ultra 20M2 review
Not exactly a laptop, I reviewed Sun’s Ultra 20M2 desktop last year and completely forgot to mention it.
I loved the machine (it was fast, well configured and well put together) and I almost purchased my very own, until I got an alternative option just last week (of which more later). It wasn’t available at the time, but a reasonably priced and fully specced machine would make a wonderful xVM host.
Read the review at Free Software Magazine, where you can find out what I liked about the Sun Ultra 20M2.
XBOX360 and XBOX games
You know, I am consistently (and pleasantly) surprised at the compatibility of old XBOX games on the on the XBOX360. When you consider that the games are running and emulation (the platforms are completely different), the speed difference between the two is difficult to discern.
It is also interesting to see which games look as good when viewed at the higher res. Black, for example, looks just as good on my 20″ LCD panel and the XBOX360 at more than twice the resolution than it did on the XBOX. Far Cry, however, looks particularly pixellated at times.
The only time I use the original XBOX now is when playing Dancing Stage Unleashed where the screen and mat are easier to use together.
Geekbench results for iMac 24
I’ve just completed running Geekbench results for my 24″ iMac (3GB, Intel T7600, 2.33GHz) and the Sun Ultra 20M2 I have on test (4GB, AMD Opteron 1200 2.8GHz).
The overall rates are interesting:
The U20M2 is slightly faster, although in use I think it’s much faster.
I’m still completing some tests on the U20 under different operating systems on the U20 to see whether there is some advantage to different OS on the U20M2.
*: The iMac is updated to the latest BIOS and latest updates, with other applications not running
*: The U20M2 is updated to the BIOS and drivers (from the 1.4 driver update CD), with other applications not running
Sun announces new servers and workstations
Sun have announced a series of new servers and workstations, just as I finish up testing of the T1000 and begin testing of the Ultra 20M2.
The key elements are:
- An updated version of the T2000 servers under the Netra brand, designed for the needs of the telecommunications industry
- An improvement to the T1000 to improve reliability (by 23%) and boost disk performance by up to 300%
- New Ultra 25 workstation provides a 300% improvement in performance, designed for Java development
There’s a more detailed press release and a brief summary at Computerworld.
PCI Device list for Solaris x86
Sun have released an updated list of PCI devices for Solaris x86; check this if you plan to run Solaris on your PC.
Ultra 20M2 Arrived
Sun have very kindly me a sun Ultra 20M2 to test. I’ve only had it a few days, and already I’m hooked.
The spec of the unit they have sent me is:
- 1 AMD Opteron Model 1218 Processor (Dual Core)
- 4GB RAM
- 250GB SATA HD
- NVIDIA Quadra FX 3500 Graphics Card
- 20″ TFT LCD
The LCD monitor is superb, and highly recommended; I’ve been using an identical for years, as the Sun unit is a rebadged 20″ NEC unit (my NEC 2070NX only differs by the inclusion of a USB hub).
In use the machine is fast and very responsive. Raw computing power is available if you want it, but the dual core approach means that using the machine, even when compiling something in the background, remains just as responsive.
For an example of the raw power, I did a very simple test of building the 5.1 version of the MySQL Reference Manual in PDF format. This is a consuming process, as it converts the XML into FO (through XSLT) and then uses Apache’s FOP took to translate the FO into a PDF.
- Apple Mac Book Pro (2.16GHz Intel Core Duo): 13 minutes, 2.921 seconds
- Apple iMac (1.83GHz Intel Core Duo): 13 minutes, 26.779 seconds
- Sun Ultra 20M2 (2.8 GHz Opteron Model 1218 Dual Core): 8 minutes, 32.033 seconds
Full reviews, breakdowns, performance testing and other more detailed thoughts as time goes on.
Video guide to setting up the X4200
A Sun engineer provides a detailed (and occasionally light-hearted) look at how to set up an X4200 server through a series of video guides on YouTube.
Cool tools for hot laptops
Belkin have announced two cool tools for using your hot laptop – and I’m talking about the temperature here.
You can see them at Gizmodo: Belkin Releases Lap-Friendly CushTop, PocketTop Laptop Accessories.
The CushTop is the one I’m most interested in. I have a wooden unit that I’ve been using for the last seven or eight years that Sharon bought for Christmas. It’s great, particularly on the sofabed here in the office, or the bed proper, but it doesn’t work so great with the new squishy leather sofa. There’s a better description of the CushTop on the Belkin website (Belkin: CushTop). The price is good too, but I guess I’ll have to wait a bit for it to hit the UK.
The PocketTop looks good too, and I like the ability to keep all the cables with the laptop, but it’s not going to work with the 17″ MBP…
ATA-over-Ethernet for Solaris
I noticed for the first time recently the ATA over Ethernet product from Coraid.
There’s a Solaris driver available (impressively in both SPARC binary, Solaris 7+ (direct download) and source (direct download), under a BSD-like license. The release notes are required reading too.
ATA over Ethernet is an interesting concept, albeit an expensive one at the moment, but I like the idea of remote disks, rather than remote computers. The reason is simple: in many ways it would make much more sense for those situations where you want a lot of storage, but still with direct access to the hardware you want to use it on. Traditionally you’d use NFS for that, but that would require a cheap-ish server, which seems a waste. Move the hard disks away (for noise/heat reasons) and keep the CPU and graphics interface local; video production and even large (but not necessarily fast) databases.
Now marry up ATA over Ethernet with ZFS and you could have a phenomenal ZFS pool, accessibly directly from the desktop, and without the need to keep a unit like Thumper in a cabinet next to your desk.
Shame I probably wont get the chance to try it out.
T1000 ALOM rocks
I love the Advanced Lights Out Management (ALOM) module in the T1000.
The T1000 is kept downstairs, and the noise can be uncomfortable, but the ability to power up and down the T1000 remotely over the network makes using it and testing it so much easier.
ALOM should be standard on all computers!
Niagara II
The Niagara II architecture is on the way, and it promises to double the throughput of the original T1 (Niagara) CPU and provide a host of other benefits.
The Niagara CPU (T1) as provided in the T1000 (read my T1000 in more detail review) and T2000 (read T2000 faster than I need) support 8 cores, with 4 threads per core, and a single, shared, FPU. That single FPU becomes a problem in high volume floating point work, because it can slow down the work of all the other cores and threads.
The multiple threads make use of the slower access to RAM to trigger a context switch, so although they are not executing four threads simultaneously, the potential drop in performance of a single thread as it has to access more data enables another thread to run until the data is available. This enables you to get a lot of execution power out of the single core, based on the fact that it would otherwise be sitting there idle.
With the Niagara II CPU there are four significant improvements, based on the same eight-core approach:
- Doubling of thread support to eight simultaneous threads, and therefore 64 simultaneous threads on the one CPU.
- Each core now has it’s own FPU, improving the rate of floating point calculations.
- Upping of the CPU rate to 1.4GHz.
- Support for dual-CPU systems.
That last item is very interesting, because it means that you’ll be able to support a single system with 128 simultaneous threads. If Sun could squeeze that into a 1U unit like the T1000, you could support an impressive 5,376 simultaneous threads within a standard full-height rack.
Of course, to back that up, there are some additional changes. The replacement for the T1000 is expected to support 64GB RAM (twice the current) and the T2000 128GB (also twice the current), and 10Gb Ethernet will be standard on the motherboard.
The rest of the key features will remain the same, including the ability, through software, to control the individual cores and lower power consumption. I’ve mentioned it before, but I still think there could be potential for a portable version of the T1 – the Intel dual core CPUs show that multi-core technology of this type is something that can be applied in a laptop.
The Ultra 3 Mobile Workstation (read Ultra 3 Review) is not a small unit, although the size of the T1 CPU is such that it would take up a significant portion of the case…
Even a 4 core/4 thread version of the Niagara would be an interesting concept, and would keep the size and power requirements down.
Until then, I’ll just have to keep testing the T1000. I’ve spent 3 days now trying out the Cooltools, and I’ll probably be posting the preliminary results this week.
Photo blogging with the K800i
As planned, I got a K800i earlier this week, and it’s taken me the best part of the week to try and sort out all of the different elements. I already did a quick post on Convergence in mobile phones with the SE K800i at ComputerWorld, but I thought it would be worth looking at some of the other elements.
With Mac OS X, it doesn’t take much work to get everything set up, but it has taken me a while to sort out and organize some of the more fun elements. Getting the phone syncing with my address book was achieved using the plugin available from feisar.com.
To populate the audio so that I can use it for what I used to employ the iPod shuffle for, I used iTunes to create 128Kbps AAC files; when you connect the camera through the supplied USB cable, the Memory Stick Micro card appears on the desktop just like a USB thumb drive – so you can copy the files (including the folders) over so you can play them. Playback through the headphones is great. Through the built-in speaker, it’s good enough to use in a small room for some ambient noise. My only problem now is remembering to pick up the headphones each time I leave.
I’ve also set up the email for the phone so that I can pick up emergency messages on the phone when away from the office. The phone has it’s own email address (technically it has two, my own and one provided by the mobile phone operator (O2)), and I’ve set up some rules within sieve to forward specific types of message to the phone.
As I hoped (and to be honest, expected) the quality of the camera is superb, and I love the way you can use this to blog directly just by pressing a button (you can see the results and quality at Martin MC Brown’s Mobile Blog. OK, so I might be late to the whole mobile blogging thing, but honestly, it works so great that my mother could be doing this.
The camera itself works just like a Sony camera – you get the same controls, zoom, built in flash, auto-focus and you can set a full range of options, like metering mode, white balance and selected special photo subjects with corresponding optimized settings. The results are obviously less expansive than those on my Sony P200, but definitely a good range given that we are talking about the camera built into a mobile phone.
Having said for years I was never going to get a mobile phone with a built in camera, I can now imagine a situation where the walks to the post office or those ever-so-rare cat shots suddenly become possible (nay, necessary) when I can publish them straight to the blog from the phone.
Expect more photos and experience notes as I get to use the camera more. Afterall, I’m still yet to actually make or receive a phone call!