Announcement

Collapse
No announcement yet.

New Scheduler Optimization Can Help Out PostgreSQL & More On Sapphire Rapids

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

  • New Scheduler Optimization Can Help Out PostgreSQL & More On Sapphire Rapids

    Phoronix: New Scheduler Optimization Can Help Out PostgreSQL & More On Sapphire Rapids

    Stemming from Intel engineers finding significant overhead in some Linux scheduler functions when running PostgreSQL within a Docker instance, a new scheduler patch is on the way for Linux 6.7 that will help out at least Ice Lake and Sapphire Rapids with some migration-heavy workloads. With the change being in the common scheduler code, it's also likely to help out other hardware platforms too...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    Podman/Docker is amazing. Hope this patch is compatible with EEVDF!

    Comment


    • #3
      Would be more interesting to know why this is an issue on select CPUs?
      Symptom fix by decreasing the update rate, sounds like a bad idea.

      Comment


      • #4
        Originally posted by milkylainen View Post
        Would be more interesting to know why this is an issue on select CPUs?
        Symptom fix by decreasing the update rate, sounds like a bad idea.
        Well, those selected CPUs are Intel last two server generations. Do you expect Intel own engineers to test/debug/work on competitive CPUs? I would not. And btw, communication between CPUs is quite expensive...

        Comment


        • #5
          Originally posted by milkylainen View Post
          Would be more interesting to know why this is an issue on select CPUs?
          Symptom fix by decreasing the update rate, sounds like a bad idea.
          It is not a symptom fix when they have identified the source being too many updates to a single value. The load average is an approximation and a low priority value (i.e. the number of active processes is more important). Limiting updates to the average to a millisecond is still generous. An application, which needs a real-time value of this number should use the count of currently active processes instead of an approximated average.

          The reason why it is a problem is because of cache updates. When you have i.e. 128 cores, each with its own L2/L1 cache, then all the caches holding a copy of this value need to be updated. When this happens for a low priority value like the load average then it is considered a waste of bandwidth between the caches when the bandwidth could be used for more important cache updates.
          Last edited by sdack; 19 September 2023, 11:42 AM.

          Comment

          Working...
          X