プロが教えるわが家の防犯対策術!

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

A 回答 (2件)

「1つのコアのみ負荷が高い場合が多いと思うのですが、これはなぜでしょうか?」


 ソフトがマルチCPUやマルチスレッドに対応していないからです。


「また、解決する方法(すべてのコアに均等に負荷をかける)はあるのでしょうか? 」
 ありません。なのでCore-iシリーズでは、複数のCPUに負荷が分散されていないときは、負荷の掛かっているCPUのクロックを上げる仕掛けになっています。
    • good
    • 1

単純な例を挙げます。



シングルスレッドのプログラムがコアを一つ占有したら、もちろんそこに負荷が片寄ります。
スケジューラがそういう高負荷なコアを避けるように他のアプリケーションを配置し直したとしても、そのプログラムがコアを占有し続ける限りはそのコアに負荷が片寄ったままです。

つまり、何かしらのコア占有率が高いシングルスレッドのプログラムが動いているのが原因と考えられます。
これはプログラム側の問題なので、OS設定でどうにかなる話ではありません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QマルチコアCPUはコア数が多ければ多い程有利なのではないのですか?

最近マルチコアのCPUをよく見かけます、

それで、例えば、Core2DuoとCore2Quadを比べた質問、についてですが、
この手の質問では、Quadはマルチスレッド対応アプリを使わなければ
Duoと大きな違い感じられないという回答がよく見られます。
又、むしろ消費電力が大きくなり2コアに比べクロック数も低いので
対応アプリを使わなければ逆に4コアは不利であるという意見もあります。

しかしどうも疑問を感じます。
上記の内容はあくまで一つのアプリを動作させた場合の事を想定した物なのでは?
ごく日常での使用ではコア数が多い方が有利なのではないですか?

私の考えとしては、まずPCを扱う際一つのアプリのみを起動しPCを使用する人はまずいないという事から、
使用中に他のアプリや別のプログラムを実行するという場合も大いに考えられますし、
実際にタスクマネージャなどを見てもOSを起動起動するだけでかなりのプロセスが実行されいくらかCPUを食っています。
するとその様なマルチコア向けのアプリケーションを使用せずとも多数のシングルスレッドのプロセス実行と共に
複数のスレッドが発生し、結果例え速度的な変化は感じられずともマルチコアの恩恵を受ける事が出来るのではないか?
と、私は思うのですがこれは間違いなのでしょうか。

それとも実際は上記の内容は間違いでそう都合良くは出来ていない物なのでしょうか?

長くなってしまいましたが回答いただけると幸いです、よろしくお願いします。

最近マルチコアのCPUをよく見かけます、

それで、例えば、Core2DuoとCore2Quadを比べた質問、についてですが、
この手の質問では、Quadはマルチスレッド対応アプリを使わなければ
Duoと大きな違い感じられないという回答がよく見られます。
又、むしろ消費電力が大きくなり2コアに比べクロック数も低いので
対応アプリを使わなければ逆に4コアは不利であるという意見もあります。

しかしどうも疑問を感じます。
上記の内容はあくまで一つのアプリを動作させた場合の事を想定した物なのでは?
ごく日常...続きを読む

Aベストアンサー

マルチコアがどれくらい有効なのかは、ユーザーの使用の仕方で大きく変わってきます。
具体的な「使用中に他のアプリや別のプログラムを実行する」の頻度次第ですね。
しかも、単に複数のシングルスレッドアプリを立ち上げるだけでは、マルチコアの意味はありません。

まず、通常の利用方法である、同時に1アプリしか使っていない状況でも、
デュアルコアの意味はあります。「OS」と「使用しているアプリケーション」の2スレッド。でも、この場合は3コア以上あっても意味無し。
あるアプリの使用中に他のアプリを立ち上げても、その両方を同時に使うのでなく、切り替えて使う場合は、使ってない方のアプリはCPU時間を消費しません。

