私のLinux 3.10.0-327.el7.x86_64でisolcpus = 2を設定しました。私が欲しいのは です。カーネルスケジューラでCPUコア2のタスクをスケジュールしないようにしてください。コア2で何が起こっているかを見るために専用CPUコアでデーモンが動作しないようにする
perf record -e sched:sched_switch -C 2
を持っているし、その後、私のAPを(実行するCPU_SET(2)、 、次のコマンド:
perf report --show-total-period -i perf.data
GET結果:
48.85% 85 swapper [kernel.kallsyms] [k] __schedule
18.97% 33 kworker/u384:0 [kernel.kallsyms] [k] __schedule
11.49% 20 :4594 [kernel.kallsyms] [k] __schedule
11.49% 20 smartd [kernel.kallsyms] [k] __schedule
4.60% 8 watchdog/2 [kernel.kallsyms] [k] __schedule
3.45% 6 sshd [kernel.kallsyms] [k] __schedule
1.15% 2 kworker/2:2 [kernel.kallsyms] [k] __schedule
私はkworker/2を知っています、watchdog/2はハウスキーピングタスクです、スレッドID 4594は私がCPU_SET(2)で私のアプリケーションを動かすものですが、本当にsshd、smartdデーモンがコア2で動くのを避けたいです。デーモンがコア2で実行されるのを避けるためにカーネルに伝えるためにできる設定ファイルはどれですか?
編集:編集GRUB後
、そこに更新-grubのコマンドであると、再起動する必要があり、 私は、GRUBを更新する方法を見つけ出すしようと、私はgrubの設定isolcpus = 2だと思うが、それが有効になっていませんしかし、私はisolcpus = 2を作った後に結果を更新します。