The Pilot Is Expecting Some Turbulence Ahead
Unfortunately, the server this blog is hosted on is getting a wee bit flaky (for definitions of “wee bit” that involve “several times an hour”). While it isn’t crashing, it is hanging for several minutes at a time. This appears to be a UML bug, and probably an old one that has long since been fixed at that, but we have limited options in a addressing it for a host of reasons that you truly want to hear nothing about. To further complicate things, my DSL at home has become “intermittent” (the best kind, because it always comes up when you call tech support), so I can’t even host the blog there to achieve better uptimes.
The good news is, new hardware should be arriving soon, and with it an entirely new platform (built on OpenVZ). Cross your fingers and hope that all goes well, and maybe you’ll be able to read more mindless drivel from yours truly Really Soon Now.
Back in the Land of the Living
Well, our server crashed today. Weirdest bug I ever saw: we got a kernel oops when smartd tried to get health information from the drives in the 3ware RAID array. One of the drives appears to have malfunctioned, so perhaps that is related. The fragility was possibly caused by running a fairly up to date smartd on a fairly out of date kernel with SKAS patches… but it is far from clear. I need to test this out more to be sure of what the magic sequence was, but needless to say… it’s been an experience.
User Mode Linux performance tuning
I haven’t posted for a while, partly because I’ve been on vacation, but particularly because the UML instance I’m using has been behaving… poorly. Every time I post an article it seems to hang for quite some time (minutes, not seconds). I’m starting to get some ideas about what my problems might be.
So, it has taken me a while, but a few things have become apparent to me. First, and most likely the biggest contributor, is that I’m running a fairly new host glibc with a fairly old host kernel and then on top of that I’ve got a fairly new UML kernel. In particular, I suspect this is running in to problems with various bugs UML has had with NPTL.
On top of this, I realized I’ve had my UML kernels defaulting to using completely fair queuing, which is probably counter productive. It’s probably more efficient to get rid of queuing altogether and let things go right to the host, otherwise you get all kinds of ugliness from having two levels of IO scheduling going on.
Anyway, I’ve changed my IO scheduling, and hopefully this weekend I’ll be able to put together a new set of host/UML kernels built on 2.6.20 or maybe even newer (if I dare).
[Crossing fingers]
Is Solaris 10 the new Linux? 2
I don’t think so, but I have to admit that lately I’ve been having a hard time coming up with reasons for me to use Linux instead of Solaris 10 beyond “I know the technical underpinnings of Linux better” (which admittedly is a very good reason, but one that wouldn’t exactly be there for everyone).
Yes, the CDDL license isn’t ideal, but for most cases, it fits the category of “good enough”, and Sun appears to be considering relicensing under GPL. Yes, the hardware support isn’t as extensive as Linux, but so long as it works with my hardware, I could care less.
On the plus side, Solaris’ BrandZ virtualization beats it’s Linux equivalents for my needs (if you need a different kernels, then Xen would be a better choice, and if you want to debug Linux kernels UML would be a better choice). Solaris scales more smoothly than Linux, ZFS looks like it might be nicer than LVM/[ext3], etc.
Most importantly though, Solaris has DTrace. DTrace is one of those developers tools that just makes you drool the first time you have it explained to you. Heck, you can even use it now to figure out why all that AJAX/DHTML crud on a web page is so slow. You just know that one day DTrace is going to give you a great war story.
I was thinking of all this as I read Theo’s recent blog entries.
So what’s the catch? Well, I haven’t tried using Solaris 10 yet. In fact the last Solaris I dealt with much was probably Solaris 7. So I wonder how much of this is “grass is greener” and will seem much worse once I get to know it. So, I’m going to spin up a vmware image with Solaris on it and try it on for size a bit. For realistic work I will have to set it up on a box at some point, but this is the most painless way to get up and running with it. I’ll let you know what it’s like.