/etc/default/grub
に次の行を追加しました
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash isolcpus=1,3"
次にSudo grub-update
を実行(および再起動)しましたが、top
によると、プロセスは引き続きCPU 1および3でスケジュールされています。これについてはどうすればよいですか?
追加を求められたもの:
nabeel@nabeel-Inspiron-3542:~$ cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-4.4.0-22-generic.efi.signed root=UUID=1e46ca65-843f-439a-8e2a-f5e666a03ffe ro quiet splash isolcpus=1,3 vt.handoff=7
top
の出力:
PID USER PR S P
182 root 20 S 0
183 root 0 S 0
220 root 20 S 0
223 root 20 S 0
253 root 20 S 2
261 root 0 S 0
312 root -51 S 0
343 root 0 S 3 <-------- Processes being scheduled on CPU 1 and 3
347 root 0 S 1 <--------
373 root 0 S 2
398 root 0 S 0
474 root 0 S 2
478 root 20 S 0
548 systemd+ 20 S 0
632 avahi 20 S 2
633 root 20 S 2
642 root 20 S 0
これら2つのプロセスはkworker
または別のカーネルタスクだと思います。
現在、isolcpus=
はユーザー空間のスレッドにのみ影響するため、カーネルスレッドは分離されたCPUに表示されます。
RHELドキュメント (私の強調)から、
3.3.6.2。 CPUの分離
Isolcpusブートパラメータを使用して、1つ以上のCPUをスケジューラから分離できます。これにより、スケジューラがこのCPUでuser-space threadsをスケジュールするのを防ぎます。 CPUが分離されると、CPUアフィニティシステムコールまたはnumactlコマンドを使用して、分離されたCPUにプロセスを手動で割り当てる必要があります。
誰かが この動作をパッチする を試みましたが、私が知る限り、それは確認されませんでした。
要約すると、Ubuntuはオプションを無視していません。意図したとおりに機能しています。期待どおりに機能しているかどうかは、別のクエリです。