私はRaspberryPiを使ってマルチプロセスシステムを開発したいと思います。ここでは、すべての主要なプロセスとLinuxを使用してプロセスのスケジュール方法を監視したいと思います。つまり、スケジューラの状態、開始時間、リリース時間などを取得します。私はこのような情報を見つけるために「/ proc」フォルダを見てみましたが、これまでは本当に役に立ったものが見つかりませんでした。
たとえば、/proc/pid/task/pidに入ると、次のようになります。
se.exec_start
se.vruntime
se.sum_exec_runtime
se.statistics.wait_start
se.statistics.sleep_start
se.statistics.block_start
se.statistics.sleep_max
se.statistics.block_max
se.statistics.iowait_sum
se.statistics.wakeups
など。今私が何かをしているように見えますが、十分にはっきりしません。コアでプロセスがどのようにスケジュールされているかを見たいです。つまり、プロセス1は0.30にオフになり、プロセス2は0.70(システムタイマー値)で始まる式です。
「/proc」のようなカーネルフォルダを監視すれば、同様のことは可能ですか?それ以外の場合は、他のLinuxトレースツールまたはスケジューラツールを使用してそれらを確認する方法はありますか?
どんな指針でも大変感謝いたします。さらに必要な情報があれば教えてください。
よろしくお願いします。
答え1
各プロセスの開始方法と終了方法/理由は異なります。プロセスが実行している呼び出しを確認しない限り、実行したいことは実際には可能ではないようです。この場合、strace
出力を使用して出力をソートして、正確に何をするかを確認できます。