Announcement

Collapse
No announcement yet.

Linux's Multi-Queue Block Code Still Presenting Some Performance Regressions

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

  • Linux's Multi-Queue Block Code Still Presenting Some Performance Regressions

    Phoronix: Linux's Multi-Queue Block Code Still Presenting Some Performance Regressions

    For those thinking of switching to the new multi-queue block layer, a.k.a. blk-mq, be forewarned that there are still some regressions outstanding...

    http://www.phoronix.com/scan.php?pag...rf-Regressions

  • #2
    This new series of patches clearly improves performance.
    git clone -b blk-mq-dispatch_for_scsi.V4 https://github.com/ming1/linux

    You can always come back CFQ or deadline, with kernel boot parameters:
    scsi_mod.use_blk_mq=0 elevator=cfq

    Comment


    • #3
      Kyber is by far the best scheduler I've tried in terms of fairness and desktop latency under high read/write tasks. Much better than BFQ or CFQ. With any other scheduler if I copy a large file to the drive my OS is on, and then try to open a program it might not even open until the file is done being copied, any desktop task that requires reading/writing from the drive is stalled or extremely slow. Kyber is the only scheduler I've used that prevents that from happening, I've tried every other available disk scheduler.

      Comment


      • #4
        Quoting myself...

        Originally posted by halo9en
        I'd really like to see BFQ vs Kyber vs CFQ benchmarks for latency / responsiveness. Kyber seems smaller and has good throughput, but I wonder which one is better for responsiveness (regular desktop usage and media)

        Comment


        • #5
          Originally posted by czz0 View Post
          Kyber is by far the best scheduler I've tried in terms of fairness and desktop latency under high read/write tasks. Much better than BFQ or CFQ. With any other scheduler if I copy a large file to the drive my OS is on, and then try to open a program it might not even open until the file is done being copied, any desktop task that requires reading/writing from the drive is stalled or extremely slow. Kyber is the only scheduler I've used that prevents that from happening, I've tried every other available disk scheduler.
          How do I set Kyber as my scheduler? (I can only find how to set BFQ as my scheduler)

          Comment


          • #6
            Originally posted by Vistaus View Post

            How do I set Kyber as my scheduler? (I can only find how to set BFQ as my scheduler)
            It's the same thing since they're both blk_mq schedulers.

            Comment


            • #7
              Originally posted by geearf View Post

              It's the same thing since they're both blk_mq schedulers.
              So you're saying that if I set the Linux CMD line to use blk_mq at boot I'm automatically using Kyber?

              Comment


              • #8
                Originally posted by Vistaus View Post

                So you're saying that if I set the Linux CMD line to use blk_mq at boot I'm automatically using Kyber?
                No, I am saying you can follow a tutorial for BFQ and instead type Kyber when you're setting the scheduler.

                Same Linux command for both (it's only about blk_mq).
                Almost same udev rule, just one has the word BFQ and the other has Kyber.

                Comment


                • #9
                  Originally posted by geearf View Post

                  No, I am saying you can follow a tutorial for BFQ and instead type Kyber when you're setting the scheduler.

                  Same Linux command for both (it's only about blk_mq).
                  Almost same udev rule, just one has the word BFQ and the other has Kyber.
                  Ah, okay, thanks. Which tutorial did you follow? 'Cause I found a few for BFQ but no matter BFQ or Kyber, the scheduler remains 'mq-deadline' :/
                  Last edited by Vistaus; 08-13-2017, 04:29 AM.

                  Comment


                  • #10
                    Originally posted by Vistaus View Post

                    Ah, okay, thanks. Which tutorial did you follow? 'Cause I found a few for BFQ but no matter BFQ or Kyber, the scheduler remains 'mq-deadline' :/
                    I don't remember, but here's what I've done:

                    Linux command line addon: scsi_mod.use_blk_mq=1
                    (you can use dm_mod as well for the device mapper I believe, I don't use it)
                    udev rule: ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/scheduler}="bfq"
                    retrigger udev: udevadm control --reload && udevadm trigger
                    or simply restart the system.

                    Adjust as needed for kyber/your system.

                    The simplest way to change your scheduler is of course: echo kyber >| /sys/block/sdX/queue/scheduler (replace X appropriately).
                    That will only work once you are on blk_mq, but that seems to be your case already so that's fine.

                    Although, one thing to check, just in case, make sure you have kyber available, if it's not in: cat /sys/block/sd*/queue/scheduler, you may have to rebuild your kernel.
                    Last edited by geearf; 08-17-2017, 03:38 AM.

                    Comment

                    Working...
                    X