• ベストアンサー

マルチコアCPUの負荷偏り

マルチコアCPUの負荷偏り CPUの負荷をsar -P ALLで見ると1つのコアのみ負荷が高い場合が多いと思うのですが、これはなぜでしょうか? また、解決する方法(すべてのコアに均等に負荷をかける)はあるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • PXU10652
  • ベストアンサー率38% (777/1993)
回答No.1

「1つのコアのみ負荷が高い場合が多いと思うのですが、これはなぜでしょうか?」  ソフトがマルチCPUやマルチスレッドに対応していないからです。 「また、解決する方法(すべてのコアに均等に負荷をかける)はあるのでしょうか? 」  ありません。なのでCore-iシリーズでは、複数のCPUに負荷が分散されていないときは、負荷の掛かっているCPUのクロックを上げる仕掛けになっています。

その他の回答 (1)

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.2

単純な例を挙げます。 シングルスレッドのプログラムがコアを一つ占有したら、もちろんそこに負荷が片寄ります。 スケジューラがそういう高負荷なコアを避けるように他のアプリケーションを配置し直したとしても、そのプログラムがコアを占有し続ける限りはそのコアに負荷が片寄ったままです。 つまり、何かしらのコア占有率が高いシングルスレッドのプログラムが動いているのが原因と考えられます。 これはプログラム側の問題なので、OS設定でどうにかなる話ではありません。

