Slashdot Mirror


Improving Linux Kernel Performance

developerWorks writes "The first step in improving Linux performance is quantifying it, but how exactly do you quantify performance for Linux or for comparable systems? In this article, members of the IBM Linux Technology Center share their expertise as they describe how they ran several benchmark tests on the Linux 2.4 and 2.5 kernels late last year. The benchmarks provide coverage for a diverse set of workloads, including Web serving, database, and file serving. In addition, we show the various components of the kernel (disk I/O subsystem, for example) that are stressed by each benchmark."

11 of 97 comments (clear)

  1. Re:Actually finding the performance problem? by Chatz · · Score: 5, Informative
    That's probably a bit harsh, both IBM and SGI have worked pretty hard to get scalability improvements into the linux kernel. The article does mention some of these things:

    Some of the issues we have addressed that have resulted in improvements include adding O(1) scheduler, SMP scalable timer, tunable priority preemption and soft affinity kernel patches.

    --
    There is folly and foolishness on the one side, and daring and calculation on the other. - Admiral Pellew, Hornblower
  2. Re:Huh? by Chatz · · Score: 4, Informative
    Which you need to know before interpreting the results...

    I have to disagree, I thought Figure 3 illustrated how important it is to baseline to ensure that you are heading in the right direction with each change you make (although they did not have a uni-processor baseline result).

    It also showed that with the changes in June they are able to get a 4 times performance with another 7 cpus. Maybe next time they will show how it scales over the number of cpus you have.

    --
    There is folly and foolishness on the one side, and daring and calculation on the other. - Admiral Pellew, Hornblower
  3. Use the build-in benchmark tool by Anonymous Coward · · Score: 1, Informative

    >time make clean bzImage modules
    [...]
    real 6m2.519s
    user 5m13.950s
    sys 0m20.080s

    => efficency: 93.6%
    (2.4.18,xfs,ide)

  4. Re:The Problems with Benchmarking like this... by swissmonkey · · Score: 2, Informative

    Linux already blows and MS product away for these applications, so I'm curious what they are comparing the results to.

    You obviously need to look better at how Linux scale on 8P machines and more before making such statements.

    Go to http://www.tpc.org and look at the results for Linux and Windows for 16P systems and more, Linux is non-existent, for a reason.

  5. For simplicity's sake by r6144 · · Score: 5, Informative
    When running with multiple CPU's, the kernel instances running on these CPUs need regulation when they access shared data. Such regulation is usually implemented with locks. A simple approach is to use a small number of "big" locks (like a lock that makes sure that only one CPU can run actual kernel code). This is very simple and easy to debug, but may cause poor performance because one CPU cannot (for example) do network transfers while another is reading disk, while this should be allowed in principle. So we should use finer-grained locks. However, as we make locks more and more fine-grained, we have more and more locks, so things get messy, hard to debug, and locking/unlocking overhead goes up to make performance degrade for fewer-cpu machines. Because of such a cost, we should make locks finer-grained when it actually improve performance much according to benchmarks.

    Of course this applies to something else, like making transfers zero-copy, too.

  6. Re:The Problems with Benchmarking like this... by Anonymous Coward · · Score: 2, Informative

    Looked at www.tpc.org but could not see anything which tells otherwise that linux still has better performance than windows.. even tough there was a very little selection of linux setup testet, those which were tested had exelent performance. The only thing that windows had better, was price/performance on a low end server, that means if you do not need to much performance, then the windows solution might be the right shot ( as of tpc.org anyway).

    Seems like the post was probably more a troll than any important issue, since the site had 90% of tests on windows servers, and 2% linux, it cannot be taken to seriusly.

    Please correct me with real tech facts.. not just some marked bs to tell what windows might be, but are not.

  7. Re:More attention to IO needed by g4dget · · Score: 4, Informative
    In particular I'm interested in how the Linux kernel is designed to handle multiple independent I/O buses.

    By running multiple kernels. Seriously: the way to get great performance out of PC hardware is to buy lots of it and cluster it. You still end up paying less for more performance than with the high end systems.

  8. Re:More attention to IO needed by virtual_mps · · Score: 4, Informative

    The problem is that the typical PC hardware is just not designed for that. Large proprietary Unix or mainframe systems usually have multiple very high speed buses; a single 32-bit PCI bus is rather low-end in comparison.


    A single 32 bit PCI bus is anemic these days. That's why high-end servers based on ia32 processors include multiple PCI busses, increasingly PCI-X (133MHz, 64bit). Note that servers based on other processors are increasingly moving away from proprietary busses and using the same PCI you'll find in those intel-based systems.
  9. Re:The Problems with Benchmarking like this... by nicodaemos · · Score: 4, Informative

    Hmmm .... tpc.org is an interesting organization. It is a non-profit who is funded by memberships from the hardware/software companies on which it produces benchmarks.

    According to their website, "Full Members of the TPC participate in all aspects of the TPC's work, including development of benchmark standards and setting strategic direction. Full Membership costs $15,000 per calendar year."

    Wow, a large percentage of the benchmarks are using MS operating systems. Oh look full members get to set benchmark standards. Mmmm, the only pure OS company who is a full member is Microsoft. I wonder what kind of conclusion can be drawn .......

  10. Something like the contest benchmark? by salimma · · Score: 2, Informative

    The contest benchmark might be what you are looking for. It tests system responsiveness by running kernel compiles under different kinds of load.

    Still based on kernel compiles, granted, but at least it tries to measure responsiveness. Been used heavily to benchmark recent kernels - check Kernel Trap for results.

    The Linux scheduling latency page of Andrew Morton might be useful as well. Alas, kernel patches tend to work on x86 first before PPC..

    --
    Michel
    Fedora Project Contribut
  11. Re:Can Linux become Mozilla? by ostiguy · · Score: 2, Informative

    Just because it is in print does not mean it is true. Cringely is wrong on a lot of things, and this is one of them. MS maintained the drive lettering construct for backwards compatibility purposes, and with each revision, there are fewer and fewer limitation because of it (in 2k, ms introduced the ability to mount drives as folders in existing file systems, a unixy like feature). In the nt/2k/xp family, dos programs can only run in a dos virtual machine (NTVDM), somewhat similar to the java model.

    ostiguy