对于支持10K并发线程、I/O繁重但CPU使用率低的应用程序,最好的调度算法是什么?链接到论文是赞赏的。
发布于 2009-03-31 16:08:17
你为什么不使用SCHED_RR呢?您自己说过:低CPU使用率。当您希望执行一些繁重的I/O时,您甚至可以优化该进程,以便您的调度频率低于其他进程。
不过,总的来说,为什么不让操作系统做它最擅长的事情,而只是担心写出高效的代码呢?操作系统将知道您正在进行阻塞I/O调用,并将您的线程/任务放入等待队列中,然后选择另一个任务来运行。你不需要担心这些细节。
发布于 2009-03-31 17:11:21
实际上,我相信任何调度机制都不会完美地处理这个数量的线程,因为内核中的管理表将变得非常大。
如果可能,我建议在你选择的操作系统上重写应用程序,使用异步I/O,select()或类似的东西。
发布于 2009-04-01 05:24:26
为此,您可能需要使用SCHED_RR。你可能会有兴趣阅读这个关于difference between SCHED_FIFO and SCHED_RR的问题。
https://stackoverflow.com/questions/701721
复制相似问题