Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
OS X Businesses Operating Systems Intel Software Apple Linux

No More Apple Mysteries Part Two 319

UltimaGuy writes "Anadtech has an article up comparing the IBM G5 with Intel's CPU. This gives us insight on the strength and weakness of Mac OS X. It also has some thoughts of what they perceive to be OS X's Achilles Heel." From the article: "That is what we'll be doing in this article: we will shed more light on the whole Apple versus x86 PC, IBM G5 versus Intel CPU discussion by showing you what the G5 is capable of when running Linux. This gives us insight on the strength and weakness of Mac OS X, as we compare Linux and Mac OS X on the same machine. The article won't answer all the questions that the first one had unintentionally created. As we told you in the previous article, Apple pointed out that Oracle and Sybase should fare better than MySQL on the Xserve platform. We will postpone the more in-depth database testing (including Oracle) to a later point in time, when we can test the new Apple Intel platform." This is the sequel to another article, reported on in June.
This discussion has been archived. No new comments can be posted.

No More Apple Mysteries Part Two

Comments Filter:
  • by Anonymous Coward on Friday September 02, 2005 @10:57AM (#13463880)
    It is clear that if you plan to run MySQL on Apple hardware, it is better to install YDL Linux than to use OS X. If you need excellent read performance, the maximum performance of your server will be up to 8 times better.
    I also find that neon lights and a clear side panel with a dragon decal on it helps.
  • MySQL? (Score:5, Interesting)

    by AKAImBatman ( 238306 ) * <akaimbatman@gmaYEATSil.com minus poet> on Friday September 02, 2005 @10:58AM (#13463885) Homepage Journal
    Why, oh why, do they insist on MySQL? They state in the article that they learned of the FSync bug in MySQL (which many of us pointed to last time). Why don't they throw PostgreSQL in there and see how it performs?
    • Re:MySQL? (Score:5, Informative)

      by cyberlotnet ( 182742 ) on Friday September 02, 2005 @11:05AM (#13463909) Homepage Journal
      Maybe because Anandtech runs there whole site on MySQL.

      Maybe because MySQL is where they have the most exp.

      Maybe because they have a huge database and testing tools already setup for there main site they can use for testing, which again is MySQL

      Why do the testing with MySQL? Ohh I don't know Maybe they just can
      • Re:MySQL? (Score:5, Insightful)

        by AKAImBatman ( 238306 ) * <akaimbatman@gmaYEATSil.com minus poet> on Friday September 02, 2005 @11:20AM (#13464007) Homepage Journal
        And none of that changes that fact that MySQL has problems on the Mac. If you know it has problems, then why continue beating a dead horse? If you want to test MySQL again, fine. But get another application for testing in there that isn't screwed up!
        • And none of that changes that fact that MySQL has problems on the Mac. If you know it has problems, then why continue beating a dead horse?
          Because they wanted to find out why it has problems on the Mac. And they seem to have found the answer in the way OSX handles threads.
          • No, they *think* the problem is threads. As another poster pointed out [slashdot.org] they're still plenty clueless about what's actually going on. Until they elminate a few more factors (such as software that doesn't work), they might as well make completely wild guesses.
            • Re:MySQL? (Score:4, Insightful)

              by Bun ( 34387 ) on Friday September 02, 2005 @01:49PM (#13465059)
              No, they *think* the problem is threads. As another poster pointed out they're still plenty clueless about what's actually going on.

              Arguments about when OS X got native threading (which is what your link there is about) are moot. What is at issue is the performance of the OS X threading architecture. From the article (by way of Apple):

              "POSIX thread (commonly referred to as a "pthread") is a lightweight wrapper around a Mach thread that enables it to be used by user-level processes. POSIX threads are the basis for all of the application-level threads."

              So the use of lmbench to get an idea of how fast OS X handles thread and process creation is valid. Therefore, your link does not invalidate the lmbench results of Johan's tests [anandtech.com], which were done as part of a search to find out why MySQL performed so much worse in OS X than in Linux on the same hardware. People can whine and say MySQL is broken, but you can't argue with the lmbench results. Process and thread creation in OS X is simply slow.
              • Re:MySQL? (Score:3, Informative)

                by disappear ( 21915 )
                lmbench isn't testing threading; it's testing forking. These are NOT THE SAME on all *nix OSes. Yes, the Linux model may be better --- Sun is switching to a similar model --- but on Mac OS X, fork =/= thread. Not even a little. Not even half.

                Yes, Mac OS X has lousy fork performance. Yes, this is a problem. No, that doesn't say anything about thread performance. Which might be lousy or wonderful, but is probably lousy.

                That said, you can pry my Powerbook out of my cold, dead hands. I'm looking forward to x8
        • Re:MySQL? (Score:3, Insightful)

          by cyberlotnet ( 182742 )
          When a prior test shows such extreme poor performance, at times a good review company will take the time to look into WHY That performance gap exists to make sure its not the fault of there tests and is indeed a issue with the hardware.

          They are not beating a dead horse, They saw a problem with either the platform or there testing methodoligy and did all they could to find the issue
      • by itomato ( 91092 )
        http://en.wikipedia.org/wiki/LAMP [wikipedia.org]

        Mostly because of that. It's not just Anand that uses MySQL primarily. They could use Postgres, but the acronym exists for a reason.

        You could have OSXAPP - OS X, Apache, Postgres, [Perl, PHP, Python, $P_Script_Language], but then you'd start wading into WebObjects waters..

        Speaking of, where is WebObjects in all of this? Does it factor into the bias? Apple lists the following Database Servers:

        * Microsoft SQL Server 2000 8.00.194 (?!)

    • Re:MySQL? (Score:5, Informative)

      by laptop006 ( 37721 ) on Friday September 02, 2005 @11:07AM (#13463922) Homepage Journal
      It's not a bug.

      It's just that unlike pretty much everything else out there Apple GUARENTEE that fsync won't return until the drive has actually written the data to disk, not just to its cache. To do this they require specific drive firmware from their vendors. In their docs they point out exactly how to stop this, it's just that mysql obviously made the decision that data integrity is more valuable then speed.

      (Oh, and OS X's task switcher sucks)
      • Re:MySQL? (Score:5, Informative)

        by AKAImBatman ( 238306 ) * <akaimbatman@gmaYEATSil.com minus poet> on Friday September 02, 2005 @11:13AM (#13463960) Homepage Journal
        It's not a bug.

        I was referring to the bug in MySQL, not the Mac. The Mac's behavior is correct. That's why PostgreSQL works fine. MySQL relied on Linux-specific behavior, and got burned. :-/

        In their docs they point out exactly how to stop this, it's just that mysql obviously made the decision that data integrity is more valuable then speed.

        Just be glad that we get secure data out of MySQL at all. Last time I tried to install MySQL on my Mac, there were big warning signs all over the place saying, "The Mac is buggy, your data is not safe! Run away, run away!" Of course, then an Apple guy stepped up and pointed out the fact that fsync worked exactly as it should, and that MySQL needed to fix their code. They've changed the code for better data security, but AFAIK they still haven't optimized for "correct" data integrity behavior.

        Oh, and OS X's task switcher sucks

        Amen. Drives me nuts, too, because the FreeBSD switcher really wasn't that bad. Here's hoping that Apple gets that fixed one of these days.
        • So, show us the numbers on PostgreeSQL. Judging from the fact that OS X can't even handle Apache (According to the article) the problems seem to be a bit deeper than a fsync bug.

          Apple told us that the problem lies in Apachebench (the client side), which stalls from time to time and thus generates too low of a load on the (Apache) server.

          This sounds like a flat out lie from Apple. Not the kind of behaviuor you should expect from a *nix vendor.
          • Re:MySQL? (Score:3, Funny)

            by fimbulvetr ( 598306 )
            This sounds like a flat out lie from Apple. Not the kind of behaviuor you should expect from a *nix vendor.

            Uhh, you've never worked with Sun Microsystems, have you?
            • Yes I have, I can see you point. But Solaris at least can run Apache with descent speed and mysql has at least in the past been targeted first for Solaris. It's not only Linux it runs good on.
        • So here's my question - has anyone written a patch for MySQL's source that us Mac users can apply and recompile to make it faster?
      • mysql obviously made the decision that data integrity is more valuable then speed.

        That would be a first for MySQL.

      • it's just that mysql obviously made the decision that data integrity is more valuable then speed.

        That'd be a first. Next thing they'll be implementing ACID features. Where will it all end?


      • ...mysql obviously made the decision that data integrity is more valuable then speed.

        When has MySQL ever done that?
    • Everying single time...

      if (DB == "mysql") {
            whyNotPostgreSQL();
      }
    • They also run apache and lmbench; I don't think you can say they "insist" on mysql...
    • Re:MySQL? (Score:3, Interesting)

      by keytoe ( 91531 )

      Why don't they throw PostgreSQL in there and see how it performs?

      Actually, if you have the Apple Remote Desktop Admin tools installed, you do have PostgreSQL installed. Only you don't have full access to it!. ARD uses it to store any collected stats you've pulled from your ARD clients - and they even provide you with directions on how to access that DB from outside ARD (eg, from a command line script). So far, pretty cool.

      Unless, that is, you actually want your own installation of PostgreSQL for othe

  • by aftk2 ( 556992 ) on Friday September 02, 2005 @11:05AM (#13463905) Homepage Journal
    The first thing jumps to mind is a typical fanboy response: "The Mac is a desktop computer. If it runs MySQL good enough for a prototyping environment, that's fine. Where else can you get a great desktop environment that just works, along with a built-in Unix-like OS?"

    But I should step back from that statement. It shouldn't be that way. We should have a truly world-class server combined with our desktop experience. I should be able to go from prototyping my web apps right to production, without a bunch of migration or guesstimation.

    I really like Mac OS X, but I'm not above recognizing if it's flawed in certain aspects. Any word on whether Mac OS X Server performs these types of operations better than the client? That would be interesting - somewhat troubling, but interesting (and perhaps not even that troubling.)
    • "The first thing jumps to mind is a typical fanboy response: "The Mac is a desktop computer. If it runs MySQL good enough for a prototyping environment, that's fine. Where else can you get a great desktop environment that just works, along with a built-in Unix-like OS?"

      I agree, but you have to look at Apple's stance with the Xserve. The earlier article that is listed in the post was devastating, almost to the point of 'who would want to deploy an Xserve as a server?' type of deal. If they deal with that
    • -- The first thing jumps to mind is a typical fanboy response

      The next thing that jumps to mind is...

      http://en.wikipedia.org/wiki/Straw_man [wikipedia.org]
    • priorities (Score:3, Insightful)

      Apple has priorities. Just like linux sucks on desktops and rocks on servers, Mac OS X sucks on servers and rocks on desktop
    • I should be able to go from prototyping my web apps right to production, without a bunch of migration or guesstimation.

      I agree with you in principle, but in practice nobody should ever be doing prototyping on the production system - period. Anyone who is doing that (or even doing general desktop tasks) on a server system that is intended for heavy-duty use has bigger problems. It's true that Apple have "focussed their resources on" the end-user experience for desktop use rather than on optimising for heav

  • by fshalor ( 133678 ) <fshalor@comcas t . net> on Friday September 02, 2005 @11:05AM (#13463906) Homepage Journal
    I would have rpefered Apple going with AMD opteron's or contracting one of their other beefy 64 bit chips. Why intel?

    I like the g5 chips, and sure the intel ones are okay. But it just seems like AMD would have been a better match for Apple.

    Oh well, I'll take what I can get.

    And I can't wait to move over a bunch of older intel's to mac os X. ;)_
    • ...Why intel?...

      One word: laptops.

      C//
    • I would have rpefered Apple going with AMD opteron's or contracting one of their other beefy 64 bit chips. Why intel?

      AMD has, and always will be, something of an ugly duckling in the industry. Intel is the giant, the name every investor recognizes. Also, I seriously doubt AMD gave Apple a better offer pricing-wise than Intel.

      I agree, it's disappointing, but among other things, there's nothing to guarantee that Apple won't, at some point, switch to/also offer AMD.

    • I would have rpefered Apple going with AMD opteron's or contracting one of their other beefy 64 bit chips. Why intel?

      If Apple were releasing a server today, it would probably make sense to have Opteron in it. We don't know what Apple's first Intel based Mac will be, and it sure as hell isn't being released today. The Pentium-M derivative that will apparently run the first Intel Macs will, by all accounts, be 64 bit. It will also be dual core. What's more, it should be entirely competitive with what AMD

    • by WombatControl ( 74685 ) on Friday September 02, 2005 @11:49AM (#13464252)

      Apple didn't choose AMD for a couple big reason. One of them was given by Steve Jobs when he announced the transition - Intel's roadmap offers better performance per watt of power than AMD or IBM can. Because laptops are taking a greater marketshare than desktops, it only makes sense for Apple to have a portable chip that produces the most bang for the least amount of power.

      The other issue is fab capacity. AMD doesn't have the capacity that Intel does. Apple got burned more than once by a lack of chips coming from Freescale/IBMs fabs. They do not want to go through that again, and AMD has trouble delivering large volumes of their top-of-the-line processors. They've gotten better, but Apple doesn't want to be held back by a lack of fab capacity.

      I use AMD for Windows and Linux, but Apple's business plan makes Intel the best fit for their future directions.

    • I would have rpefered Apple going with AMD opteron's or contracting one of their other beefy 64 bit chips. Why intel?

      Currently Steve Jobs is using Intel to beat IBM over the head. Officially PowerPC is out of the picture, but it hasn't been announced just when G5 will stop - will it go dual-core? How about low-voltage?

      Similarly, when Apple is largely x86 at some time in the future, Steve will have AMD to keep Intel honest.

      I expect we will see regular rumors of Apple switching to AMD, followed by nice p

  • by Durandal64 ( 658649 ) on Friday September 02, 2005 @11:06AM (#13463917)
    This guy said he'd run each OS through workstation-like tests, but all I see is a bunch of server tests and a lame "isolate the FPU" test.

    And calling OS X's threading its "Achilles heel" is a bit short-sighted and belies an ignorance of OS design choices. Mac OS X adds an extra layer of communication for threading, so you can have user-space threads. This of course, comes with a performance penalty. In Linux, everything is a kernel thread. This gives it a big performance advantage, making it appropriate for servers operating under controlled conditions, as the tests indicate. However, OS X's design choice makes for more secure communication between user-space threads and the kernel, which gives an advantage in the workstation-space, since you can keep a user process from running amok in the kernel.

    I've always said that Linux is a great server OS, and these tests certainly show that. But they're very tilted toward Linux's strengths and OS X's weaknesses, so OS X comes out looking like a ball-and-chain on Apple hardware. The author made a fundamental mistake in assuming that server stress tests were the be-all and end-all of performance computing, and that's just not true. OS X's designers made different design choices than the Linux designers did. These aren't choices that can be "fixed".

    All he's shown here is that OS X is not appropriate for a high-demand, single-application server, and that's not really news to anyone. At the desktop level, no one's going to be working with thousands of simultaneous threads.
    • by Red Flayer ( 890720 ) on Friday September 02, 2005 @11:15AM (#13463968) Journal
      "At the desktop level, no one's going to be working with thousands of simultaneous threads.

      Although, that would explain the quality of /. moderation.

      jk... I think it works quite well in general.

    • by Anonymous Coward
      All he's shown here is that OS X is not appropriate for a high-demand, single-application server, and that's not really news to anyone. At the desktop level, no one's going to be working with thousands of simultaneous threads.

      I agree with you, but only to a certain point.

      It might be okay to make the arguments you're making, except that Apple is increasingly marketing its systems as performance "serverish" machines in competition with other UNIX systems. I'm not saying that this is correct or incorrect, but
    • by diegocgteleline.es ( 653730 ) on Friday September 02, 2005 @12:20PM (#13464501)
      This of course, comes with a performance penalty. In Linux, everything is a kernel thread. This gives it a big performance advantage, making it appropriate for servers operating under controlled conditions, as the tests indicate. However, OS X's design choice makes for more secure communication between user-space threads and the kernel, which gives an advantage in the workstation-space, since you can keep a user process from running amok in the kernel.

      Except that people who implements M:N-style threading like mac os x believe that it can be fast (reasonabily fast)

      Not having achieved it (still) is a "achilles heel" indeed. Apple has to work on that and make their threading implementation performant

      There's a very good post [theaimsgroup.com] from Ingo Molnar explaining why linux chose 1:1 and not M:N, and he points out a possible "users-space threads" issues:

      "Plus there are other issues like security - it's perfectly reasonable in the 1:1 model for a certain set of server threads to drop all privileges to do the more dangerous stuff. (while there is no such thing as absolute security and separation in a threaded app, dropping privileges can avoid certain classes of exploits)"

      Also, expect desktop apps to start using threads heavily (in the future) to use multi-core CPUs
      • Unlikely .. (Score:5, Informative)

        by BeanThere ( 28381 ) on Friday September 02, 2005 @01:28PM (#13464883)

        Also, expect desktop apps to start using threads heavily (in the future) to use multi-core CPUs

        Unlikely. Just because you can, doesn't mean there is any good reason to, and most desktop application developers will have absolutely no reason to bother with threads at all. The vast majority of desktop apps just sit idle most the time, and even the odd moment when they're busy it's mostly just to do basic things like redraw buttons etc. Thus threads will provide a grand total of zero benefit in almost all desktop applications --- yet they come at a cost to developers in that they increase software design complexity and make debugging harder. Most desktop application functionality is inherently synchronous too (driven by user interaction), so I think very few applications will benefit from being multi-threaded. Applications that might are e.g. word processors with background spellchecking and grammar checking, but really, these are still only going to launch a small handful of threads at most. Even CAD apps and applications like Photoshop that do occasionally require lots of CPU when activating certain functions will draw comparatively little benefit from increased design complexity in making a few processor intensive functions utilise multiple threads.

    • "However, OS X's design choice makes for more secure communication between user-space threads and the kernel, which gives an advantage in the workstation-space, since you can keep a user process from running amok in the kernel. "

      Um... what? Linux migrated away from userthreads because it sucks. OS X has also migrated away from userthreads and now uses kernelthreads. Both use pthreads.

      "The author made a fundamental mistake in assuming that server stress tests were the be-all and end-all of performance comput
  • by Visaris ( 553352 ) on Friday September 02, 2005 @11:06AM (#13463919) Journal
    The most interesting parts for me were the fork() times and IPC benchmarks. 0SX was considerably slower in these areas. Is this an nptl issue?

    • The most interesting parts for me were the fork() times and IPC benchmarks. 0SX was considerably slower in these areas. Is this an nptl issue?

      Boy, I'd give my left - ah - ear hair maybe? pinkie fingernail clippings? whatever - if Avie Tevanian and/or some of the FreeBSD committee members would get on here and talk about the Carnegie-Mellon/Utah/Whosesoever's microkernel and the FreeBSD threading layer and all the cool stuff that I've always wished I knew more about ever since I cut my teeth on a NeXTstat

  • by Anonymous Coward on Friday September 02, 2005 @11:07AM (#13463923)
    I tried for three days to get bluetooth to work on my pc laptop, and never did. I did it with a powerbook in 3 minutes. That's the performance I'm concerned about, not a few seconds here or there.
    • I tried for three days to get bluetooth to work on my pc laptop, and never did.

      Me either ... and I don't have a Powerbook. Hm.
    • Amen! And my pc still wont suspend or hibernate with bluetooth enabled!??! And you can't download an updated bluetooth driver?!?

      The one advantage of bluetooth on windows albeit with the severely bloated widcomm stack is that it offers a boatload of profiles and services compared to the mac side. On windows you can use the computer as a bluetooth headset or DUN target.. Try as I might I have never figured out how to use my powerbook as a speakerphone, which would be a killer app for me.
  • Really... (Score:4, Insightful)

    by Otter ( 3800 ) on Friday September 02, 2005 @11:12AM (#13463955) Journal
    So, as we get to know the strengths and weaknesses about this complex but unique OS, we'll get insight into the kind of consumers who would own an Intel based machine with Mac OS X - besides the people who are in love with Apple's gorgeous cases of course....

    I think it tells you something about the mentality at AnandTech that the only criteria they have for choosing a computer are: 1) performance in a benchmark that has nothing to do with any normal user's needs and 2) the shininess of the case.

    I think I speak for most Mac users when I say that I couldn't possibly care less how many MySQL transactions my computer could (but doesn't) run per second. There is undoubtedly a more cost-effective way of building a dedicated MySQL server, and they should be used -- as long as I get to keep a Mac on my desk to connect to it.

    • Comment removed based on user account deletion
    • Re:Really... (Score:5, Insightful)

      by LurkerXXX ( 667952 ) on Friday September 02, 2005 @01:15PM (#13464807)
      I think I speak for most Mac users when I say that I couldn't possibly care less how many MySQL transactions my computer could (but doesn't) run per second. There is undoubtedly a more cost-effective way of building a dedicated MySQL server, and they should be used -- as long as I get to keep a Mac on my desk to connect to it.

      That's all nice and all for you, but Apple does sell these things the call XServe's that are supposed to be "servers". And they run an OS called OS X "Server". Some of us really do run servers and it's informative to us for deciding if we should include a G5 or OS X Server as an option for new servers we need. I'm terribly sorry it doesn't interest most Mac users, but it certainly interests some of us. If you don't care, just skip the article.

  • Hrmmm (Score:3, Insightful)

    by BlueGecko ( 109058 ) <benjamin.pollack@ g m a i l . c om> on Friday September 02, 2005 @11:12AM (#13463957) Homepage
    I always get nervous whenever I'm reading something that's a bit over my head but seems to make sense, and then I come to something where the author has no idea what he's talking about. On page 7, the author writes:
    Readers pointed out that there were two errors in this sentence. The first one is that Mac OS X does use kernelthreads, and this is completely true. My confusion came from the fact that FreeBSD 4.x and older - which was part of the OS X kernel until Tiger came along - did not implement kernelthreads; rather, only userthreads.
    The problem is that this correction is still wrong. OS X has never been based on FreeBSD's kernel. Although it has strived to ensure its BSD API matches FreeBSD, and has even ported over some custom extensions (such as kqueue), OS X's kernel has always been based on OPENSTEP's--a Mach microkernel with custom Unix services above it. OS X has had native threads since OS X 10.0 through the NSThread and Carbon Multiprocessing APIs. I don't know whether POSIX threads followed a different route, but the statement that OS X only got native threads in Tiger is simply wrong.
    • Re:Hrmmm (Score:5, Informative)

      by AKAImBatman ( 238306 ) * <akaimbatman@gmaYEATSil.com minus poet> on Friday September 02, 2005 @11:36AM (#13464140) Homepage Journal
      The problem is that this correction is still wrong. OS X has never been based on FreeBSD's kernel.

      Better, but still imprecise. The Mach kernel isn't actually a full kernel. It's a super-kernel on top of a traditional Unix kernel. For testing, the Mach research project used the BSD 4.3 and 4.4 kernels as the basis for the Mach code. By the time of Rhapsody (later OS X), however, BSD 4.x was an extremely old codebase and was in dire need of updating. So Apple did what any smart programmer would do. They grabbed the most recent evolution of the kernel source (FreeBSD) and used that as the core.

      That being said, the FreeBSD part doesn't do a whole hell of a lot. Apple has mostly replaced the traditional Unix bits with NextStep Frameworks. The advantage to these frameworks is that they're much more object oriented and easier to work with than their rather primitive ancestors. The downside is that these frameworks are written in ObjectiveC, which means fun times for driver writers. :-/
      • Gah, I knew I should have checked that:

        s/used the BSD 4.3 and 4.4 kernels/used the BSD 4.2 and 4.3 kernels/g

        The earlier versions of Mach required a Unix license to experiment with, while the later versions were completely free thanks to the 4.3 version being completely free from USL source.

        More info on the Mach kernel (and why it was actually not a good implementation) here [wikipedia.org]. Note that the OS X XNU kernel has been changed to eliminate the most problematic performance issues.
    • Wait, WTF? (Score:5, Informative)

      by mcc ( 14761 ) <amcclure@purdue.edu> on Friday September 02, 2005 @11:46AM (#13464229) Homepage
      OS X has never been based on FreeBSD's kernel. ... OS X's kernel has always been based on OPENSTEP's--a Mach microkernel with custom Unix services above it.

      And where do you think those UNIX services come from?

      Because the answer is, FreeBSD [kernelthread.com].

      Mach isn't a kernel by itself, it provides very low level services and "hosts" the rest of the kernel (though Darwin blurs this line somewhat, such that the mach microkernel and hosted freebsd kernel are technically the same entity). FreeBSD isn't the entire kernel (and its portion of the kernel isn't the part that provides threading services, see link above) but it is still in the kernel and still provides crucial functionality, and serves as a replacement for certain things which in the pre-OS X kernel used to be provided by OpenStep code.
    • Just wanted to chime in with these two links, describing the architecture:

      - Architecture of MacOS X [kernelthread.com]
      - XNU: The Kernel [kernelthread.com]

      and then some more from Apple on Darwin:

      - Darwin Documentation [apple.com]
    • Are you joking?

      VFS, the filesystem, the whole TCP/IP layer, the POSIX API, all of that cames from FreeBSD code and that's quite a lot of code.

      Yes, mac os x uses openstep's kernel. But then, openstep kernel used freebsd code aswell....

      I remember a presentation from apple showing percentages of how much code comes from each variant. BSD code was most of it, with the IOKIT being second and MACH-derived code being the last - less than 10%. Shame that I didn't bookmark it...
  • by MikeyTheK ( 873329 ) on Friday September 02, 2005 @11:14AM (#13463963)
    After reading the thing, here you go: OSX Server is significantly slower than Yellow Dog Linux (Server)running the Big Three on a G5. How many people try to run enormous traffic sites on OSX Server? Nobody?
    It seemed that the authors were trying to make a point about the G5 vs. X86, and why Apple switched, but unless I missed it, there isn't any discussion of OSX Server on X86, or the opportunities that brings. It only seems to discuss OSXS vs. YDL on G5's. OK, Linux is faster. So? I don't get it.
    • by mcc ( 14761 )
      but unless I missed it, there isn't any discussion of OSX Server on X86

      I assume this is because you cannot legally get OSX Server on X86 right now, nor is it even finished, making it simultaneously impossible and silly to include it in a series of performance testing articles?
      • by hexix ( 9514 )
        No, but you could run YDL on both a G5 and a X86 processor and perform benchmarks.

        I agree with the grand parent, I expected a nice comparison of G5 to X86 by using the same OS and applications on each. Obviously this wouldn't be a conclusive experiment as there's always optimizations which usually favor the more popular X86 platform, but still, it would be interesting.

    • How many people try to run enormous traffic sites on OSX Server? Nobody?

      Umm .. how about apple.com? [apple.com]
  • Software (Score:2, Interesting)

    by jacklexbox ( 912121 )
    Linux is awesome, I'm not denying that, but its OS X server that matters, even if it may be slower, It's great to use as a school website server, and as a workstation at the same time. Not to mention that Server Admin, and a couple of the other applications for OS X server management make it a breeze to keep up to date, and running properly, as well as for initial configuration. Linux just couldn't do that for us. (read, not all super technical people dealing with the server next year).
    • I would like you to tell us all just what sort of rocket science is required for maintaining such a machine if it is a Linux box (as opposed to OSX).
  • by aliquis ( 678370 ) on Friday September 02, 2005 @11:25AM (#13464043)
    Ok, MacOS X server performance is crap, not news. G5 is an ok to good CPU, not news either.

    The question is, is it possible to get a non-apple G5 system since Apple will go the (W)intel route?

    I know about Genesis/Pegasos PPC systems but the current ones uses G4s and the not-in-a-distant-future will use the PPC7448(?). But what about PPC970, can we expect them from Genesis aswell or does IBM or someone else make machines with them?
  • iSQL (Score:4, Funny)

    by RUFFyamahaRYDER ( 887557 ) <slashdot@@@kelsdomain...com> on Friday September 02, 2005 @11:26AM (#13464052) Homepage
    No worries... Apple will come out with iSQL and things will be all better.
  • by SamSeaborn ( 724276 ) on Friday September 02, 2005 @11:30AM (#13464087)
    I looked at the article, but I'm confused. Where's the pretty graphs showing that Mac is better than Windows?

    Sam

  • Any idea when the Mac Mini will hit x86? Everyone else has tried to release a Mac Mini clone at x86 and failed, I want to see if Apple can do it successfully.

    Plus I wanna get one.
  • by Anonymous Coward on Friday September 02, 2005 @12:19PM (#13464492)
    Blah blah blah, benchmarks are nice, but here's the real scoop:

    I have a dual 2ghz PowerMac G5, a 3.4ghz Dell Opitplex and a 3.6ghz Developer Transition Kit. I use my G5 as my main computer at home and my Dell and DTK as my main machine at work.

    The DTK smokes my dual 2ghz badly, and runs PPC apps in Rosetta at seemingly only slightly slower speeds than my G5. Graphics functions on the DTK smoke my dual G5 with the high-end (at the time) NVidia card it came with. Apps load much faster, Safari is much faster, everything I use is much faster.

    The DTK's UI responsiveness is quicker than my Dell 3.4ghz running Win2003 with all hardware accel turned on. OS X has always been more sluggish for me than Windows, but I had to chuckle when I logged into my Dell after using the DTK for a week exclusively and noticing the Dell UI responsiveness slightly lagging.

    It's also important to note that the NeXT ABI is probably much more suited to x86 than PPC.

    This is a great thing for Apple, and their Intel-based machines are going to impress and wow people.
  • Ah, a comparison of fork performance between OS X and Linux. I've always known that fork is horrifically slow on Darwin, and this proves it. Incidentally, this is the main reason I've switched to Linux on my iBook. But there are others: dynamic library vs. framework weirdness, memory-hungry GUI, and the slow and slightly unreliable filesystem (compared to reiserfs).
  • by javaxman ( 705658 ) on Friday September 02, 2005 @01:06PM (#13464750) Journal
    I'm sorry, I generally love AnandTech, but...

    how hard would it be to write an extremely simple program that calls pthread() in a loop, counts the threads, and issues a timestamp?

    If you think the bottleneck is in thread creation, test thread creation, not fork(). They're not the same, and OS X does enough odd stuff with processes that I'd not be shocked in fork() had a bunch of extra process-related overhead that pthread() does not.

    I'm not saying that thread creation isn't slow on OS X- it likely is... but please, if we suspect that's the problem, *that* is what we want to see tested! This article and AnandTech's testing methodology somehow explicitly misses the point of what they think the problem is... and it doesn't seem like it should be difficult *at all* to write a simple test to address *exactly* that problem.

    Write a simple pthread() benchmark. The code could probably fit on one screen. Publish the code, run the test, file a bug with Apple, be done with it. A simple pthread() benchmark will tell us if the problem is in pthread() or fork() at this point, wouldn't that be nice to know *for sure*, so we don't have to speculate?

    All this mucking about with MySQL doesn't tell us where the problem is, and I don't understand what's so difficult about coming up with a simple, pure pthread() benchmark... again, I *do* agree with the author and think OS X pthread() is the problem, I'd just like to see a simple, pure test that *shows* that it's *the* problem, so I can file a bug with Apple...

    • by Guy Harris ( 3803 ) <guy@alum.mit.edu> on Friday September 02, 2005 @09:46PM (#13467885)
      OS X does enough odd stuff with processes that I'd not be shocked in fork() had a bunch of extra process-related overhead that pthread() does not.

      Heck, it'd not be shocked if fork() on Linux had extra overhead that pthread_create() didn't. It might, for example, be duplicating the address space; fork() is copy-on-write (on most if not all UN*Xes, including OS X and Linux) so that the data in the address space doesn't get copied, but the address space data structures might have to be duplicated, and resident writeable pages would have to get marked non-writeable in the MMU so that an attempt by parent or child to store into them would provoke a copy.

  • OS X lacking (Score:4, Interesting)

    by MECC ( 8478 ) * on Friday September 02, 2005 @01:18PM (#13464822)
    It seems to me as though the article didn't point to a single weakness, but the fact that signaling, IPC and thread creation were all slower in OSX compared to linux. While it seemed clear that the threading performance was a bigger factor for MySQL, I can't help but wonder how much better all other aspects of OSX might improve if thread creation, signaling, and IPC were all improved.

    Much as I would prefer to use OSX on a daily basis to windows, and somewhat prefer it to Gnome or KDE, it seems hard to escape the impression that Apple created an OS to run iSoftware (iTunes, iLife, etc.) and photoshop.
  • by greymond ( 539980 ) on Friday September 02, 2005 @02:37PM (#13465482) Homepage Journal
    And to sum up every test ever done on any platfor using any hardware....

    Some things run better on some machines than others.

    The End.

    Seriously this article and the last and tons of other comparisons always end up with the same conclusions that we have known since the beginnning of time.

    Apple's G5's with OS X run some apps really well and some apps poorly. Just like Windows XP runs some apps really well and some apps poorly. With Linux on both hardware platforms some apps run better on the Intel chips and some apps run better on the IBM chips.
  • by g_lightyear ( 695241 ) on Friday September 02, 2005 @03:33PM (#13465927) Homepage
    What a stunningly dumb article. Great high-level point of view on what problems can bubble up and look like, but no low-level understanding of what the problems *are* at all.

    For example:
      - Under 10.4, you need to ensure sockets get TCP_NODELAY, and that you don't try and use corking via TCP_NOPUSH or TCP_CORK. Memcached users are watching stuff *crawl* when they hit it, depending on the buffer size you happen to be using.
      - Whinging about thread creation overhead ignores the fact that just about everything that uses heavily threaded environments use a thread pool and/or worker system - so thread creation overhead is pretty much a red herring in most app design. Sure, it's not brilliant that it's there, but it's also pretty pointless to talk about.
      - As anyone who used poll() under heavy load knows, Panther could core dump; Tiger has improved, but it's poll() implementation is still suffering.
      - There is, actually, a hidden cost on Macs - POWER state load/store is a lot more expensive, and the context switches are much higher. Tasks which cross the kernel barrier heavily do indeed pay a higher cost on the mac. This requires that folks who are used to 'cheaper' system calls think a bit more about how they can efficiently move their data in the smallest number of syscalls.
      - And let's not forget to mention the exponentially more expensive cost of misaligned data access on PPC, easily invoked accidentally in code.

    I mean, even once you get past the worse-than-one-might-want performance of the poll() causing problems, you've got the critical problem with TCP latency stepping in.

    Strangely enough, all the tests they did that actually show problems are either known bugs, with known workarounds, or are known differences in behavior...

    At some point, someone needs to call a spade a spade - was Apache built using TCP_CORK? You betcha. Was he using a fixed version of MySQL? Nope. Did the form of the tests for MySQL also succumb to the TCP_CORK problem? Almost guaranteed.

    A poor test. Next time, pay some monkey to *write some code* if you're trying to prove the 'cost of latency'; if you're trying to prove that most Unix software isn't brilliantly optimized to work around issues which have existed on the mac for some time? Well, everything takes time, doesn't it.

Our business in life is not to succeed but to continue to fail in high spirits. -- Robert Louis Stevenson

Working...