Cpu

為特定程序設置 CPU 親和性?

  • February 2, 2019

如何將特定程序(例如 gzip)的 CPU 關聯設置為始終在特定核心或多個核心(例如核心 1)上執行?

我閱讀了有關任務集的資訊,但是可以在實際使用程序並創建程序之前使用它嗎?

您不能為執行檔的所有呼叫設置相關性。親和性由核心管理並從父程序繼承到子程序,沒有機制可以在執行執行檔時更改程序的親和性。

如果您希望所有呼叫都在 CPU 1 上執行,請在 中的真實腳本之前gzip放置一個名為的包裝腳本,例如:gzip``PATH``~/bin/gzip

#!/bin/sh
exec taskset 1 /bin/gzip "$@"

但這讓我覺得完全沒用。顯式設置程序的親和性通常會使事情變慢。有時將 CPU 密集型任務限制在某些處理器上並讓系統更具反應性可能很有用,儘管nice總體上通常做得更好。但是對執行檔的所有呼叫不加選擇地這樣做聽起來像是一個XY 問題

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