Does Apple need to fix OS X Server?
I just read this article:
http://www.anandtech.com/mac/showdoc.aspx?i=2436
Being completely incapable of comprehending any mathematical concepts beyond simple addition, subtraction, etc and thus NOT A PROGRAMMMER and NOT AN ENGINEER I was only able to glean a moderate amount of information from the piece, but I got the gist of it. It seems to me that these guys know what they are doing and that Apple has some explaining to do.
Or do they? How important it MySQL in the server world? Does it matter to Apple and OS X Server?
Discuss.
http://www.anandtech.com/mac/showdoc.aspx?i=2436
Being completely incapable of comprehending any mathematical concepts beyond simple addition, subtraction, etc and thus NOT A PROGRAMMMER and NOT AN ENGINEER I was only able to glean a moderate amount of information from the piece, but I got the gist of it. It seems to me that these guys know what they are doing and that Apple has some explaining to do.
Or do they? How important it MySQL in the server world? Does it matter to Apple and OS X Server?
Discuss.
Comments
This link is going to be everywhere. I'll go sulk now.
OS X Tiger ..the Unix OS that doesn't perform.
As for MySQL performance, I think this post on Apple's darwin-dev list sounds authoritative:
http://lists.apple.com/archives/darw.../msg00072.html
Short version: MySQL on OS X *is* slower but this is a feature not a bug. It's slower because OS X actually forces a flush to disk (and not just into the drive buffer - but actually onto the platter.) Apple thinks this is correct behavior. Like so many things it is a speed vs. reliability trade off and Apple has choosen for maximum data saftey.
Presumably (I'm guessing a little bit here) MySQL could provide some way to compile from source where you could choose not to F_FULLFSYNC and thus trade some of the reliability for more speed if your particular context warranted such a decision.
But is that really the whole issue? What about Apache performance? Why is that so bad? I don't see how that could be an F_FULLFSYNC issue. So maybe there is something going on here.
And maybe it is about thread creation as the original Anandtech article speculated.
If so, possibly these old Jeremy Zawodny articles are of some interest:
http://jeremy.zawodny.com/blog/archives/000203.html
http://jeremy.zawodny.com/blog/archives/000697.html
I know OS X != FreeBSD, but there is some shared ancestery so maybe there is something here in terms of 'kernal threading' vs. 'user-level threading'. On the other hand I've seen people point to Apple tech documents (which are over my head) which apparently seem to suggest that you can have access to kernal threading in OS X. So this is somewhat of a mystery.
Maybe it's the case that a developer can, but that MySQL doesn't? Again, the details are over my head, I just want to deploy MySQL on OS X and not have it suck!
Can anyone shed any light here? And I'd love to hear any first hand experiences with large scale MySQL on OS X setups. And Apache too for that matter.
http://ridiculousfish.com/blog/?p=17
Check the comments especially. No final answers yet but a good discussion.
Originally posted by hmurchison
Wow what a surprise Apple gets demolished again. This is really unacceptable. Apple has been living off of polishing Open Source tools and they still managed to totally fuxor OS X performance. That's an amazing showing of ineptitude.
This link is going to be everywhere. I'll go sulk now.
OS X Tiger ..the Unix OS that doesn't perform.
What, you took the study at face value? Shame.
There's something fishy in their analysis. On the one hand, they claim not to do any writes, only reads, but then they provide write performance. Hmm. They don't seem to really understand the threading model in 10.4. Their use of terminology is highly imprecise and vague. All this leads me to believe that their methodology was sloppy, and I'd want to see the setup, from compilation of binaries used on each system all the way through the data analysis. (I mean come on, wouldn't it have been a better test to either run BSD on the x86, or Linux on the PPC against MacOS X? Sloppy.)
That being said, I'm glad they did it. Anytime someone can point out a piece of data that makes you go "Whaaaaaaaaa?" you're likely to learn something new... as long as you don't just accept it as gospel and run with it.
Something weird *is* going on - but their lack of thoroughness and rigor doesn't make me convinced it's solely happening in MacOS X.
If I had an army of servers and sysadmins to maintain them I'd consider using Linux en masse. But since its just me for now and I don't have major hosting demands, I'd rather save time and effort with respect to system setup and maintenance.
Besides, I'm a smart cookie and programmer. When I get to the point of profiling and optimization, I can find solutions and workarounds that will help speed up my code. Ideally these would also apply to Linux, as long as they are not OS X specific.
At the same time, I'm not using custom compiled versions of MySQL and PHP. I use MySQL's pre-compiled binaries and Marc Liyanage's packages. If I used better and machine-specific optimizations, I'd expect somewhat better performance.
Either way, better benchmarking by someone who is actually a Mac aficionado would likely be a good thing. I doubt Mac OS X would win, but at least the intentions and procedures would be better.