ここで「常時稼働してCPU時間を消費する」ようなアプリを裏で稼働させるような作業をして、初めて3コア目が役に立ちます。
たとえば、「通常の作業をしながら、裏でウィルス対策ソフトによるスキャンをする」とかですね。この場合、ウィルス対策ソフトは常時稼働していますから、ユーザーが操作しているアプリとOSと併せて3コア分は意味があります。

そんな感じで、日常的に「単に起動しているだけではなく、稼働してCPU時間を多大に消費している」ようなアプリをコア数に匹敵するだけの多数動かしているのであれば、「コア数が多い方が有利」といえるでしょう。
そうでなければ、コアが多くても無駄なだけです。

具体的には、タスクマネージャでプロセスタブを選んで、「CPU」をクリックしてCPU使用率の順で並べたときに、
「CPU使用率の高いプロセス」がどれだけあるかで判断できるでしょう。
CPUを使ってるプロセスが1つしかないとか、System Idle Process が一番高いとかだったら、マルチコアの恩恵はほとんどありません。
「30%ぐらいのプロセスが3つある」とかいった状況だったらクアッドコアの意味が出てくるでしょう。

マルチコアがどれくらい有効なのかは、ユーザーの使用の仕方で大きく変わってきます。
具体的な「使用中に他のアプリや別のプログラムを実行する」の頻度次第ですね。
しかも、単に複数のシングルスレッドアプリを立ち上げるだけでは、マルチコアの意味はありません。

まず、通常の利用方法である、同時に1アプリしか使っていない状況でも、
デュアルコアの意味はあります。「OS」と「使用しているアプリケーション」の2スレッド。でも、この場合は3コア以上あっても意味無し。
あるアプリの使用中に他のア...続きを読む

Qlinuxマルチコア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コアをラウンドロビン分散させて処理させている。
⇒コアが処理する数は均等になる
++++++++++++++++++++++++++++++++++++++++++++++++

どなたか、私の疑問についてご存知でしたらご教授いただけますでしょうか。

よろしくお願します。

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


マルチコアCPUがLinxu環境において(その他Linuxでないプラットフォームにおいても)、
実際に搭載されているCPUのコア数が正常にOSに認識されているというだけではなく、
各プロセスの処理に対して複数のコアが適宜効果的に利用されているのかどうか??
ということが知りたく、添付画像に私の疑問点をまとめてみました。

■ポイント
++++++++++++++++++++++++++++++++++++++++++++++++
投稿した画像の色がついている4つの矢印は1つ1つそれぞれがDB接続...続きを読む

Aベストアンサー

カーネルバージョンによってスケジューリングが異なりますが、どのバージョンでも、無用なオーバーヘッド低減のために、プロセス単位でCPU時間を割り当てていたと思います。

Qirqbalance って

Linux-OSでのマルチコア環境で割込み処理の負荷分散を行う、irqbalanceデーモンについておしえてください。
CPU00,01,02,03と4コアで動作してるシステムなんですが、なぜかソフトウェア割込みが特定のCPUにのみ割り込まれちゃいます。
/proc/interruptsを秒間でのぞいてもCPU03だけガシガシとカウントアップされ、まったくもって負荷分散してくれません。
irqbalanceデーモンってどんなロジックで割込みの負荷分散を実現してるのでしょうか?
また、ネットでいろいろ調べると[irqbalanceのOneShotモード]という言葉を見かけます。
一回、分散させてあとは張り付き、みたいなことかかれてるのですが、このモードが有効になってるということでしょうか。。。
このirqbalanceデーモンがこのOneShotモードで動いてるのかどうか、を知るにはドコを確認すればよいでしょうか??
詳しいかた、教えていただけるとうれしいです。

Aベストアンサー

>このirqbalanceデーモンがこのOneShotモードで動いてるのかどうか、を知るにはドコを確認すればよいでしょうか??

Redhat系列なら/etc/sysconfig/irqbalance辺りでしょうかね。

