次の行を追加しました。/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
答え1
私はこれら2つのプロセスがkworker
別のカーネル操作だと思います。
現在、ユーザー空間スレッドのみが影響を受けるように見えるisolcpus=
ため、カーネルスレッドは隔離されたCPUに表示されます。
~からRHELドキュメント(強調),
3.3.6.2. CPUの分離
isolcpusブートパラメータを使用して、スケジューラから1つ以上のCPUを分離できます。これにより、スケジューラがスケジュールをスケジュールするのを防ぎます。ユーザー空間スレッドこのCPUに。 CPUを分離したら、CPUアフィニティシステムコールまたはnumactlコマンドを使用して、孤立したCPUにプロセスを手動で割り当てる必要があります。
誰かが試しましたこの動作を修正してくださいしかし、私が知っている限り、それは確認されていません。
全体的に、Ubuntuはこのオプションを無視せず、期待どおりに機能します。期待どおりに機能するかどうかは別の質問です。