関連するQ&A

  • マルチコアCPUにおける周波数とは

    お世話になります。 マルチコアCPUのスペックに記載されている周波数はコア1つに対するものか、すべてのコアの合計値なのかどちらでしょうか? 例えば1つだけのタスクにCPUを100%した場合、 2コア1GHzのCPUと同等の処理速度を示すのは1コア2GHzか1コア1GHzどちらでしょうか? もしくはどちらも間違っているのでしょうか? どなたかご教示お願いします。

  • linuxマルチコアCPU環境においてコアの使われ方について

    linuxマルチコアCPU環境においてコアの使われ方について マルチコアCPUがLinxu環境において(その他Linuxでないプラットフォームにおいても)、 実際に搭載されているCPUのコア数が正常にOSに認識されているというだけではなく、 各プロセスの処理に対して複数のコアが適宜効果的に利用されているのかどうか?? ということが知りたく、添付画像に私の疑問点をまとめてみました。 ■ポイント ++++++++++++++++++++++++++++++++++++++++++++++++ 投稿した画像の色がついている4つの矢印は1つ1つそれぞれがDB接続クライアントがmysqlに投げているSQL文(クエリ)をイメージしています。 Mysqlを起動させているlinux kernelは、このクエリを受け取り自身が管理しているCPUがマルチコアであった場合、どのようなロジックで複数のコアの中から4つのクエリを処理させるCPUコアを選択しているのでしょうか? 例)kernelが未使用のCPUコアを都度選んで1クエリの処理を担当するよう制御している ⇒コアによって処理する数は異なる 例)kernelが4つのクエリに対して4つのCPUコアをラウンドロビン分散させて処理させている。 ⇒コアが処理する数は均等になる ++++++++++++++++++++++++++++++++++++++++++++++++ どなたか、私の疑問についてご存知でしたらご教授いただけますでしょうか。 よろしくお願します。

  • マルチコアCPUをシングル化

    表題の通り、マルチコアCPUを仮想的にシングルコアに統合して扱える様にするソフトウェアを探しています。 有料ソフトでもご存知であれば情報を教えてください。 求める要件 1.統合した単一コアは、CPU本来の単一コア性能の1.5倍以上であること →例えば2.6GHz*4のCPUから2コアを統合した場合は、4GHz以上の性能を持つ単一コアになる。 2.統合した単一コアに向ける処理の順序が狂わないこと。 →例えばABCDという命令を順番に発行したとして、その結果がACBDの様にならないこと。 理屈的に難しい事は知っておりますが、もし存在していれば教えてください。

  • マルチコアCPUのコア割り当て

    マルチコアCPUのコア割り当て 基本的な質問ですが教えてください。 マルチコアCPUで実行コアの割り当てはどのように 振り分けているのでしょうか? (ハードは正常に動作している条件で) 勝手な想定では、 1)OS(ドライバ)が効率よく、振り分けを行う。 2)APLのコーディングにより明示的に振り分ける。 3)OSもAPLも特に意識なく、CPUが自立的に振り分ける。 のいずれかと思っていますが、実際はどのような動作を しているのでしょうか?

  • マルチコアプロセッサと、ソフトウェアの関係

    最近、マルチコアプロセッサ搭載のパソコンが、よく売られていますよね、私が今度、購入するパソコンは、ワークステーション級の物で、 CPUにはOpteron(バルセロナCPU=1CPUに4コア)を2個搭載=8コア、搭載(稼働)する物を選びました。4コア以上のCPU全てが働くには、64ビットのOSが前提ですが、各ソフトウェアも、「マルチコアプロセッサ対応のソフトウェア」でなくてはならないですよね。 そこで、質問です。 1 マルチコアプロセッサ対応の、ソフトウェアは、今市場に出ているソフトウェアで、何がありますか?代表的なソフトウェア・私の知らないソフトウェア、なんでもよいので教えてください。 2 このソフトウェアは、マルチコアプロセッサ対応かどうかを見分けるマークのような物はないですか?ない場合は、どうやって見分ければよいのですか?やっぱり、取扱説明書を見るか、そのメーカーに問い合わせをするぐらいでないとダメですか? 私は、以前メーカーに問い合わせても、調べるから待っていてくれと言われました。 3 今後、家庭用のパソコンのCPUは、もっとコアの数が増えた物になるのでしょうか? 4 3の質問に関連してるのですが、もっとコアの数が増えたCPUになったとして、そのCPUがもっと増えたパソコンやマザーボードが出てくるのでしょうか? では、よろしく、お願いします。

  • マルチコアCPUのクロック周波数や消費電力について

    現在はシングルコアのCPUは少なくなりました。シングルコアの場合ですと、表示されていたクロック周波数=そのCPU全体のクロック周波数と見てよかったと思うんですが、マルチコアにおけるクロック周波数の表示はどうなんでしょうか? 例えば、Core i7-3960Xは6コアCPUで、3.3Gh'z駆動ですが、6コア合わせて3.3Gh'z駆動なのか、それとも6コア全てが3.3Gh'z駆動であるのかがわかりません。このCPUにはTurbo Boost機能がありますが、今はないものであるとして考えます。 仮に、6コア全てが3.3Gh'z駆動であるとすれば、単純に、3.3Gh'z駆動のCPUが6つある物、もしくは3.3Gh'z x 6 = 19.8Gh'z?と考えていいのでしょうか? また、消費電力の話になりますが、なぜシングルコアCPUよりマルチコアCPUの方が消費電力が下がるのでしょうか? Pentium 4の頃は爆熱等といわれていましたが、Core DuoやCore 2になってからはそういったことは聞きません。イメージとしてはシングルコアよりマルチコアの方が電力が食いそうなのですが・・・。 初心者なもので、あまり理解をしていません。解説してくださる方、もしくはわかりやすいサイト等がありましたら、是非お願いします。

  • マルチコアCPUでMediaEncoderと他のアプリを同時に使いたい

    当方WindowsVISTA32BitでCore2Quad Q6600を使っているのですが デスクトップの画面を取り込もうと WindowsMediaエンコーダ9を立ち上げて エンコードしたところ4つのCPUを全部使ってしまい負荷が 全部のCPUにかかってしまっています。 どうもWME自体がマルチコア対応とのことです。 これでは平行してアプリを立ち上げても WMEにCPUの処理能力を奪われてまともにアプリを起動できません。 (ゲームの動画をキャプチャーしようとしていました。) できればWMEを1つのコアに処理させたいのですが どうのようにすればよいのでしょうか? ちなみにM/BはASUSのP5K-Eです。 アプリや、もしくはWME自体の設定でなんとかなる ものなのでしょうか?

  • マルチコアのパソコンについて

    マルチコア(マルチスレッド)のパソコンはマルチスレッド非対応のソフトを何個か同時に使った時、 自動的に処理を各コアに分散して負荷を低減してくれたりするんでしょうか?

  • マルチコアCPUの、コアひとつあたりの周波数

    マルチコアCPUは物理的にコアがわかれているのでしょうか もしそうならば、 デュアルコアCPUやクアッドコアCPUのコアひとつあたりの周波数はいくつになるのでしょうか 例えば、周波数が3GHzのデュアルコアCPUがあったとします ひとつあたりの周波数は1/2の1.5Ghzになるのでしょうか

  • 1コアに負荷が集中するようにしたいのだが

    マルチスレッドに対応していないソフトを使う場合、 全てのコアに均等に負荷が分散されますが、 これを一つのコアだけに集中するように 自動的になるように設定できないのですか? 7では可能らしいですがVistaでも可能ですか。 負荷が分散すると i7のTurboBoostが使えないのです。