Announcement

Collapse
No announcement yet.

Linux 5.0 HDD I/O Scheduler Benchmarks - BFQ Takes The Cake

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Linux 5.0 HDD I/O Scheduler Benchmarks - BFQ Takes The Cake

    Phoronix: Linux 5.0 HDD I/O Scheduler Benchmarks - BFQ Takes The Cake

    Recently I published a number of Linux 5.0 I/O scheduler benchmarks on laptop and desktop hardware with solid-state storage. A number of Phoronix readers were interested in seeing similar tests done but with traditional hard drives, so here are those results using two different drives and the different blk-mq I/O scheduler options with the new Linux 5.0 kernel.

    http://www.phoronix.com/vr.php?view=27608

  • #2
    Interestingly, https://wiki.ubuntu.com/Kernel/Reference/IOSchedulers doesn't recommend bfq as the 1st choice.

    Comment


    • #3
      Originally posted by atomsymbol View Post
      Interestingly, https://wiki.ubuntu.com/Kernel/Reference/IOSchedulers doesn't recommend bfq as the 1st choice.
      It's also either second choice or "avoid" for hard drives which kind of puzzles me. I mean if it's bad enough you tell others to avoid it, you don't want to recommend it as second choice either. But it's Ubuntu so I'm not surprised about the weirdness.

      To be fair though, this is the first benchmark that BFQ is dominating so hard. It's as good or better than other schedulers in any task, and of course completely destroys the other schedulers in the application startup time as that's one of the things it is specifically designed for.

      Comment


      • #4
        Dumb question; how is the geometric mean calculated, considering for some benchmarks "more is better" and for others "less is better"? Are you calculating the inverse of the "less is better" benchmarks, or?

        Comment


        • #5
          Interestingly, as of 5.0 the old single queue I/O layer has been deleted (https://kernelnewbies.org/Linux_5.0#Block_layer), and blk-mq is all there is. Hopefully whatever regressions there may have been have mostly been sorted out by now.

          Comment


          • #6
            Originally posted by jabl View Post
            Dumb question; how is the geometric mean calculated, considering for some benchmarks "more is better" and for others "less is better"? Are you calculating the inverse of the "less is better" benchmarks, or?
            Maybe he can do this, because "more is better" is always "something per second" and "less is better" is always "second". With the geometric mean everything is multiplied, but usually the numbers are percentages. So maybe he gets rid of the dimension first...

            I tried to calculate it for the first bar. His result is 142.
            What Ive tried
            ((77,29*40,74*592*4465*4393*46,13*17,97*499*37,48* 419))^(1/10)
            = 217,55518523181496966626

            (77,29*40,74*592*(1/4465)*(1/4393)*(1/46,13)*(1/17,97)*(1/499)*37,48*(1/419))^(1/10)
            = 0,17032707382289555787

            ((1/77,29)*(1/40,74)*(1/592)*4465*4393*46,13*17,97*499*(1/37,48)*419)^(1/10)
            = 5,87105724037618539315
            Last edited by tomtomme; 03-06-2019, 04:42 AM.

            Comment


            • #7
              Originally posted by tomtomme View Post

              Maybe he can do this, because "more is better" is always "something per second" and "less is better" is always "second". With the geometric mean everything is multiplied. So if you multiply "something per second" with "second" you get "something". So its as if you actually divide second with second and something is left. I wonder what happens if not all metrics have "second" in common.
              No. Consider two benchmarks, A (something per second) and B (seconds). Say for one system/configuration/whatever you have A=2, B=2. So the geometric mean becomes sqrt(2*2) = 2. Now for another system, you get A=4, B=1. Unquestionably better than A=2, B=2, no? But the geometric mean for this is sqrt(4*1) = 2, the same as for the first system!

              Whereas if you, say, convert the B benchmark to something where "more is better", e.g. by computing the inverse, we'd have for the first system the geometric mean would be sqrt(2*(1/2)) = 1, and for the second system sqrt(4 * (1/1)) = 2.
              Last edited by jabl; 03-06-2019, 04:34 AM.

              Comment


              • #8
                Originally posted by jabl View Post

                No. Consider two benchmarks, A (something per second) and B (seconds). Say for one system/configuration/whatever you have A=2, B=2. So the geometric mean becomes sqrt(2*2) = 2. Now for another system, you get A=4, B=1. Unquestionably better than A=2, B=2, no? But the geometric mean for this is sqrt(4*1) = 2, the same as for the first system!

                Whereas if you, say, convert the B benchmark to something where "more is better", e.g. by computing the inverse, we'd have for the first system the geometric mean would be sqrt(2*(1/2)) = 1, and for the second system sqrt(4 * (1/1)) = 2.
                yep, thats what I've tried above, but his result is something else. I also tried converting in percentages roughly, but thats not it either... and seeing very high geometric means on other benchmarks like this: https://www.phoronix.com/scan.php?pa...meltdown&num=1
                he does not seem to go the % way.

                Comment


                • #9
                  Would this be a reasonable summary?

                  "If startup times and general I/O responsiveness is important to you, try out BFQ in its default low latency mode and see if it makes a perceivable difference compared to your distro's default scheduler.

                  If you decide that BFQ is worth it to you, be prepared to accept a throughput tradeoff for some server-oriented software."
                  Last edited by ermo; 03-06-2019, 06:20 AM.

                  Comment


                  • #10
                    Geometric mean... now the benchmarks jungle needs its scheduler xD

                    Comment

                    Working...
                    X