Operating System Planning Algorithms

What is the best algorithm for scheduling an application that supports 10K parallel threads with heavy I / O but low CPU usage? Links to documents are welcome.

+3
source share
5 answers

Why don't you use SCHED_RR? You yourself said: low processor load . You might even come to terms with the process when you expect to do heavy I / O so that you plan less often than other processes.

In general, however, why not let the OS do what it's best for and just worry about writing efficient code? The OS will know that you are making a blocking I / O call and put your thread / task in the waiting queue and select another task to start. You do not need to worry about these details.

+4
source

In fact, I believe that the scheduling engine will not handle this number of threads, since the management tables in the kernel will become quite large.

If possible, I suggest rewriting the application to use asynchronous I / O, select (), or something similar in the OS of your choice.

+1
source

, , SCHED_RR. , SCHED_FIFO SCHED_RR.

+1

-, . linux -. LWN.

+1

, , ,

0

Source: https://habr.com/ru/post/1705663/


All Articles