• 締切済み

CPU負荷率の安全な上限と計測方法

組み込み系の環境での質問です。 1.CPU負荷率は何%くらいまでを安全と考えればいいでしょうか。 ターゲットのCPUやその他にもよるとは思います。 漠然とした質問で恐縮ですが、 例えば誰かに説明する時、xx%くらいであれば安全とみなす。 とした場合、どのような根拠理由をもって説明すれば相手に納得していただけるのでしょうか。 xx%はいくらくらいを上限に考えればいいでしょうか。 「CPU負荷率が90%はありえない。」と言う発言をよく聞きます。 何が理由になっているのでしょうか。 「ありえない」「まずいのでは」「まあ、いいだろう」「大丈夫」と判断される負荷率はそれぞれどれくらいを考えておけばいいでしょうか。 2.負荷率の計測方法について わたしは、以下のような方法で計算していますが、大丈夫でしょうか。 また、他の方法があればご教示ください。 割り込み処理が別途用意されています(多重割り込みは禁止です)。 下記のようなプログラムを実行させます。 ここへIOポートからパルス信号を入力し、割り込み処理を行わせます。 パルス信号の周波数を上げていき(割り込みの頻度を高くする)、リセットがかかった周波数を記録します。 「CPU負荷率」 = 「プログラムBのリセット時の周波数」÷ 「プログラムAのリセット時の周波数」 としています。 ------------------------------ プログラムA (処理なし) main() {   while(1){     WDTクリア   } } ------------------------------ プログラムB (処理あり) main() {   while(1){     処理A     処理B     処理C     ・・・     WDTクリア   } } ------------------------------

みんなの回答

  • rinkun
  • ベストアンサー率44% (706/1571)
回答No.1

1.タスク構成によるのではないですか。 タイマ駆動で周期的に一定負荷の処理をするなら限りなく100%に近づけられると思いますし、ランダム到着(ポワソン分布)の割り込み駆動で、割り込み応答性能が要求されると10%くらいが限界だと思います。(純ポワソン分布だと10%以下でも無理だったかも) 通常はこの中間で、周期処理と割り込み処理の負荷割合に応じて可能な負荷率が決まります。 あと割り込みの到着分布想定によっても変わります。 2.負荷率計測は質問のやり方で計れているのか良くわかりません。 アイドルタスク(最低優先度)に計量処理を入れて、その実行時間を除いた分が負荷という方法ではいけないでしょうか。

elec2
質問者

お礼