ウチのだと…timer割り込みはCPU0が処理しているみたいですが。
# 半角スペースは削られるので崩れて見えますけど、下記の通り。
cat /proc/interrupts
CPU0 CPU1 CPU2 CPU3
0: 909419869 17594 17590 17587 IO-APIC-edge timer
1: 2 1 2 3 IO-APIC-edge i8042
8: 2 0 1 2 IO-APIC-edge rtc
9: 0 0 0 0 IO-APIC-level acpi
12: 2 0 1 2 IO-APIC-edge i8042
50: 0 0 0 0 IO-APIC-level ehci_hcd:usb1, uhci_hcd:usb2
58: 7778 0 8769346 0 PCI-MSI ahci
66: 188 0 0 11459104 PCI-MSI eth0
82: 287 0 0 0 PCI-MSI snd_hda_intel
177: 0 0 0 0 IO-APIC-level uhci_hcd:usb5
185: 0 0 0 0 IO-APIC-level uhci_hcd:usb4
193: 0 0 0 0 IO-APIC-level uhci_hcd:usb3
NMI: 0 0 0 0
LOC: 909529896 909529930 909529923 909529935
ERR: 0
MIS: 0

SATAはCPU2が、EthernetはCPU3が処理している…っぽいですな。
CPU1だけヒマしているようにも見えますが。
ちなみに、もう1台のサーバで確認するとtimerはCPU0が処理していました。
# やっぱりCPU1は割り込み回数が極端に少なかったですが。

http://hagio.org/wiki/index.php/Linux/%E6%99%82%E8%A8%88
ってことで、ソフトウェアクロック を別のCPUに振るのは正確性に欠ける…ってことで、使用CPUが変動しないように制御でもしているんじゃないですかね?
/proc/irq/0/smp_affinityの値は00000001でしたし。
# 0000000fに変更してみてもCPU0しか使われないですな。

>このirqbalanceデーモンがこのOneShotモードで動いてるのかどうか、を知るにはドコを確認すればよいでしょうか??

Redhat系列なら/etc/sysconfig/irqbalance辺りでしょうかね。

ウチのだと…timer割り込みはCPU0が処理しているみたいですが。
# 半角スペースは削られるので崩れて見えますけど、下記の通り。
cat /proc/interrupts
CPU0 CPU1 CPU2 CPU3
0: 909419869 17594 17590 17587 IO-APIC-edge timer
1: 2 1 2...続きを読む

Qlogrotateの再起動

先日、使用していたサーバの
/var/log内のデータが溢れてしまい
Syslog、cronなどが止まってしまいました。

現在は、Syslog、cronなどは再起動をかけたので動いているのですが
logrotateがされず、このままだとまたあふれてしまう可能性があります…。
(あふれる前は動いていたのですが、Syslogのデータを/var/log/ないで行っており、整理をしなかったので溢れてしまいました)

私の考えでは、cronを再起動させれば動くものだとばかり思っていたのですが
うまくいかず、どうしたらいいのか困っています。

どなたか、同じような経験をされた方、対処法をご存知の方ご教授頂けないでしょうか?
よろしくお願いします。

Aベストアンサー

lowrider_2005 さんの回答で十分と思いますが、

> 私の考えでは、cronを再起動させれば動くものだとばかり思っていた
> のですがうまくいかず、どうしたらいいのか困っています。

logrotate は設定した条件が満たされた場合にログのローテーションを行
います。ログがあふれそうで緊急にローテーションさせたいというときに
は、

# logrotate -f /etc/logrotate.conf

のように '-f' をつけて logrotate コマンドを実行すると強制的に
ローテーションします。

Qlinuxでプロセスが動いているCPUナンバーを知りたい

linuxでプロセスが動いているCPUナンバーを知りたい
件名の通り、linuxでプロセスが動いているCPUナンバーを知りたいとおもっています。

psコマンドですと、プロセスID等はでますが、
デュアルコア、クワッドコアのどのcoreでプロセスが動いているのかを確認したいので
すが、表示できません。

なにか方法がありますでしょうか?

