2012-03-13 24 views
0

私はいくつかのCPUパフォーマンス関連の仕事をしています。そして、CPU負荷がプロセッサキュー(待ち行列)に大きく依存していることがわかりました。どのようにして最大プロセッサキューの長さを見つけることができますか?

プロセッサキューの最大長を判断する方法はありますか?ある瞬間にどれくらいのプロセスが待機状態になることができるかを知りたい。

私は、UNIX環境でIntel i5プロセッサを使用しています。

+1

CPU負荷はプロセッサキューに大きく依存します。 「プロセッサキュー」が実行されていない実行可能スレッドのセットを参照していると仮定すると、キューの総数が0より大きい場合、全体のCPU負荷は100%になります。準備スレッドは通常、 CPUを待っています。 'Waiting'は通常 '実行不可能'と理解されています。 IOや同期オブジェクトのような非CPUリソースを待っています。 –

+0

ああ!その後、誤字脱字して申し訳ありません。私は実際には、1つの瞬間に最大許容可能な '実行可能な'プロセスを知りたがっています。見つけることは可能ですか? – bobby

+0

簡単な方法はそれを試すことです。何かが壊れるまで、優先度の低いスレッドを作成します(あなたの作業を保存します:)。 –

答えて

0

nr_running()は、すべてのオンラインCPUで実行可能なプロセスの現在の合計を返す関数です。私はあなたが最大限許容できるものを意味するかどうか分からないのですか? 1つのプロセスがCPU上で実行されている場合、理論的には他のすべてのプロセスはrunnable状態になる可能性があります。これには上限がありません。 (システムの最大プロセス数に上限がありますが、これは古いLinuxカーネルでは512でしたが、最新のものではもっとはるかに多い)

CPU負荷について知りたい場合は、

How to find the processor queue length in linuxプロセッサ実行キューは、ここのようにコマンドで調べることができ

sched.c

にあなたが this article通過し、また、そのような calc_load()などのようなカーネル内部関数を計算ロードするために提案する。また学びますここrunqueues

http://www.ibm.com/developerworks/linux/library/l-scheduler/

これはあなたの頭を与える希望の詳細は、CPUの負荷推定に開始します。

関連する問題