Linux

如何在 Linux 上設置程序的處理器親和性?

  • September 28, 2020

如何在 Linux 上設置程序的處理器親和性?

我為此使用了任務集。如果您安裝了任務集,例如:

taskset -cp 0,2 45678

會將 id 為 45678 的程序設置為與 cpus 1 和 3 具有關聯性。

在程序內部,呼叫將是sched_setaffinity(),或者對於 pthreads 的東西,pthread_setaffinity_np()

在相關的說明中,如果您擔心程序的 CPU 親和力,可能值得關注它是如何進行記憶體分配的。記憶體連接到多個控制器(即多個 CPU 插槽,每個都有自己的)的較大系統將在不同的 CPU-記憶體對之間具有可變的延遲和頻寬。您還需要查看 NUMA 親和性,使用numactl它使用的命令或系統呼叫。我參與的一個程序由此獲得了 10% 的性能提升。

引用自:https://unix.stackexchange.com/questions/73