CPU(core)ナンバーとプロセスIDが結びつけば問題ありません。

mpstat -P 0

は使用率しかでなく、プロセスが見えませんでした。

よろしくお願い致します。

Aベストアンサー

Linux って, 各プロセスに対して常に同じコアを割り当てるんでしたっけ?
そうじゃないとすると「調べた時点での割り当て」はわかるけど, その次にはどうなってるかわからないからあんまり意味があるようには思えないのですが....

QVMWare仮想ソケット数とソケットあたりのコア数

VMWareバージョン5.0から仮想OSに割り当てるCPUの設定で仮想ソケット数とソケットあたりのコア数というのがあり、それぞれを掛けた値が仮想OS毎のコア合計数となる様です。
以下の内容について教えていただけませんでしょうか。

(1)ソケット数とコア数がどのようなものなのかというのが解っていません。
どのように算出された計算値からこれを設定すればいいのか教えていただけますでしょうか。

(2)コア合計数を2としたい場合仮想ソケット数を2にし、ソケットあたりのコア数を1にする
 のでしょうか?それとも逆に仮想ソケット数を1にし、ソケットあたりのコア数を2にすれば
 良いでしょうか?

宜しくお願い致します。

Aベストアンサー

ちょっとかじった程度の技術者です。
専門家ではないので参考程度に。

(1)コアはCPUの中にあり、実際に計算をする部分になります。
複数のコアを持っているCPUは同時に複数の処理をする事ができます。

コア数はCPUによって決まっていて、1つのCPUに2つとか4つとか複数のコアが
搭載されている場合があります。(例:デュアルコア=2個、クアッドコア=4個)

ソケットとはCPUを搭載する部分の事で、1つのソケットに1つのCPUが載ります。

という事で、例えば「クアッドコアのCPUを2個搭載」した場合、
・コア数=4
・ソケット数=2
となり、仮想OSに割り当てられる仮想CPUは「4×2=8個」となります。

(2)仮想ソケット数については「どの様な挙動をさせたいか」「OSの制限」
などによって異なると思います。

デュアルコアCPUが1個搭載されているような挙動を期待しているなら
仮想ソケット数を1に、コア数を2に。
シングルコアのCPUが2個搭載されている様な挙動を期待しているなら
仮想ソケット数を2に、コア数を1に。

OSの制限についてですが、OSによってはソケット数が決まっているケースがあります。
WindowsXPの場合はCPUが2個までしか載せられなかったと思います。
その時は仮想ソケット数は「2」までしか設定できない事になり、仮想CPUを4つに
設定したい時は仮想ソケット数を2に、コア数を2に設定する事になります。

という事でこの場合は「環境と希望による」という回答になると思います。

ちょっとかじった程度の技術者です。
専門家ではないので参考程度に。

(1)コアはCPUの中にあり、実際に計算をする部分になります。
複数のコアを持っているCPUは同時に複数の処理をする事ができます。

コア数はCPUによって決まっていて、1つのCPUに2つとか4つとか複数のコアが
搭載されている場合があります。(例:デュアルコア=2個、クアッドコア=4個)

ソケットとはCPUを搭載する部分の事で、1つのソケットに1つのCPUが載ります。

という事で、例えば「クアッドコアのCPUを2個搭載」した場合、
・コア数...続きを読む

Q英語で「個数」「件数」は?

質問は単純です。
英語で「個数」や「件数」をなんというか、です。

とりあえず、思いついたのは、numberでした。
たとえば、「りんごの個数」は"a number of apples"ですか?
でも、"a number of"は「いくつかの」という意味ですよね。

「データの件数」は"a number of data"でしょうか?

私は英語はほとんど出来ませんが、numberは「個数」というよりも「番号」という意味であるような気がしてなりません。

Aベストアンサー

>「個数」や「件数」をなんというか、です。
>とりあえず、思いついたのは、numberでした。
意外に思われるかもしれまんせんが、語の選択はnumberであっています、と思います。

>「りんごの個数」
the number of (the) apples

