Posted by: Anonymous Coward
on October 16, 2006 02:58 PM
As Nexenta is a essentially the Solaris kernel (part of the OpenSolaris ON consolidation, which also contains the standard Solaris userland --<nobr> <wbr></nobr>/usr/xpg4, as well, etc.) plus a GNU userland, it retains *most* of the features that Solaris has. My earlier argument applies to Nexenta as much as it does Solaris, so I use the terms Nexenta and Solaris loosely.
Ideally, scalability has a linear property to it. By this I mean, if it scales well on 4 processors it should scale well on 64, and so fourth. Unfortunately, this is definitely not the case with most operating systems, though, Sun has done an excellent job over the years of making sure this is true (by not only an abundance of synchronization primitives, but only using them where they should be -- if they must be used, the adaptive case is always preferred over a spin lock . This not only yields better SMP performance, but safety, as well). For certain, we may know that Linux scales well on 8 processors, but to say it scales well on 64 processors (if it even supports this by now) would be a stretch. Likewise, Solaris scales well on a large number of CPUs, so it is conversely true that it would scale well on a small number of CPUs (the converse of this is not true -- the Linux case).
As for features that Solaris/Nexenta have that Linux does not have, which would be advantageous for anyone in a production environment, consider DTrace. If you haven't heard of it by now, DTrace is essentially the epitome of observability tools. It lets you *see* anything going on within the system (kernel-level *and* user-level) -- all in real-time with zero-probe effect (when you aren't observing there is no effect on performance). DTrace has tens of thousands of probes (currently about 40,000 in the latest Solaris Express release ) that let you see into all corners of your system. Whenever you enable one of these probes and it fires (the action related to the probe as occured, i.e. write() has returned) you know about it, and you can gather further information (how many bytes write() was originally called to write). Because DTrace can see so deeply into the system, it has *so* many uses -- from performance analysis, to debugging, to answering simple sysadmin questions (who's doing all the writing to the filesystem, who's doing all the writing to this file, etc.) Not to mention DTrace is highly extensible, as Perl, Java, and PHP providers have already been published (a provider provides probes -- in the case of PHP, you can trace whenever a script calls some arbitrary PHP function, if you like).
DTrace is just a single feature that Solaris/Nexenta have that Linux does not, or doubtfully ever will. SystemTap tries to accomplish what DTrace does, but it fails horribly, because even the simplest task that DTrace can accomplish usually causes a kernel-panic with SystemTap. More bluntly, DTrace is production-quality (this was an initial goal of the DTrace team) and SystemTap is not, like so many other Linux kernel additions.
Re:Why Nexenta when I already have Debian/Ubuntu?
Posted by: Anonymous Coward on October 16, 2006 02:58 PMIdeally, scalability has a linear property to it. By this I mean, if it scales well on 4 processors it should scale well on 64, and so fourth. Unfortunately, this is definitely not the case with most operating systems, though, Sun has done an excellent job over the years of making sure this is true (by not only an abundance of synchronization primitives, but only using them where they should be -- if they must be used, the adaptive case is always preferred over a spin lock . This not only yields better SMP performance, but safety, as well). For certain, we may know that Linux scales well on 8 processors, but to say it scales well on 64 processors (if it even supports this by now) would be a stretch. Likewise, Solaris scales well on a large number of CPUs, so it is conversely true that it would scale well on a small number of CPUs (the converse of this is not true -- the Linux case).
As for features that Solaris/Nexenta have that Linux does not have, which would be advantageous for anyone in a production environment, consider DTrace. If you haven't heard of it by now, DTrace is essentially the epitome of observability tools. It lets you *see* anything going on within the system (kernel-level *and* user-level) -- all in real-time with zero-probe effect (when you aren't observing there is no effect on performance). DTrace has tens of thousands of probes (currently about 40,000 in the latest Solaris Express release ) that let you see into all corners of your system. Whenever you enable one of these probes and it fires (the action related to the probe as occured, i.e. write() has returned) you know about it, and you can gather further information (how many bytes write() was originally called to write). Because DTrace can see so deeply into the system, it has *so* many uses -- from performance analysis, to debugging, to answering simple sysadmin questions (who's doing all the writing to the filesystem, who's doing all the writing to this file, etc.) Not to mention DTrace is highly extensible, as Perl, Java, and PHP providers have already been published (a provider provides probes -- in the case of PHP, you can trace whenever a script calls some arbitrary PHP function, if you like).
DTrace is just a single feature that Solaris/Nexenta have that Linux does not, or doubtfully ever will. SystemTap tries to accomplish what DTrace does, but it fails horribly, because even the simplest task that DTrace can accomplish usually causes a kernel-panic with SystemTap. More bluntly, DTrace is production-quality (this was an initial goal of the DTrace team) and SystemTap is not, like so many other Linux kernel additions.
#