
統計を取得する必要があります。/proc/pid/schedstat特定のプロセスのため。
ここhttps://www.kernel.org/doc/Documentation/scheduler/sched-stats.txtその分野の説明が見つかりました。
(1)CPUで費やされた時間と(2)実行キューで待機するのにかかる時間を測定した値は何ですか?秒に変換するには?時計ティック単位で測定されますか?私はそれらを次のように分けなければなりません。システム構成(_SC_CLK_TCK)?
答え1
文書は「jiffies」状態であることを示していますが、文書は古くなっています。 CPU集中的なタスクを実行して数秒ごとにカウンタをサンプリングしてみると、カウンタが急速に増えてすぐに完了できないことがわかります。
最新のカーネルの既定値である Complete Fair Scheduler (CFS) でドキュメントが正しくないため、秒に変換するには 1000000000 で割ります。
答え2
文書によると、時間単位は「jiffies」です。つまり、「すぐに到着します!」です。
1瞬間は、光が真空中で1cmを移動するのにかかる時間に等しく、これは約33.3564ピコ秒です。 -ウィキペディア
しかし、それはあなたが望む定義ではありません。この投稿をお試しくださいhttps://stackoverflow.com/questions/10885685/jiffies-how-to-calculate-seconds-elapsed最も高い答えは次のとおりです。
jiffy のサイズはカーネル定数 HZ の値によって決まります。
HZ値はカーネルバージョンとハードウェアプラットフォームによって異なります。 i386では、状況は次のとおりです。 2.4.x 以前のカーネルでは、HZ は 100 で、2.6.0 から HZ は 0.001 秒の 1000 に増加します。カーネル2.6.13以降、HZ値は100、250(デフォルト)、または1000のいずれかのカーネル構成パラメータであるため、それぞれ0.01、0.004、または0.001秒のjiffies値が生成されます。カーネル2.6.20以降、より多くの周波数を使用できます。 300は、通常のビデオフレームレート(PAL、25HZ、NTSC、30HZ)を均等に分割する数値です。
結論として:一つを分けるスケジューリング統計時間値は、システムのHZ定数を使用して秒に変換されます。
修正する:プログラミング環境でこれらの時間を処理する場合今最高の答え同じページは、変換のために呼び出すことができるいくつかのシステムルーチンを指します(例えば、jifiesをミリ秒で)。
答え3
Linux 2.6.23では、jiffiesからナノ秒に変更されました。コミット425e0968a25fを参照してください。