Jump to content

dispatch kernel scheduling framework


3 posts in this topic

Recommended Posts

Anyone know about the scheduling algorithm called 'dispatch' framework?

I have noticed significant blocking on background processes in 10.10+

Mostly, if you try to make a copy in finder and then resume working in foreground application that background processes are partially blocked giving priority to the foreground application. For example, If I set a 100GB copy from say a usb drive to a ssd raid, then continue rendering or playing video in the foreground. Very strangely the transfer rate drops significantly in the background process. This is not hardware related, it has been tested in pre-Yosemite with no issues, Yosemite and after all have high performance inhibiting kernel scheduling.

I have also confirmed from Apple, that foreground application performance is critical in the scheduling algorithm and has prompted this change.

Does anyone have any clues? Or if there is a binary to manipulate this behavior?

This is a specific issue, even an above average user may never actually see this behavior. I am moving 10-20TB per week to/from a 32TB ssd raid connected to a Areca 1883i. Then doing video compression and playback, which basically means. I can only perform 1 operation at a time without taking a performance hit from the scheduler on two tasks.

 

I will make a script which makes two ramdisks, create a few 10GB files, transfers the files, and logs the execution time. It will be very clear to see, that even with no hardware restrictions the scheduler prevents appropriate performance.

  • Like 1
Link to comment
Share on other sites

  • 4 weeks later...

Here is a fix:

 

Turns out a low priority Throttle targeting TimeMachine backups is to blame. keeping low priority backups throttled.

 

Fix it permenantly.

 

sudo sh -c 'echo "debug.lowpri_throttle_enabled=0" >> /etc/sysctl.conf'

 

If anyone finds a problem let me know.

Link to comment
Share on other sites

 Share

×
×
  • Create New...