動的に変更されたCPUアフィニティには結果がありません。

動的に変更されたCPUアフィニティには結果がありません。

それで、システムの重要なプロセスの優先順位とCPUの好みを設定するために独自のスクリプトを作成し、tasksetコマンドを使用してみましたが、何の効果もないようです。

例は次のとおりです。

import psutil
import os
import sys

for proc in psutil.process_iter():
    command = "taskset -cp 0 "+str(proc.pid)
    os.system(command)

このPythonスクリプトをrootとして実行すると、次の出力が表示されます(私のシステムのすべてのプロセスについて)。

pid 5893's current affinity list: 0,1
pid 5893's new affinity list: 0

私のCPUには12個のスレッドがあり、このコマンドをどのように使用しても、すべてのコアはまだ通常どおり使用されます。

答え1

マルチスレッドアプリケーションでは機能しません。-aパラメータリストに追加してみてください。

       -a, --all-tasks
           Set or retrieve the CPU affinity of all the tasks (threads) for a given PID.

関連情報