回答ありがとうございました。 お礼が遅くなりすみません。 まだ、模索中です。 参考にさせていただきます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • CPU負荷

    最近ですが、インターネットを使用していると、CPU負荷率が100%になって、HDは動いて処理をしているようですが、どうしても次の作業にとりかかれません。 以前と変わりはないのですが、何が原因なのでしょうか?

  • CGIの負荷計測

    自作掲示板の書き込み処理の動作負荷を調べたいのですが何かいい方法は無いでしょうか?? 普通記事を表示させるだけのCPU時間等は、ブラウザに表示するprint部分をコメントアウトして、ログ読み込みを除いたI/O処理を削減することで行ったりしていたのですが、書き込み処理となると「記事を投稿しなければいけない」といった問題があってどのようにすればよいか思いつきません。 もうひとつ試したのが、異なる複数の有名なCGIスクリプトを、CPU占有率0の状態からポチッと書き込みボタンを押して、CPU占有率のグラフを眺め、それを何度も繰り返しながら平均を取り、比較する、という原始的な事をしていました。一応「あぁ、これはこれに比べると重いんだなぁ」というのは漠然的には知ることができましたが。。メモリの使用率なんかもできたら調べたいです。 色々調べて、コマンドプロンプトから、 > dprofpp -p test.cgi とうつことで、実行速度がわかるということを知ったのですが、これでも「フォームからの書き込み処理」等の処理をどうすればよいかという問題や、1回の実行ではほとんどCPU時間が0になってしまいます。なにかよい方法は無いでしょうか? 動作環境は、windows xp sp1 、apache と Active Perl 5.6.1 です。 一応 fedora core もPCに入っているのでそちらでできる方法でもかまいません。

    • ベストアンサー
    • Perl
  • CPUの負荷分散について。

    CPU使用率が限界の時に、LANに繋がっている他のパソコンに処理を手伝ってもらうようなシステムの組み方を探しています。 例えば、動画のエンコードなどの高負荷な作業をしている時に、他のヒマしているパソコンに処理を手伝わせたりしたいと考えております。 Windows以外のOSの情報でも結構です。皆様のお知恵をお貸しください。 宜しくお願い致します。

  • プロセスが使用するCPU使用率を下げる設定は?

    非常に負荷の高いプログラムを実行している時に、CPU使用率が100%になり、高負荷になることが気になっていまして、CPU使用率やマシン負荷が軽減できないか、方法などを模索しています。 少し処理時間が掛かっても良いので、負荷を減らし時間で解決できればと考えています。 niceコマンド、priocntlコマンド(root権限で実行)で、プロセスの優先度の設定をしつつ、プロセスの実行ができることは分かったのですが、topコマンドでCPU使用率のところを見ると、0% idle状態なのはnice/prioctl未使用時とくらべ、変化はなく、効果の具合がよく分かりませんでした。 また、priocntlはroot権限で実行しないといけないようで、一般ユーザでの実行を考えているので、これもNGかなと思っています。 なにか解決策はありませんでしょうか?ご存じの方がいらっしゃいましたら、教えて頂けませんか。 よろしくお願いします。

  • 高周波パルスについて

    高周波パルスについて質問します。 パルス信号の場合、キャパシタに充電する時、時定数CRより周波数に依存しないと思うのですが、高周波パルスになると波形が鈍くなっているのですが、これはなぜ周波数に依存しているのでしょうか? 正弦波などの交流信号の場合はCは周波数に依存しますが、パルス信号は周波数の影響でキャパシタとなにか関係はあるのでしょうか? わかる方いたら、よろしくお願いします。

  • PHPのCPU負荷について

    PHPで運営しているサイトがあり、1日50万PVを処理しています。 そのサイトのアクセスは大きく分けて、コンテンツの一覧ページ、コンテンツの詳細ページがあります。 そこでなのですが、以下のどちらの方がCPU負荷が少ないでしょうか? ( A ) 一覧ページ、詳細ページ、共通で使用するクラスなどをひとつのPHPファイルにして、まとめて処理 ( B ) 一覧ページ用PHPファイル、詳細ページ用PHPファイル、共通で使用するクラス用PHPファイルに分け、 必要なファイルだけインクルードなどして処理 つまり、A の場合はインクルードなどのコストはゼロだが、PHPファイル内に無駄なコードがかなり含まれている。 対して B はインクルードのコストはあるものの、無駄なコードはゼロである。 A , B ではどちらが負荷が少ないでしょうか?管理の手間などは考慮せず、負荷だけで考えた場合をお願いします。

    • 締切済み
    • PHP
  • プログラム動作時のCPU処理時間とCPU負荷の取得

    シミュレーションを行うために、C言語で書いたプログラムのCPU処理時間(CPUがそのプログラムのために動作していた時間)と、横軸が時間で縦軸がCPU負荷(%)を取得したいのですが、方法を教えてください。 プログラムはwindowsでVC++ or Linuxでgccでコンパイルしようと思っています。 よろしくお願いいたします。

  • カットオフ周波数について

    カットオフ周波数について質問があります。 例えば、カットオフ周波数が1MHzの1次のLPFがあったとき、もし1MHzの信号を送信したとき信号は1/√2に減衰すると思います。 しかし、この信号がパルス信号だとしたらどうなるのでしょうか? もし、周波数1MHzのパルス信号のデューティ比が50%だとした場合、パルス幅は500nsとなります。 以下のURLを参考にして500nsのパルスが通過できるカットオフ周波数を計算したところ約700kHzとなりました。 http://www.analib.com/blog/calculator/rise-time/ つまり、カットオフ周波数1MHzのLPFならば周波数1MHzのパルス信号は減衰はほとんどなく通過できるということになります。 おそらく私が何か変な勘違いをしていると思うのですが、どなたかこの質問に回答できる方いらっしゃいましたら教えていただけると幸いです。

  • イベント処理時のCPU負荷について

    現在、IPアドレスを監視するプログラムの作成を 検討していまがループで監視すると負荷が大変 大きくなります。 疑問に思ったのですが、例えばUNIXのシステムコール sleep() listen() accept()等はCPUに負荷がかかっていません。 常にあるポートのバッファを監視しているはずですよね。 これらのシステムコールはOSではどういった処理でCPU 負荷の軽減を実現しているのしょうか? 以上、ご教授お願いします。

  • CPUの使用率が

    私のPCのCPUはインテル Core i3-330M 2.13GHz です。 一応動作事項を満たしているFPSゲームを動かしました。タイトルや、何もしないと30~35まではいきますが、しばらくするとFPSが5~20ぐらいに下がってしまいます。気になってタスクマネージャーでCPUの負荷率をみると、4つあるうち一つは負荷率が高いですが、残りの3つは25%以下でした。残りの3つをきちんとゲームに働かせばFPSが常に高い状態になりますか?またできる場合、CPUの動作を特定のプログラムに割り当てるフリーソフトはありませんか? ちなみにPCはTOSHIBA Dynabook BX/51L Windows7  グラフィックは、インテルグラフィック。(解像度を最低まで下げる。)メモリは2GB ガジェットやその他のプログラムとエクスプローラーを終了させています。 また、Game booster(無償利用)の標準設定を利用しています。 皆さんの回答を待っています。