コードでlinuxスケジューラからCPUを分離し、これを行う権限をユーザに与えることは可能ですか?そうすれば、rootでなくてもかまいません。私は今、システム内の他のすべてのプロセスからこのCPUを隔離したいsudoなしでコード内のCPUを分離しますか?
// set thread affinity to core 1
cpu_set_t cpu_set;
CPU_ZERO(&cpu_set);
CPU_SET(1, &cpu_set);
sched_setaffinity(tid, sizeof(cpu_set_t), &cpu_set);
:
私はすぐに、プロセス/スレッドのCPUアフィニティを設定することができます。
私はマグロを使用してRedHatの上でこれを行うことができることを知っている:
sudo tuna --cpus 1 --isolate
sudo tuna --cpus 3 --isolate
私は次のように単離することが可能であることをどこかで読ん:
sudo echo 0 > /sys/devices/system/cpu/cpu1/online
sudo echo 1 > /sys/devices/system/cpu/cpu1/isolated
sudo echo 1 > /sys/devices/system/cpu/cpu1/online
しかし、isolated
ファイルを作成しようPermission denied
最後に、特定のユーザにCPUを隔離する権限を与える方法がありますか? /etc/security/limits.conf
の制限を増やす)あなたが言及/sys
で
username hard memlock unlimited
username soft memlock unlimited
username - rtprio 99
適切な機能を追加するには 'setfacl(1)'を使用することができますか?詳細は 'capabilities(7)'を確認してください。おそらく 'CAP_SYS_NICE'、' CAP_SYS_RESOURCE'、または 'CAP_SYS_ADMIN') – sarnold