`isolcpus`カーネルパラメータはUbuntu 16.04デスクトップには影響しません。

`isolcpus`カーネルパラメータはUbuntu 16.04デスクトップには影響しません。

次の行を追加しました。/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はこのオプションを無視せず、期待どおりに機能します。期待どおりに機能するかどうかは別の質問です。

関連情報