スレッドがどのコアで実行されているかを確認するには?

スレッドがどのコアで実行されているかを確認するには?

multi-threaded-application.outPID 10000を使用してUbuntuで実行されるCPU集約型アプリケーションがあるとします。 Tidが10001、10002、10003、10004の4つのスレッドがあります。各スレッドが特定の時間にどのスレッドコアで予約されているかを知りたいです。

試しましたが、/proc/<pid>/tasks/<tid>/status特定のスレッドの実行を担当するコアIDに関する情報が見つかりませんでした。

この質問はある程度関連しています。これで

どんな助けでも大変感謝します。

ベストアンサー1

次のコマンドはトリックを実行します。

ps -mo pid,tid,%cpu,psr -p <main process ID>

オプションの説明:

  • -m- プロセス後のスレッドの表示
  • -o- プロセスID、「ディスパッチ可能なエンティティを表す一意の番号」(スレッドID)、CPU使用率、およびプロセスが存在するプロセッサを表示するカスタムフォーマット割り当て
  • -p特定のプロセスIDについて

上記はpsmacOS / BSDではなくLinuxにのみ適用されます。

おすすめ記事