現在のLinuxバージョンではスケジューリングドメインCPU、ハイパースレッディング、NUMAノードなどにプロセスを分散します。
システムに存在するドメインとタスクがドメイン間で配布される方法に関連するいくつかの統計を視覚化したいとします。問題は次のとおりです。
- このシステムにはどのドメインが存在しますか?
- 各NUMAノード/物理コア/その他のドメインは均等に活用されていますか?それとも、プロセスが一部のコアにアクセスするために競合するのに対し、他のプロセスは利用率が低いのでしょうか?
- プロセスはどのくらいの頻度で移行されますか?
そのようなニーズを満たすためにどのツールを使用できますか?
答え1
論理CPUからNUMAノード配列への場合:
lscpu
または:
numactl --hardware
また、ノードメモリとノード「距離」のリアルタイム情報も表示します。
プロセスメモリ使用量に関する一般情報:
numastat -p <PID_or_name_pattern>
バッグから
numactl
。より複雑なツールの場合:
numatop
(マンページによると、Intel Xeonと一部のIBMプロセッサのみがサポートされています)
次のコアが忙しく動作している間アイドルコアを見ると、非常に驚くでしょう(もちろん、cpusetを使用してシステムをこの状態に強制的に設定しない限り)。簡単なtop
ヒットを使用して1
各CPUのアクティビティを表示できます。
答え2
JP Loziが2016年の論文「Linux Scheduler:a Decade of Wasted Cores」のために作成したツールは、以下にあります。https://github.com/jplozi/wastedcores 似たようなものを探しているなら。さまざまなベンチマークを実行するためのさまざまなグラフィック出力は、次の場所にあります。 http://sfu.lozi.org/results/
私はそれを使用していないので、可用性を保証することはできません。 4.1 Linuxカーネルに対して最後に更新されたようです。