>「データの件数」
the number of (the) data

>numberは「個数」というよりも「番号」という意味であるような気がしてなりません。
実は、昔、私も、「個数や件数はなんていうのかな、え、number? え、本当?」と、奇異に感じたことを、思い出しました。

Qレッドハットのバージョン確認方法

自分のサーバで使用しているREDHATのバージョン確認はどうすればいいのでしょうか?

more /etc/issue
とやっても英文しか出てきませんでした。

uname -all
でもカーネルのバージョンは出るのですが、REDHATのバージョンは出ませんでした。

Aベストアンサー

> more /etc/issue
> とやっても英文しか出てきませんでした。

その英文にはRedHatのバージョンは書いてなかったのですか?
書いていなかったとしたら、管理者により編集されている可能性
がありますね。

cat /etc/redhat-release

ではいかがでしょう?
やっぱり英文ですけど。

rpm -q redhat-release

でもいいかも

QTOPコマンドで表示するCPU使用率で100%以上の表示について

皆さんこんにちは。
TOPコマンドに関して、
分からないことがあり質問させていただきます。

特定のプロセスのCPU使用率が知りたく、
TOPコマンドに、grepをかけて、
そのプロセスのみのCPU使用率を見ていましたが、

「135.1%」とか、「120.9%」と、
100%を超える値を表示するプロセスがあるのですが、
これはどうしてか、
分からないでいます。

どなたか教えていただけるとありがたいです。
どんな要素が原因として考えられるものでしょうか?

OS:fedora9
CPU:Intel(R) Pentium(R) 4

Aベストアンサー

topで表示されるCPU使用率は、論理プロセッサ1台あたりのCPU時間を100%として計算されています。

ハイパースレッディングを有効にしている場合やマルチコアプロセッサでは、CPU使用率が100%を超えるのもさほど珍しい現象ではありません。

参考URL:http://codezine.jp/unixdic/w/top/

Q4PINファンと3PINファンについて

こんにちは。
待ちに待ったPCパーツが全て揃ったので自作で組みたいと思うのですが、一つわからない事があります。

僕が今回使うPCケースはZ11Plusなのですが、付属のファンは3PINでした。
ですが、マザボ側は4PINです。
4PINソケット?に3PINのファンが接続出来るとは聞いたのですが、どう接続すればいいのかわかりません。

マザボ側が4PINでファン側が3PINなのですが、接続すると1ピン余ると思います。
その際どちら側(一番右のピンを余らすのか一番左のピンを余らすのか)のピンを余らせて接続すればいいのかがわかりません。

深く考えずに接続しても構わないのでしょうか?
発火したりの心配はないでしょうか?

説明が下手で申し訳ございません。

1、マザボ側4PIN ファン側3PINの場合1つピンが余ると思うのですが、右のピンを余らすのでしょうか?それとも左のピンを余らすのでしょうか?
2、深く考えずに接続しても構わないんでしょうか?
3、発火の危険性等はないでしょうか?

回答よろしくお願いします。

Aベストアンサー

intelのwebにそのものずばり!の回答が記載されています。下記webをご参照ください。
http://support.intel.co.jp/jp/support/motherboards/desktop/sb/CS-012074.htm
これはintelの基板の例ですが、コネクタのピン配置自体は規格で決まっています。なので、ご質問者様がインテル以外のマザーボードをお使いの場合でも上記記載内容はそのまま適用できます。

1.のご質問について
前述のとおり、ファンコネクタは規格でピン配置が決まっていますから、マザーボード側のコネクタストッパー(端子とは別に出ているプラスチックのガイド部品)を上にした状態で、左側のピンを余らせます。

2.のご質問について
上記の接続ルールを守れば問題ありません。

3.のご質問について
4番目の端子はPWM端子(パルスでファンの回転数を動的に制御する端子)ですから、余らせて問題ありません。
また、ここを余らせたからといって発火の原因にはなりません。

以上、ご参考まで。


人気Q&Aランキング