【发布时间】:2012-12-13 17:40:04
【问题描述】:
有什么办法可以防止linux内核将线程迁移到其他cpu上? 使用 hwloc(它又使用 pthread_setaffinity_np),我将线程绑定到核心。但是,有时我会看到内核启动了昂贵的迁移任务。有什么办法可以阻止内核这样做吗?我没有在 hwloc / pthreads 库中找到任何标志,也没有将 kernel/sched_nr_migrate 设置为 0 导致所需的行为。 任何建议都受到高度赞赏。谢谢
【问题讨论】:
-
有没有人有证据表明这样的功能在任何应用程序中都是一个优势?如果线程 X 准备就绪,它所绑定的核心已经很忙并且还有另一个核心空闲,那么操作系统应该做什么?不运行吗?迁移其他线程?我没有看到太大的上涨空间?
-
也许你可以看看 libnuma。不确定它是否可以在非 NUMA 架构中使用。
-
@jrw:你解决过这个问题吗?我在短期线程上看到了类似的问题,这些线程似乎在其生命周期开始时就被迁移了,这正在扼杀性能。
标签: linux-kernel pthreads