私のプロセスがCPUにどのように関連しているかをどうやって確認しますか?

私のプロセスがCPUにどのように関連しているかをどうやって確認しますか?

ホストにログインすると、私のプロセスがコアのサブセットに接続されていることがわかります。

# taskset -cp $$
pid 2040's current affinity list: 0-15,17,19,24-39,41,43

理由はわかりません。これはルートまたは他のログインシェルで発生します。ファイル内の「affin」または「tasksset」文字列を見つけるために/ etc /を検索しました。

find /etc -type f -exec grep -i taskset {} \; -print
find /etc -type f -exec grep -i affin {} \; -print

...何もありません。演奏した

# pwd
/sys/fs/cgroup/cpuset
# cat cpuset.cpus
0-47

...船全体がそこにあります。私は生涯にわたって好みのリストがどこに設定されているかを理解することはできません。

たぶん私は私について言及する必要があると思います。した以前はこのコンピュータでCPUパーティション調整を実行しましたが、「スループットパフォーマンス」に変更してcpu-partitioning-variables.confファイルを削除しました/etc/tuned。そのプロセスに残されたアーティファクトがあると思ったが見つかりませんでした。

ところで、私たちは以下を持っています:

# cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-3.10.0-1160.36.2.el7.x86_64 root=/dev/mapper/vg00-root ro nofb splash=quiet crashkernel=auto rd.lvm.lv=vg00/root nosoftlockup mce=ignore_ce ipv6.disable=1 transparent_hugepage=never spectre_v2=off nopti LANG=en_US.UTF-8

ありがとうございます。

ベストアンサー1

@artem-s-tashnikovのおかげでinitrdで答えを見つけることができるようです。バラよりhttps://github.com/redhat-performance/tuned/issues/381、私は言った:

システムのCPUパーティションを調整しましたが、CPU接続のリストは0〜15、17、19、24〜39、41、43です。 Tunedには、「ブートローダ」を含む一部のコンポーネントがtuned.confにあるため、initrdが変更されました。特に initrd の /etc/systemd/system.conf には「CPUAffinity=0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 19 24 25 26 27 28 29 30 31 32 33 3されています 39 41 43"

この調整を使用しないことを決定し、スループットパフォーマンスに変更しました。再起動後、systemdのCPUアフィニティリストが0〜15、17、19、24〜39、41、43であることを確認しました。

したがって、CPUパーティションをINTOに変更するとinitrdが変更されますが、OUTを変更しても復元されません。人々が自分で発見できるようにこの遺物を残しました。少なくとも文書に言及する方が良いかもしれません。ありがとうございます。

おすすめ記事