Getting a Feel for Solaris 10

Solaris has always had the edge over Linux when it comes to scalability; SunOS had its roots in big iron. As a FreeBSD user first and a Linux user second (and a Windows user a distant third), a lot of things felt very familiar inside Solaris 10. Sun's Java Desktop System, JDS, is immediately recognizable as a SUSE derivative. We won't touch on JDS too much in the next couple pages, but instead focus on the underlying kernel and some Solaris's more interesting and original features.

As we mentioned earlier, scalability is a big issue but if anyone can tackle that obstacle, it's Sun. Sun spent a lot of time getting Solaris 10 ready for x86, and as you will see in our benchmarks section, the "Slowlaris" moniker might be dead. Solaris 10 features a new scheduler that allows per-CPU optimizations as well as faster string functions, SSE2 support and new x86_64 specific libc system calls. Granted, we would like to see some SSE3 optimizations as well, but these features sound pretty good for now.

One of the neatest, unexpected features in Solaris 10 was Zones; also known as N1 Grid Containers. Zones behave very similar to UserMode Linux (UML); each Zone is a virtual instance of Solaris 10 with it's own IP address and user land. However, Zones are different because each virtual OS shares the base kernel. This is a huge performance boost for the virtual operating system because each instance is not constantly waiting for resources like in UML; they can just demand them when necessary. Zones can be configured to only utilize a specified amount of resources as well. Of course the downfall to this is if a single Zone is compromised, the whole system is effectively compromised. Fortunately, compromising a Solaris 10 system is not an easy task either; additional Process Rights Management and User Rights Management are prevalent in Solaris 10.

David Comay from Sun writes:

    One of the design goals of Zones was to ensure that if a single zone *was* compromised that the whole system would *not* also be compromised. We believe that we achieved that to a very large extent in Solaris 10. From an isolation perspective, the primary weakness is that there is a single kernel and if a user program somehow trips over a kernel bug and causes the system to panic, then of course, that affects the whole system. But from a security perspective, someone who is a privileged user (namely, root) in a zone can only cause damage to that zone and *not* the system as a whole. The virtualization that Zones provides ensures that they're not able to see, affect or modifyprocesses and their data running in other zones on the system.

Dynamic Tracing (DTrace) was another heavily hyped feature of Solaris 10, and rightfully so. DTrace, and it's scripting language D, allow an administrator or a developer to observe and debug problems in a production system with very little overhead. The problem with traditionally debugging tools like gdb, truss, pstack and ptrace is several fold:

  • We need to either monitor everything on the system, or only very specific processes - it would be impossible to trace every process on the system
  • We can only view a core dump of a snapshot in time - often times administrators and developers have transient problems
  • Usually, a program like gdb needs to halt or stop the system - in a production server this isn't acceptable
  • A poor debugging routine can actually be more detrimental than helpful - debugging a system incorrectly can actually bring it down, which is totally unacceptable at times

DTrace can effectively do the same as truss, pstack or ptrace but it can also be used on a production system without completely crippling it via "Probes" that are inserted all over the OS. Sun's DTrace introduction conference explains some of DTrace's functionality in a 40 minute session for those really interested in all of it's features. It's kind of like installing 30,000 debug statements all over the kernel, and allowing the admin to collect data from these probes whenever they would like via DTrace.

Solaris is really a developer's dream. During the V40z's brief stay in our labs, we actually used the machine extensively for development of our RTPE software platform; partially because the V40z is 10 times more powerful than our entire RTPE cluster, but partially because of DTrace, MDB and libumem. Using some of the examples from the DTrace introduction above, we were able to use the analyzer to isolate instances where some of our RTPE bots were getting preempted for supposedly no reason at all. Kudos to that team at Sun!

Just a few weeks ago Sun opened Solaris 10 to all with OpenSolaris; Sun's partially open sourced version of Solaris under the CDDL license. OpenSolaris now provides much of the OS core for modification, but not the entire OS just yet. According to the OpenSolaris roadmap, crypto and storage drivers should be available soon, which would be a great step forward for the entire FOSS community.

New Changes to the V40z But... (Solaris 10 Cont.)
Comments Locked

47 Comments

View All Comments

  • Den - Thursday, June 30, 2005 - link

    Interesting article, I am confused why you are dissapointed in the GCC complile time though. The dual core machine took 369 seconds (with 9 jobs) and the single took 603.18 seconds (with 5 jobs). 603.18/369=1.635 or 63.5% faster which is well in the 50-80% range. Your article says 43% faster, so maybe the GCC compile conclusion is based on a typo?
  • Kilim - Thursday, June 30, 2005 - link

    I saw the title to the PS3/XBOX article. It was a different one than the original article from last week. I clicked on it to read it and nothing showed up. It was an article critical of the CPU's on the two systems I believe. Matbe Anand find some insider stuff that was only limited to a few people inside MS. If so, I think the potential rewards of protecting the source is much better long term than getting them in trouble and burning a bridge. Along with the long term effects of insiders trusting Anand.
  • jwbaker - Thursday, June 30, 2005 - link

    You can no longer get v20z via ebay. I managed to buy a half-dozen of them for $1200-$1500 each, although I admit I had to collude with another buyer to do so. Probably Sun has enough traction with the v\d+z series that they no longer need the eBay channel.

    The only beef I have with the v-series is Sun can ben recalcitrant about supplying the voltage regulator modules. In the v20z there are four removable VRMs and if you bought a single-CPU machine, you only get 2. Additional VRMs sell in pairs for $175 but the lead time is indeterminant and sometimes very long.
  • Houdani - Thursday, June 30, 2005 - link

    32: The article was pulled in order to protect one of the anonymous sources (see comment #10).
  • hondaman - Thursday, June 30, 2005 - link

    Actually, no its not. RHEL is by far and away more widely distributed, and more likely to show results to the people who can most relate to this review.
  • finbarqs - Thursday, June 30, 2005 - link

    i did read the comments, but i still don't know why it was taken down... it just said that it wasn't up to kris to take the article down.
  • Houdani - Thursday, June 30, 2005 - link

    30: What's with the hate?

    And it was quite obvious to me there were multiple sources.
  • Questar - Thursday, June 30, 2005 - link

    So that article was based upon one source?!?!

    translation: It was crap, our source was an idiot.
  • yacoub - Thursday, June 30, 2005 - link

    Is there no performance increase seen with PC3200 RAM over PC2700?
  • PrinceXizor - Thursday, June 30, 2005 - link

    If whomever is really worried about protecting his "insider" source, you might want to contact Google to have them clear the article from their cache (I don't even know if that's possible).

    P-X

Log in

Don't have an account? Sign up now