可以在linux中为其中每个线程在每个核上运行的多线程程序设置cpu亲和性,从而有效地阻止由该核上的os调度的任何其它进程。实际上,我希望保证我的进程使用一个核心,并将所有其他非关键程序绑定到最少数量的核心。
或者我错过了linux调度器,或者我需要我自己的调度器。
发布于 2012-06-04 14:38:18
可以在linux中为多线程程序设置cpu亲和性,其中每个线程在每个核心上运行,从而有效地阻止操作系统在该核心上调度任何其他进程。
不可以,设置cpu亲和性可以防止调度程序为您的线程使用某些核心。也就是说,它只会在某些核心上调度你的线程--它不会对其他线程做任何事情。
您可能可以使用setpriority实现您想要的功能。如果您的要求很苛刻,您可以查看sched_setscheduler并选择SCHED_RR或SCHED_FIFO。
发布于 2012-06-05 02:15:55
当调度程序积极参与时,taskset和nice只会向调度程序提供有关您的首选项的提示。调度器可以根据工作负载自由地重新调度任何可用核心上的任何线程。您可以使用perf来监控上下文切换和cpu迁移。
您有两个选择:
由于cgroup/ sugggested.
我希望它能帮上忙。
https://stackoverflow.com/questions/10877183
复制相似问题