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 (?) supportActually, 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.Read Resources for Running Solaris OS on a Laptop

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%
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 LiveUpdate4. Install a second instance of the OS and enable it5. Boot into the second instance6. Perform a live update of the original installation7. Re-enable the original install8. 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:

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.