Announcement

Collapse
No announcement yet.

Linux 5.11 To Land Optimization That Helps IO_uring Performance

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

  • #11
    Originally posted by cl333r View Post
    I imagine it's a synthetic test, it doesn't magically make the threaded part of apps 22% faster, right?
    it doesn't make threaded parts of app faster at all. it only makes faster io_uring requests. and this test shows by how much

    Comment


    • #12
      Originally posted by indepe View Post
      The lower CPU usage is an indication that something is non-optimal, since it is not a good thing to leave CPUs inactive if/when they could do something useful.
      we only have an indication that they could do something(without "useful" part). picking up task from different core will evict local cache

      Comment


      • #13
        Originally posted by pal666 View Post
        we only have an indication that they could do something(without "useful" part). picking up task from different core will evict local cache
        Yes, we have an indication that there is a bottleneck, likely a lack of parallelism, however we don't know if there is a way to resolve it without making larger changes (or at all) such that performance will improve further.

        Comment


        • #14
          Originally posted by indepe View Post

          I kind of expected this would not go over easily....

          What matters here is throughput, and the lower CPU usage is a sign that an even higher throughput may be possible. In other words, although the new version is better than the old version, it probably has some kind of problem.

          The lower CPU usage is an indication that something is non-optimal, since it is not a good thing to leave CPUs inactive if/when they could do something useful.
          What happens is, every time a system call is made such that it switches between userspace and kernel space it causes a context switch and those cause the CPU to flush and refill. Any IO that causes high CPU load isn't accomplishing anything at all, it's just context switching, ie flushing and refilling the CPU needlessly. High CPU load on IO is -NOT- a good thing at all.... Low CPU load and high IO throughput is a -good- indication that you're doing things right...

          Comment


          • #15
            Originally posted by Volta View Post

            What it seems from the article is less time CPU gets into the way the higher throughput you have. You're expecting CPU to speed things up, but it seems the CPU is not the one responsible for performance in this case.
            Whenever you see high CPU load on IO it is because of context switching, which is just flushing and refilling the CPU needlessly, it doesn't accomplish any work while flushing and refilling.

            Comment


            • #16
              Originally posted by duby229 View Post

              What happens is, every time a system call is made such that it switches between userspace and kernel space it causes a context switch and those cause the CPU to flush and refill. Any IO that causes high CPU load isn't accomplishing anything at all, it's just context switching, ie flushing and refilling the CPU needlessly. High CPU load on IO is -NOT- a good thing at all.... Low CPU load and high IO throughput is a -good- indication that you're doing things right...
              I'm assuming this is a local echo server, so no real IO. Just CPU and memory.

              Comment


              • #17
                Is IO_uring optimization a thing everyone somehow benefits from or is it some server / niche workload that benefits the most? Do any filesystems use it?

                I'm totally ignorant on this so forgive me if I'm mixing things up.

                Comment

                Working...
                X